我有一个 MQL4 脚本(在 MetaTrader4 终端平台上运行的脚本),我需要定义一个名为 extractionDate
的 extern
变量datetime
类型,以便用户可以在脚本启动之前更改其输入值。
我尝试了在标准脚本的函数 start()
之前定义变量的传统方法,但它不起作用。当我编译I时,得到错误消息
['TimeLocal' - constant expected]
这意味着 MQL4 需要变量的常量值。但这不是我的目标。我想将脚本启动时的“今天”日期显示为默认值,而不是固定的预定义日期值。
是否可以这样做?
extern datetime extractionDate = TimeLocal();
int start()
{
......
return(0);
}
最佳答案
不,编译器不允许直接这样做
编译器不允许分配默认值,该值不是常量。 它必须知道该值,因此尝试设置/分配未知/变量值作为默认值,将产生编译错误。
但是,如何解决这个问题?
我的方法是向用户提供说明并选择设置任何日期时间
,或设置值-1
,它将在 OnInit()
事件处理程序代码块内进行翻译:
void OnInit(){
...
if ( extractionData == -1 ) extractionDate = TimeLocal();
...
}
关于constants - MQL4 - 如何在 MQL4 脚本中将 "today"-datetime 设置为外部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729544/