MetaTrader 4 IDE的测试版,包括新的MQL4编译器和编辑器

 

主题的开始。

下面是IDE的测试版,MetaTrader 4/MQL4和MetaTrader 5/MQL5也是如此。这是一个供公众审查的预览版。

与旧版本的MQL4有什么不同?

  • 逻辑AND/OR操作的优先级已被改变。现在一切都和经典的C/C++一样。

  • 引入了对逻辑表达式的缩短评估。现在,当评估一个逻辑表达式时,其余的子表达式不会被评估。如同在C/C++中。

  • 开关运算符现在只使用整数值。以前,你可以使用真正的。

  • 现在,你不能在变量名中使用句号。另外,你不能在变量名称中使用'@'、'$'、'?'字符。

  • 对启动功能的要求已经收紧。以前,你可以在启动函数中指定参数。现在,所有的入口点init、start、deinit、OnInit、OnStart、OnTick、OnTimer等必须完全匹配它们的签名

  • 由于关键字集的扩展,我们不能使用short, long, float, const, virtual, input, delete, new, do, char这样的名字。

  • 现在,导入的dll-函数不能将字符串数组作为参数。如同在MQL5中一样

  • 现在出现了预定义的变量名称_Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed,它们可能与现有来源中声明的同名简单变量发生冲突。

  • 日期时间类型已经变成了8个字节,就像在MQL5中一样。

这些差异不是致命的,可能很容易在代码中修复。作为交换,我们有很多MQL5的功能可用,以及执行速度和更严格的质量控制。


我们正计划在下个月进行公开测试,以收集尽可能多的反馈意见,并为开发人员做好准备。

在MQL5论坛上的讨论:https://www.mql5.com/ru/forum/13651

附加的文件:
 

这给我的压力最大。

Renat:

现在,导入的dll函数不能接受字符串数组作为参数。如同在MQL5中一样

为什么不可能保持兼容性?你需要再次重写吗?MQL4的字符串数组是否仍然存在?如果它们仍然存在,不清楚你是如何禁止的,为什么?
 
这只是一个转移到DLL的问题。
 
Renat:

在MQL4论坛上的讨论:https://www.mql5.com/ru/forum/13651

:)
 
我们真的可以让MT4论坛像MT5论坛的一个版块一样吗?
 
以前,在编译时,如果全局变量和局部变量的名字重合,没有任何警告,但现在它发出了--"'dist'的声明在第63行隐藏了全局声明",当正式函数参数的名字和全局变量的名字重合时也发出了这个警告。它是关键的,能影响程序的行为吗? 或者它纯粹是风格上的不正确,例如,在复杂的项目中不会出现混淆?(我已经习惯于将变量范围 牢记在心,而且我经常用相同的名字命名类似的变量)。
 
zenz:
...这是否很关键,并可能影响方案的行为......?
程序的行为不会改变,如果在4ka中误用了一个变量,在新的编译器中也会保留。
 
在新的编辑器中编译文件,并将其滑入MT4.509 - 它删除了它...:(
 
TarasBY:
我用新的编辑器编译了文件,并把它塞给了MT4.509 - 它删除了它...:(

这是符合逻辑的,因为旧的终端对新的语言格式一无所知。

到目前为止,我们只发布了一个编辑器和编译器进行初步测试。几周后,我们将发布新终端的测试版,可以与新的程序格式一起工作。

我建议阅读原帖中的链接--它们几乎涵盖了一切。

 
Renat:

这是符合逻辑的,因为旧的终端对新的语言格式一无所知。

到目前为止,我们只发布了一个编辑器和编译器进行初步测试。几周后,我们将发布新终端的测试版,可以与新的程序格式一起工作。

我建议阅读原帖中的链接--它们几乎涵盖了一切。


我还没有看,但最好是像MT5那样做一个测试器,加上引号:),把测试器附在处理器资源上也无妨。
 
M2012K:

我还没有看,但如果他们能像MT5那样做一个测试器就更好了,带引号的:),在处理器资源上附加一个测试器也无妨。


还记得动画片《斧头上的稀饭》吗?;)))

原因: