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。 这让我非常困惑。有没有大佬可以教教我这是为什么?如果我要对指标值进行计算,该怎么处理? 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是我的所有代码,任意选一个交易品种,任何时期都可以。
我在调试的时候,倒数第三行的 double a=1/ma5[12]; 会报bug:除数不能为0,意思就是说 ma5[12] 的值为0。
但是如果我把这一行注释掉,打印出来的ma5[12]的值并不是0。
这让我非常困惑。有没有大佬可以教教我这是为什么?如果我要对指标值进行计算,该怎么处理?