我试了 STKINDI('','peakbars(high,5,1)',0,6,-1);
但是msgout输出显示是-1
这个第二个参数 必须是指标 名称.指标名 的形式。
你需要把peakbars(high,5,1) 放到一个新建的指标里,比如放到指标A里:
X:peakbars(high,5,1);
然后调用:
STKINDI('','A.X',0,6,-1);
但是我发现一个问题,如果我自建这样一个指标A并引用
STKINDI('','A.X',0,6,-1),返回的值是-1,但如果我修改一个系统内置的指标,将
X:peakbars(high,5,1); 放在系统内置的指标里,比如放到macd里,然后引用
STKINDI('','MACD.X',0,6,-1);就能够正常返回值。这是什么原因导致的?
看下你新建的那个被调用的指标是不是逐K模式。如果是, 你换成序列模式。
我用的就是序列模式,不过我还发现一个奇怪的问题:用stkindi引用时有时候返回的结果是-1,但有时候忽然莫名其妙地又可以正常返回值了。这应该就是我之前自建的指标返回-1的原因。
周期是够的,用的是:
我表述的问题是,引用指标的返回值在同样的情况下有时候会正确返回值,有时候有莫名其妙的失灵
还有种情况,就是你被调用的指标的计算是需要一定数据量支持才能正常计算的。比如ma,ema之类的。上面的peakbars在最开始几个K上也是没有返回值的。