新的MQL5日历功能-没有值?

时间:2019-03-12 07:48:58

标签: mql mql5

通过MQL5的新日历功能,我似乎无法获得任何经济事件值(请参见https://www.metatrader5.com/en/releasenotes)。

特别是...

MqlCalendarValue value[9999999];

ulong changeID=33212160;


int OnInit()

  {

   CalendarValueLastByEvent(840040003,changeID,value);

   ArrayPrint(value);

   return(INIT_SUCCEEDED);

  }

...确实有效,但它只返回日期时间1970 01 01的0值。

有解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您正在打印10,000,000个值的数组。当然,您找不到想要的东西。

MqlCalendarValue value[];  // No need to oversize a static array, let it be dynamic

ulong eventID=840040003;   // Bad idea to hardcode ID this way, but let's keep it for demonstration purpose.
ulong changeID=33212160;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   CalendarValueLastByEvent(840040003,changeID,value);

   for(int i=0;i<ArraySize(value);i++)
     {
      if(value[i].event_id==840040003)
        {
         //--- print only the required value
         ArrayPrint(value,_Digits,NULL,i,1);
         break;
        }
     }
  }

结果:

Experts log output

答案 1 :(得分:0)

该错误发生在MetaQuotes方面,他们使用新的MetaTrader构建版本修复了该错误。我上面的代码现在可以工作了。谢谢,MetaQuotes!