-
Notifications
You must be signed in to change notification settings - Fork 757
5. 第3方数据对接
jones edited this page Oct 28, 2021
·
12 revisions
所有HQChart内部请求的数据,都可以通过NetworkFilter回调函数截获,在回调里面可以阻止当次内部请求,替换成自己的数据. 在Option配置里面设置 NetworkFilter:function(data, callback) { } 这样每次数据请求时都会调用这个回调。
{
Name:原始的类名::函数名
Explain: 说明
Request: 原始的请求信息
Request.Type 请求类型
Request.Data 请求参数
Request.Url 请求地址
PreventDefault 是否阻止默认网路协议发送, 默认false, 如果设置成true, HQChart就不会再请求数据。
....... 以上是主要的字段, 其他的自己打印看下
}
数据设置到hqchart接口
function NetworkFilter(data, callback) //网络协议回调
{
console.log('[NetworkFilter] data', data);
data.PreventDefault=true; //设置hqchart不请求数据
switch(data.Name)
{
case 'KLineChartContainer::ReqeustHistoryMinuteData': //分钟全量数据下载
//通过data.Request里的数据 对应到第3方数据
$.ajax({
url:'第3方数据地址',
.....
success: function (data)
{
var hqchartData;//把第3方数据data转成 hqchart数据
callback(hqchartData); //把数据传回hqchart
}
});
break;
case 'KLineChartContainer::RequestMinuteRealtimeData': //分钟增量数据更新
............同上
break;
case 'KLineChartContainer::RequestHistoryData': //日线全量数据下载
............同上
break;
case 'KLineChartContainer::RequestRealtimeData': //日线实时数据更新
.............同上
break;
..................... //其他数据
}
}
小程序, uniapp 网络接口都是自己封装的, 真实的网络数据都在里面的data中, 传递给hqchart的时候也需要包一层
var hqChartData={code:0, data:[]};
hqChartData.symbol='BTCUSDT.BIT';
hqChartData.name='BTCUSDT';
.......
callback({data:hqChartData});
KLineChartContainer::RequestHistoryData
data.Request.Data.symbol; //请求的股票代码
data.Self.Period; //周期
data.Self.Right; //复权
{
code:0, //返回状态0表示正常
date: //K线数据 数据, 一天一个数组
[
[ date(日期) = 0,
yclose(前收盘价) = 1,
open(开盘价) = 2,
high(最高) = 3,
low (最低)= 4,
close(收盘价) = 5,
vol(成交量) = 6,
amount(成交金额) = 7
8=持仓量(期货才有),(可选)
9=结算价 (可选)
10=前结算价 (可选)
11=前复权因子 (可选)
12=后复权因子 (可选)
],
.............
]
}
- 日期格式 date=yyyymmdd 是数值型的。 所有的数据都是数值类型,不是字符串!!
- 0-5的数据必须要有, 后面的字段如果没有数据就填null
- 如果是A股,成交量单位是股**
- 复权因子,如果不使用复权因子算复权可以不填
KLineChartContainer::ReqeustHistoryMinuteData
data.Request.Data.symbol; //请求的股票代码
data.Self.Period; //周期
data.Self.Right; //复权
{
code:0, //返回状态0表示正常
date: //K线数据 数据, 一个周期一个数组
[
[ 0=日期 格式YYYYMMDD 如20190229 => 2019-02-29
1=前收盘
2=开盘价
3=最高
4= 最低
5=收盘
6=成交量
7=成交金额
8=时间格式 hhmm
9=持仓量 (期货才用到)(可选)
],
.............
]
}
- 数据类型都是数值型的, 不是字符串的
- 时间格式
- 分钟周期的如5分钟, 2小时, 4小时等周期的使用格式 hhmm 如(925=>9:25)
- 秒周期的如5秒, 10秒等周期的使用格式 hhmmss 如 123106=>12:31:06
KLineChartContainer::RequestRealtimeData
data.Request.Data.symbol[0]; //请求的股票代码
data.Self.Period; //周期
data.Self.Right; //复权
{
"stock": [
{
"time": 150003, 时间格式hhmmss 150003=>15:00:03
"date": 20191011, 日期 YYYYMMDD 20191011=> 2019-10-11
"price": 16.81, 收盘价
"open": 16.2, 开盘价
"yclose": 16.24, 昨收价
"high": 16.95, 最高价
"low": 16.2, 最低价
"vol": 140542282, 成交量
"amount": 2335030599, 成交金额
"symbol": "000001.sz", 股票代码
"name": "平安银行" 股票名称
"position": 持仓量(期货才有)(可选)
"bfactor": 前复权因子(可选)
"afactor": 后复权因子(可选)
}
],
"code": 0 //返回状态0表示正常
}