HQChart使用教程30-K线图如何对接第3方数据15-轮询增量更新1分钟K线数据

开启自动更新

见教程:HQChart使用教程26- K线图及走势图数据自动更新设置

协议名称-当天1分钟K线数据

KLineChartContainer::RequestMinuteRealtimeData

协议日志截图

在这里插入图片描述

Request 字段说明

symbol

field

请求的数据字段

返回json数据结构 (ver 1.0)

数据截图

在这里插入图片描述

stock

股票数组 这个就放一条记录就可以
time= 交易时间 格式 mmhhss 150003=>15:00:03
date=交易日期 格式 yyyymmdd 20191011=>2019-10-11
symbol=代码
name=名称
yclose=前收盘

minute

增量更新的分钟数据 数组 一条记录代表一分钟的数据

amount=成交量
avprice=均价
high=最高
low=最低
open=开盘
price=收盘
increase=涨幅
risefall=振幅
time=时间 格式 mmhh 925=>9:25
date=日期 格式 yyyymmdd 20191011=>2019-10-11 (可选, 如果不填就取外面的date),一般用在跨天的品种, 如果期货凌晨有交易的
vol=成交量
position=持仓量(期货才有)
所有数据都是数值型, 不是字符串 !!!
样本数据再群文件里
KLineChartContainer-RequestMinuteRealtimeData 样本数据.txt

返回json数据结构 (ver 1.2)

数据截图

在这里插入图片描述

code

填0

ver

填2.0

symbol

股票代码

name

股票名称

data

需要更新的分钟K线数据
单条数据对应关系:
0=日期 格式YYYYMMDD 如20190229=》 2019-02-29
1=前收盘
2=开盘价
3=最高
4= 最低
5=收盘
6=成交量
7=成交金额
8=时间格式 hhmm 如(925=>9:25) 如果是秒数据格式 hhmmss 如 123106=>12:31:06
9=持仓量(期货才有)
注意注意!!! 数据类型都是数值型的, 不是字符串的

66=指定K线颜色, K线类型必须是9才有效

自定义颜色结构
{Type:0=空心 1=实心, Line:{ Color:'上下线颜色'}, Border:{Color:柱子边框颜色}, BarColor:柱子颜色};

1.0 和 2.0 数据格式都支持的。

样本数据

2.0格式

https://github.com/jones2000/HQChart/blob/master/教程/数据样例/分钟K线增量更新.json

HQChart代码地址

地址:github.com/jones2000/HQChart

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个简单的Java代码示例,可以帮助你使用opcUaClient实现1个客户端3个采集IP和scheduleAtFixedRate实现轮询1秒钟采集数据一次: ```java import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.eclipse.milo.opcua.sdk.client.OpcUaClient; import org.eclipse.milo.opcua.sdk.client.nodes.UaVariableNode; import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue; import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId; import org.eclipse.milo.opcua.stack.core.types.builtin.Variant; public class OpcUaClientExample { public static void main(String[] args) throws Exception { // 创建OpcUaClient对象,并连接到服务器 OpcUaClient client = new OpcUaClient("opc.tcp://localhost:62541/milo"); client.connect().get(); // 创建ScheduledExecutorService对象,并设置轮询频率为1秒 ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(new Runnable() { @Override public void run() { // 定义需要采集的路径 List<String> paths = new ArrayList<String>(); paths.add("ns=2;s=Temperature1"); paths.add("ns=2;s=Pressure1"); paths.add("ns=2;s=Flow1"); paths.add("ns=2;s=Temperature2"); paths.add("ns=2;s=Pressure2"); paths.add("ns=2;s=Flow2"); paths.add("ns=2;s=Temperature3"); paths.add("ns=2;s=Pressure3"); paths.add("ns=2;s=Flow3"); // 遍历采集路径 for (String path : paths) { try { // 使用readValue方法读取数据 NodeId nodeId = new NodeId(2, path); UaVariableNode node = client.getAddressSpace().getVariableNode(nodeId); DataValue value = node.readValue().get(); Variant variant = value.getValue(); // 将数据保存到容器中 System.out.println(path + ": " + variant.getValue()); } catch (Exception e) { e.printStackTrace(); } } } }, 0, 1, TimeUnit.SECONDS); // 等待轮询结束 Thread.sleep(10000); // 关闭连接和轮询任务 executor.shutdown(); client.disconnect().get(); } } ``` 可以看到,代码中定义了9个需要采集的路径,其中包括3个不同的IP地址(Temperature1/Pressure1/Flow1、Temperature2/Pressure2/Flow2、Temperature3/Pressure3/Flow3)。在run方法中,使用OpcUaClient的readValue方法读取每个路径的数据,并将其保存到容器中。在轮询结束后,关闭ScheduledExecutorService和OpcUaClient连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HQChart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值