Советники: Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 1

 

Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 1:

Первая глава книги знакомит с языком и средой разработки MQL5. Одно из главных изменений в языке MQL5 по сравнению с MQL4 (язык MetaTrader 4) — поддержка объектно-ориентированного программирования (ООП), что делает его схожим с C++.

Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 1

Автор: MetaQuotes

 
Считаю, что мне очень повезло получить различные программные коды из книги "MQL5 программирование для трейдеров - исходные коды из книги. Часть 1 - эксперт для MetaTrader 5 для дальнейшего изучения. Большое спасибо.
 

В тексте присутствуют неточности.

Цитата:

Одно из главных изменений в языке MQL5 по сравнению с MQL4 (язык MetaTrader 4) — поддержка объектно-ориентированного программирования (ООП), что делает его схожим с C++. Несмотря на то, что некоторые функции ООП уже были перенесены в MQL4 из MQL5 ...

ООП было добавлено в MQL4, если не ошибаюсь, еще в 600-й версии в начале 2013 г.! Тогда же коренным образом улучшили язык MQL4, подтянув его до пятерки. Появились полноценные дефайны в стиле С++, как в MQL5 и многое другое, а главное, рабочее ООП в стиле плюсов, которое с тех пор не особо изменилось, если говорить чисто про язык. Новички вечно путают API MT4 и API MT5 с языками программирования 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;
   ...
}