在使用STKINDI函数时,引用指标的参数不能为变量,如想设为变量来优化参数,就会导致没有信号输出。
例如:STKINDI('1A0001','MA.MA1(8,12,26,60)',0,DATAPERIOD);
改成如下公式,检测能通过,但无信号输出。
STKINDI('1A0001','MA.MA1(n1,n2,n3,n4)',0,DATAPERIOD);
建议改良该函数。
可以带参数的使用方法,请参考 "Ma.ma1"(n1,n2)等用法
使用 "Ma.ma1"(n1,n2)方法通过。
但由于要引用前一根K线指标的值,非得单独另设个指标,略感麻烦些。
使用 "Ma.ma1"(n1,n2)方法通过。
但由于要引用前一根K线指标的值,非得单独另设个指标,略感麻烦些。
麻烦的往往隐患少
可以带参数的使用方法,请参考 "Ma.ma1"(n1,n2)等用法
经过几天的测试,发现还是存在问题。
1.例,为解决在15分钟周期引用30分钟周期上一根K线的数据,先编技术指标:rm
公式内容:假设参数m,缺省5,最小1,最大100,步长1;参数n,缺省10,最小2,最大100,步长1。
mmr1:ref("ma.ma1"(m,n),1) ;
mmr2:ref("ma.ma2"(m,n),1) ;
再另编一交易指标:bb
公式内容:假设参数m,缺省5,最小1,最大100,步长1;参数n,缺省10,最小2,最大100,步长1。
mm30r1:="rm.mmr1#MIN30"(m,n) ;
mm30r2:="rm.mmr2#MIN30"(m,n) ;
aa: cross(mm30r1,mm30r2) ;
这时,如对bb指标进行参数优化,数据结果输出正常。比方最后选用了参数m为20,n为30。
但当把该bb交易指标信号显示到到图标上时,发现公式输出的数值,还是参数m为5,n为10的数值。(先切换到30分钟周期,再切回15分钟周期)。
原因为优化参数时,是优化了bb公式的参数,rm公式的参数优化不到。所以,bb交易系统用的还是原来的参数。
2.将bb交易系统做成预警IF08。
由于使用的是30分钟周期的数据,因此,在出现信号的时间应为:9:45 10:15 10:45 11:15 13:15 13:45 14:15 14:45 15:15
而实际上公式出现信号的时间几乎是按15分钟周期计算的。也就是说该在10:15分出的信号,出在了10:00 ,该在11:15分出的信号出在了11:00 ,因此在预警系统设置了走完一根K线才出信号时,造成了,bb指标信号在15分钟周期早出了一根K线,而预警系统则无信号提示出现。
如图:15分钟周期,白线尖峰是bb指标出的信号,时间在10:00,而按编制逻辑,应该是在10:15分才出的。时间到了10:15预警系统也没出信号。
第一个问题,通过使用如下方法解决:
mm30r1:="ma.ma1##MIN30"(m,n) ;
mm30r2:="ma.ma2##MIN30"(m,n) ;
aa: cross(mm30r1,mm30r2) ;
多加个#,就能引用上一根K线的数值了。多加两个##,就能引用上上根K线数值。
如此就不用分2个公式,同时经实地测试,参数优化通过。
第二个问题依然存在,期待早日解决。
管理员给回复下吧,第二个问题近期能给解决不?
烦请排上日程,不甚感激~
VBA不会啊,恳请哪位高手会的给解决下吧,万分感激~