通过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值。
有解决方案吗?
谢谢!
答案 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;
}
}
}
结果:
答案 1 :(得分:0)
该错误发生在MetaQuotes方面,他们使用新的MetaTrader构建版本修复了该错误。我上面的代码现在可以工作了。谢谢,MetaQuotes!