A:可根据需求先查找到所需要的技术指标计算模型,方式可参考:FAQ:
Q:如何查找技术指标模型
比如,需要提取KDJ与Boll技术指标,已查找到计算模型分别为KDJ_f与Boll_f。
下面给出几种常用场景的指标数据提取提取示例:
范例01:取最近20日的日线KDJ与BoLL指标值-不复权
//取贵州茅台截止到2025-11-13日的最近20个交易日的指标数据
SetSysParam(pn_stock(),'SH600519');
SetSysParam(pn_date(),20250113T);
setsysparam(pn_cycle(),cy_day());//日线
setsysparam(pn_rate(),0); //不复权
setsysparam(pn_Nday(),20);//设置N日序列长度
V:=KDJ_f(9,3,3,1);//取N日值
B:=boll_f(20,1);//取N日值
D:=Nday2("Date",datetostr(sp_time())); //N日时间序列
Return D|V[0]|V[1]|V[2]|B[0]|B[1]|B[2]|B[3];
范例02:取最近20日的日线KDJ与BoLL指标值-前复权
//取贵州茅台截止到2025-11-13日的最近20个交易日的指标数据
SetSysParam(pn_stock(),'SH600519');
SetSysParam(pn_date(),20250113T);
setsysparam(pn_cycle(),cy_day());//日线
setsysparam(pn_rate(),1); //比例复权
setsysparam(pn_rateday(),20250113T);//指定日前复权
setsysparam(pn_Nday(),20);//设置N日序列长度
V:=KDJ_f(9,3,3,1);//取N日值
B:=boll_f(20,1);//取N日值
D:=Nday2("Date",datetostr(sp_time())); //N日时间序列
Return D|V[0]|V[1]|V[2]|B[0]|B[1]|B[2]|B[3];
范例03:取指定日的1分钟线的KDJ与BoLL指标值-不复权
//取贵州茅台在025-11-13日的1分钟线指标数据
SetSysParam(pn_stock(),'SH600519');
SetSysParam(pn_date(),20250113.16T); //指定时间精确到具体时间点
setsysparam(pn_cycle(),cy_1m());//1分钟线
setsysparam(pn_rate(),0); //不复权
setsysparam(pn_Nday(),240);//1日240条分钟线
V:=KDJ_f(9,3,3,1);//取N日值
B:=boll_f(20,1);//取N日值
D:=Nday2("Date",datetimetostr(sp_time())); //N日时间序列
Return D|V[0]|V[1]|V[2]|B[0]|B[1]|B[2]|B[3];
范例04:取指定日一组股票的日线KDJ与BoLL指标值-不复权
endt:=20250114T;
stocks:=getbkbydate("SH000300",endt);
setsysparam(pn_date(),endt);
setsysparam(pn_rate(),0); //不复权
setsysparam(pn_cycle(),cy_day());
ret:=array();
for i,StockID in stocks do
begin
SetSysParam(pn_stock(),StockID);
V:=KDJ_f(9,3,3,0);//取当前值
B:=boll_f(20,0);//取当前值
ret[i,"StockID"]:=StockID;
ret[i,"Date"]:=datetoint(Endt);
ret[i,array("K","D","J")]:=V;
//也可改用ret[i,"K"]=V[0];ret[i,"D"]=V[1];ret[i,"J"]=V[2];
ret[i,array("BOLL","UPR","DWN","CLOSE")]:=B;
end
return ret;
