EA调试的时候,CoppyBuffer返回的指标值是0的问题

 

这就是我的所有代码,任意选一个交易品种,任何时期都可以。

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。

这让我非常困惑。有没有大佬可以教教我这是为什么?如果我要对指标值进行计算,该怎么处理?