新的 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!
我似乎无法使用 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!