EA: 交易者的MQL5编程(MQL5 Programming for Traders) - 源代码第一部分

 

交易者的MQL5编程(MQL5 Programming for Traders) - 源代码第一部分:

本书第一章介绍了MQL5语言和开发环境。与MQL4(MetaTrader 4 语言)相比,MQL5语言其中一项新功能就是支持面向对象编程(OOP),这使其类似于C++。

交易者的MQL5编程(MQL5 Programming for Traders) - 源代码第一部分

作者: MetaQuotes

 
我认为我非常幸运,能够从《交易者的MQL5 编程- 书中源代码》中获得各种程序代码。非常感谢。
 

文中有不准确之处。

引用:

MQL4(MetaTrader 4 语言)相比,MQL5 的主要变化之一是支持面向对象编程 (OOP),这使其与 C++ 相似。尽管一些 OOP 功能已经从 MQL5 转移到 MQL4 ...

如果我没记错的话,OOP 是在 2013 年初的第 600 个版本中添加到 MQL4 中的!与此同时,MQL4 语言也得到了彻底改进,使其跻身前五名。在 MQL5 中,出现了成熟的 C++ 风格定义,以及许多其他东西,最重要的是,采用了 pluses 风格的工作 OOP,如果我们纯粹谈论语言,这一点从那时起就没有太大变化。初学者总是将 MT4 和MT5 API与 MQL4/5 编程语言 混淆。再次重申 - MQL4 和 MQL5 语言 99% 相同,但库和 API 却截然不同。

Учебник по MQL5: Знакомство c языком и средой разработки
Учебник по MQL5: Знакомство c языком и средой разработки
  • www.mql5.com
Знакомство c языком и средой разработки - Программирование на MQL5 для трейдеров - Учебник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
在当前版本的 MQL5 中,复制结构--父代到子代--不再有效。
复制同级结构就像把子代结构复制到父代结构一样,但会丢失子代结构的数据。
 
Vitalii Avramenko #:
在当前版本的 MQL5 中,复制结构--父结构到子结构--不再有效。
复制同级结构就像将子代复制到父代一样,但会丢失子代的数据。

MQL5 正在发生变化(不幸的是,它无法在兼容模式下编译以前的版本,而其他语言和编译器,例如 C++,可以做到这一点)。

因此,您需要考虑到这些创新(至少通过理解编译器信息),例如,添加您自己的编辑,如复制继承结构的示例:

struct Inclosure
{
   double X, Y;
};

struct Main3 : Inclosure
{
   using Inclosure::operator=;
   int code;
};

void OnStart()
{
   Main3 m3 = {0.1, 0.2, -1};
   Inclosure in = {10, 100};
   m3 = in;
   ...
}