开拓者期货期权程序化系统交易论坛
标题:
版主看看sma函数哪里出错了
[打印本页]
作者:
cqalan
时间:
2018-5-8 23:48:07
标题:
版主看看sma函数哪里出错了
Params
Numeric Length(14);
Numeric SlowLength(3);
Numeric SmoothLength(3);
Vars
NumericSeries HighestValue;
NumericSeries LowestValue;
NumericSeries K1;
NumericSeries D1;
NumericSeries RSV1;
Begin
HighestValue = HighestFC(High, Length);
LowestValue = LowestFC(Low, Length);
RSV1 = (Close-LowestValue)/(HighestValue-LowestValue)*100;
K1 = SMA(RSV1,SlowLength,1);
D1 = SMA(K1,SmoothLength,1);
PlotNumeric("K",K1);
PlotNumeric("D",D1);
PlotNumeric("RSV",RSV1);
Commentary("K1"+text(k1));
End
很简单的kd指标公式,rsv1值正常显示,但是k1,d1不显示,用 Commentary("K1"+text(k1)); 查看k1值,发现k1值是n/a,到底哪里出问题了啊?
作者:
小米
时间:
2018-5-9 09:04:13
换成日线图上看看是什么效果,还会有无效值吗?
作者:
Yuen_Lee
时间:
2018-5-9 14:50:21
如下改动:
K1 = SMA(IntPart(RSV1),SlowLength,1);
作者:
cqalan
时间:
2018-5-9 20:41:50
谢谢小米和Yuen_Lee,我找到原因了,如果出现了涨停和跌停,在日线之下的周期就会出现那个问题。
作者:
Yuen_Lee
时间:
2018-5-10 13:27:42
好像不全是因为涨、跌停。如果你看I9000的M15周期,在20170307的14:00的K线开始,就会出错了。而这之前没有涨停或跌停额情况。
作者:
小米
时间:
2018-5-10 14:32:50
cqalan 发表于 2018-5-9 20:41
谢谢小米和Yuen_Lee,我找到原因了,如果出现了涨停和跌停,在日线之下的周期就会出现那个问题。 ...
是的。因为在连续涨跌停里,lowestvalue的值是可能与highestvalue以及close等相同,导致RSV1的值 为0。
使用0参与SMA的计算就会是这样结果了。
让你换成日线图上看看就是为了排查这个可能性。
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2