constants - MQL4 - 如何在 MQL4 脚本中将 "today"-datetime 设置为外部变量?

标签 constants default-value extern mql4

我有一个 MQL4 脚本(在 MetaTrader4 终端平台上运行的脚本),我需要定义一个名为 extractionDateextern 变量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/

相关文章:

string - 用 iota 枚举字符串常量

Ruby:如何获取可选 proc 参数的默认值

attributes - 如何在 UML 属性中指定枚举文字作为默认值?

c++ - 有人能弄清楚这有什么问题吗?我收到链接错误

c++ - extern "C"(C联动)默认

c++ - const 和非常量方法之间的区别?

c - 在函数中使用 const 修饰符

jquery - attr ('defaultValue' )使用 jQuery 1.6.3 返回未定义

C:常量结构数组中的外部常量整数

c - 以编程方式确定变量的值是在编译时还是在运行时计算的