我似乎无法使用MQL5的新日历功能获得任何经济事件值(请参阅https://www.metatrader5.com/en/releasenotes)。
特别是...
MqlCalendarValue value[9999999];
ulong changeID=33212160;
int OnInit()
{
CalendarValueLastByEvent(840040003,changeID,value);
ArrayPrint(value);
return(INIT_SUCCEEDED);
}
...确实有效,但它仅返回DateTime 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;
}
}
}
结果:
专家日志输出
错误是在元Quotes的一边,他们用新的metatrader build buildease修复了错误。我的上述代码现在有效。谢谢,metaquotes!