以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]跨周期引用的问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173309)

--  作者:jyd1130
--  发布时间:2019/11/27 13:58:09
--  [求助]跨周期引用的问题
15min周期里面引用另一个指标2小时的数据,需要引用12个数据。
问题1:怎样写才能性能最优。目前这12个数据一个一个引用太卡了,有没有一种写法可以计算一次,然后随便调用各个数据?
问题2:是1min的120根:STKINDI(\'\',\'a.MA1\',0,21,120);
还是1小时的2根:STKINDI(\'\',\'a.MA1\',0,24,2);
这两个写法哪个好?

--  作者:FireScript
--  发布时间:2019/11/27 14:18:36
--  
 1.跨周期调用有一些优化建议。  一般如果是下面这种情况:引用a指标下的2个变量 x,y  然后调用过来之后再进行x,y之间计算。这种情况是可以把x,y相关的计算在a里面计算好,然后再调用过来。这样可以减少一次调用。

如果不跨品种。
这种方式效率更高。
x:"MACD#DAY(26,10,5)";

引用操作符

例如:
"INDIE.VAR"(P1,P2) 引用INDI指标的VAR输出,计算参数为P1,P2。若没有指定公式线,系统将取最后一行公式输出
数据类型有TICK、MIN1、MIN3、MIN5、MIN10、MIN15、MIN30、MIN60、DAY、WEEK、MONTH、YEAR、MULTIDAY、MULTIMIN、MULTISEC、MULTIHOUR、QUARTER、SEMIYEAR、SOLARTERM
"MACD#WEEK"(26,10,5) 引用周线数据的MACD指标最后一行公式输出
"MACD"表示该指标的最后—行公式输出并且使用公式的默认参数。
"000001$CLOSE" 引用品种000001的收盘价
"SZ000001$CLOSE#WEEK" 引用SZ市场的品种000001周线收盘价
"VOL##DAY"引用日线数据的前一周期的VOL指标
引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作
"DLLNAME@FNCNAME"(P1,P2) 引用DLLNAME.DLL的FNCNAME函数,计算参数为P1,P2
用户函数模式:#用户函数.指标线(参数)#
例如:#test01.B1(20,45)#,表示调用test01指标的B1输出线,参数为20和45,使用用户函数模式比扩周期引用更加节省内存,提高运行效率.
所属函数组:控制语句


2.这2种写法上没太大差异。大周期都是小周期合并过来的。但是第二种方式 是用5分钟合成的,可能在计算上会少点这样子。

--  作者:jyd1130
--  发布时间:2019/11/27 21:47:22
--  
好的,谢谢!我用这个方式"a.MA1#HOUR2";引用了下,为什么k线上没有立即出来所有的2小时数据?得把k线缩很小才能显示一部分引用的2小时数据
--  作者:FireScript
--  发布时间:2019/11/28 9:03:42
--  
 "a.MA1#HOUR2";
好像没有这种周期参数吧。里面的多小时周期应该是MULTIHOUR,这个周期具体值是和 工具-选项-多周期  里面的多周期对应的。  这种调用在周期参数有误时候不会报错,是采用了某种默认处理了。另外2小时周期的话,你要补充足够五分钟数据。