HQChart使用教程33-自定义指标变量
新版本增加自定义变量教程
版本1.1.9122以后的用下面的教程。 老的已经废弃了。
HQChart使用教程30-K线图如何对接第3方数据25-指标脚本自定义变量
麦语法变量
目前系统语法中系统指标有COLSE(收盘价), OPEN(开盘价)等,这些变量都会对应相应的股票数据。HQChart允许动态增加系统变量,来满足你的业务需求
增加系统自定义变量函数
JSComplier.AddVariant(obj) 可以往HQChart增加一个自定义变量
JSComplier.AddVariant({ Name:'变量名',Download:数据下载函数, Read:数据读取函数 } );
Name
变量名, 大写,如果和系统提供的变量冲突, 自定义变量无效
Download
变量数据下载函数, 在指标初始化的时候会调用, 支持异步取数据,如果不需要下载数据设置为null.
Read
读取变量函数, 指标中使用这个变量时会调用。 一次指标执行中只调用一次,.读取数据以后会缓存到HQChart中,后续直接读缓存
例子 用户买股票数据
USERBUY = 用户买卖某一个股票的数据。数据返回用户买股票的个数
- 我们定义个买卖数据下载函数
var USER_BUY; //用户买股票数据
function DownloadUserBuy(obj)
{
console.log('[DownloadUserBuy] obj ', obj);
//模拟异步读取用户信息
setTimeout(()=>
{
USER_BUY=new Map([
[20190705, {Count: 1 }], //买股票日期, Count 买这个股票的次数
[20190714, {Count: 3 }],
[20190806, {Count: 1 }],
[20190826, {Count: 1 }],
[20190902, {Count: 2 }],
]);
obj.Success(); //通知HQChart数据已到达继续执行, 需要要调用,否则指标会一直等待
}, 500);
}
DownloadUserBuy 入参(obj)说明
数据截图
Name
变量名称
Symbol
股票名称
KData
K线数据
Period
周期
Right
复权
Success
通知HQChart数据下载完成函数
- 定义一个读取买数据函数
function GetUserBuy(obj)
{
console.log('[GetUserBuy] obj ', obj);
var result=[]; //返回数组数据, 时间和KDataK线数据的日期时间一致
for(var i in obj.KData.Data)
{
result[i]=0;
var item=obj.KData.Data[i]; //读取每天的K线
if (USER_BUY.has(item.Date))
result[i]=USER_BUY.get(item.Date).Count; //写入用户买股票数据到某一天的结果
}
return result;
}
GetUserBuy 入参(obj)说明
数据截图
Name
变量名称
Symbol
股票名称
KData
K线数据
Period
周期
Right
复权
返回
int/double 型的数组
- 把自定义变量添加到HQChart里
JSComplier.AddVariant({ Name:'USERBUY',Download:DownloadUserBuy, Read:GetUserBuy } );
- 写一个指标测试下吧
把用户买股票的数据显示在K线上
T:=USERBUY;
DRAWICON(T>0,HIGH+0.1,13); //图标13时一个B的图标
- 效果图
如果还有问题可以加交流QQ群: 950092318
HQChart代码地址
地址:github.com/jones2000/HQChart