新的 MQL5 日历函数 - 没有值?

New MQL5 calendar functions - no values?

我似乎无法使用 MQL5 的新日历函数获得任何经济事件值(请参阅 https://www.metatrader5.com/en/releasenotes)。

具体...

MqlCalendarValue value[9999999];

ulong changeID=33212160;


int OnInit()

  {

   CalendarValueLastByEvent(840040003,changeID,value);

   ArrayPrint(value);

   return(INIT_SUCCEEDED);

  }

...确实有效,但它只有 returns 日期时间 1970 01 01 的 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

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