HQChart使用教程30-K线图如何对接第3方数据21-跨周期函数数据
什么是跨周期函数
通达信里面的说明是这样的
#后可用MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR
例如:TMP1:=CLOSE#WEEK;
{非指标引用时只可用于OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,当前周期不支持多秒线,多分钟线和多日线,并且引用周期必须要高于当前周期,5秒线只支持引用1分钟线和5分钟线,周期数据转换得到}
也是说你可以在当前周期下,引用其他周期的数据
HQChart也是支持跨周期函数
# 协议名称-跨周期数据
对应代码的类名和函数名: JSSymbolData::GetSymbolPeriodData
协议日志截图
Request 字段说明
field
需要的字段名字
symbol 股票代码 name 股票名称 第3个数据字段名称 C=CLOSE , O=OPEN …
period
周期名字 MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR
symbol
请求的股票代码
返回json数据结构
日K周期
DAY,WEEK,MONTH,SEASON,YEAR数据 返回数据格式跟历史K线数据格式一样
HQChart使用教程30-K线图如何对接第3方数据2-日K数据
分钟K线周期
MIN1,MIN5,MIN15,MIN30,MIN60数据 返回格式跟历史分钟K线数据格式一样
HQChart使用教程30-K线图如何对接第3方数据3-1分钟K数据
示例代码片段
指标
var TestIndexScript =
{
Name:'测试自定义指标', Description:'自定义指标', IsMainIndex:true, //KLineType:-1,
Args:[ { Name:'M1', Value:5}, { Name:'M2', Value:10 }, { Name:'M3', Value:20} ],
//OutName:[ {Name:'MA1',DynamicName:"MA{M1}" }, {Name:'MA2',DynamicName:"MA{M2}" },{Name:'MA3',DynamicName:"MA{M3}" }],
Script: //脚本
'T1:C#WEEK;'+
"T2:C;"
};
this.NetworkFilter=function(data, callback)
{
console.log('[NetworkFilter] data', data);
switch(data.Name)
{
..................
case "JSSymbolData::GetSymbolPeriodData": //跨周期数据 (分钟K/日K)
this.RequestPeriodData(data,callback);
break;
}
}
this.RequestPeriodData=function(data,callback)
{
data.PreventDefault=true;
var self=this;
var symbol=data.Request.Data.symbol; //股票代码
var periodName=data.Request.Data.period;//周期名称
var hqchart=data.Self;
//周期名字对应后台API的周期数值
const PERIOD_LIST=
[
{Name:'MIN1', Period:4},
{Name:'MIN5', Period:5},
{Name:'MIN15', Period:6},
{Name:'MIN30', Period:7},
{Name:'MIN60', Period:8},
{Name:'DAY', Period:0},
{Name:'WEEK', Period:1},
{Name:'MONTH', Period:2},
{Name:"SEASON", Period:9},
{Name:"YEAR", Period:3}
];
var periodID=-1;
for(var i in PERIOD_LIST)
{
var item=PERIOD_LIST[i];
if (item.Name==periodName)
{
periodID=item.Period;
break;
}
}
if (ChartData.IsMinutePeriod(periodID,true)) //分钟周期
{
var url='https://xxxxxxxx'
$.ajax({
url: url,
data:
{
"field": ["name","symbol", "yclose","open","price","high","low","vol"],
"symbol": symbol,
"count": hqchart.MaxRequestMinuteDayCount,
"period":periodID
},
type:"post",
dataType: "json",
async:true,
success: (recvData)=>
{
self.RecvMinutePeriodData(recvData, data, callback);
},
error:(request)=>
{
}
});
}
else if (ChartData.IsDayPeriod(periodID,true)) //日线周期
{
var url='xxxxxxxxxxxx'
$.ajax({
url: url,
data:
{
"field": ["name","symbol", "yclose","open","price","high","low","vol"],
"symbol": symbol,
"count": hqchart.MaxReqeustDataCount,
"period":periodID
},
type:"post",
dataType: "json",
async:true,
success: (recvData)=>
{
self.RecvHistoryPeriodData(recvData, data, callback);
},
error:(request)=>
{
}
});
}
}
this.RecvMinutePeriodData=function(recvData, data, callback)
{
var hqChartData={code:0, data:recvData.data};
hqChartData.symbol=recvData.symbol;
hqChartData.name=recvData.name;
console.log("[KLineChart::RecvMinutePeriodData] hqChartData", hqChartData);
callback(hqChartData);
}
this.RecvHistoryPeriodData=function(recvData, data, callback)
{
var hqChartData={code:0, data:recvData.data};
hqChartData.symbol=recvData.symbol;
hqChartData.name=recvData.name;
console.log("[KLineChart::RecvHistoryPeriodData] hqChartData", hqChartData);
callback(hqChartData);
}
交流QQ群: 950092318
如果还有问题或新的需求可以加交流QQ群: 950092318
HQChart代码地址
地址:github.com/jones2000/HQChart
个人爱好(模型,摄影)
围城系列 - 擎天柱
领袖战争系类 - 骇翼,黑云