EA调试的时候,CoppyBuffer返回的指标值是0的问题 新评论 f-jx 2024.12.26 11:12 这就是我的所有代码,任意选一个交易品种,任何时期都可以。 double ma5[]; int ma5_handle=0; int OnInit() { EventSetTimer(10); return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { EventKillTimer(); } void OnTimer() { string symbol=_Symbol; ENUM_TIMEFRAMES period=PERIOD_CURRENT; ArraySetAsSeries(ma5,true); int ma5_handle=iMA(symbol,period,5,0,MODE_SMA,PRICE_CLOSE); CopyBuffer(ma5_handle,0,0,20,ma5); double a=1/ma5[ 12 ]; Print(_Symbol," ",ma5[0]," ",ma5[12]); } 我在调试的时候,倒数第三行的 double a=1/ma5[12]; 会报bug:除数不能为0,意思就是说 ma5[12] 的值为0。 但是如果我把这一行注释掉,打印出来的ma5[12]的值并不是0。 这让我非常困惑。有没有大佬可以教教我这是为什么?如果我要对指标值进行计算,该怎么处理? 新评论
这就是我的所有代码,任意选一个交易品种,任何时期都可以。
我在调试的时候,倒数第三行的 double a=1/ma5[12]; 会报bug:除数不能为0,意思就是说 ma5[12] 的值为0。
但是如果我把这一行注释掉,打印出来的ma5[12]的值并不是0。
这让我非常困惑。有没有大佬可以教教我这是为什么?如果我要对指标值进行计算,该怎么处理?