Especialistas: Programação no MQL5 para traders: códigos-fonte retirados do livro. Parte 1

 

Programação no MQL5 para traders: códigos-fonte retirados do livro. Parte 1:

O primeiro capítulo do livro apresenta a linguagem e o ambiente de desenvolvimento MQL5. Uma das principais mudanças no MQL5 em comparação com o MQL4 (linguagem MetaTrader 4) é o suporte à programação orientada a objetos (OOP), que o torna semelhante ao C++.

Programação no MQL5 para traders: códigos-fonte retirados do livro. Parte 1

Autor: MetaQuotes

 
Acho que tive muita sorte em obter vários códigos de programa do MQL5 Programming for Traders - Source Codes from the Book. Part 1 - expert for MetaTrader 5 para estudo posterior. Muito obrigado.
 

Há imprecisões no texto.

Citação:

Uma das principais mudanças na MQL5 em comparação com a MQL4 (linguagem MetaTrader 4) é o suporte à programação orientada a objetos (OOP), que a torna semelhante à C++. Apesar do fato de algumas funções OOP já terem sido transferidas da MQL5 para a MQL4 ...

A OOP foi adicionada à MQL4, se não me engano, na 600ª versão, no início de 2013! Ao mesmo tempo, a linguagem MQL4 foi radicalmente aprimorada, levando-a para os cinco primeiros lugares. Apareceram definições completas no estilo C++, como na MQL5, e muitas outras coisas, e o mais importante, OOP de trabalho no estilo dos profissionais, que não mudou muito desde então, se falarmos puramente sobre a linguagem. Os iniciantes sempre confundem as APIs MT4 e MT5 com as linguagens de programação MQL4/5. Mais uma vez, as linguagens MQL4 e MQL5 são 99% idênticas, mas as bibliotecas e as APIs são muito diferentes.

Учебник по MQL5: Знакомство c языком и средой разработки
Учебник по MQL5: Знакомство c языком и средой разработки
  • www.mql5.com
Знакомство c языком и средой разработки - Программирование на MQL5 для трейдеров - Учебник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Na versão atual da MQL5, a cópia de estruturas - pai para descendente - não funciona mais. O próprio livro afirma que essa cópia é possível.
A cópia de estruturas de pares funciona como a cópia de um descendente para um pai, com perda dos dados do descendente.
 
Vitalii Avramenko #:
Na versão atual da MQL5, a cópia de estruturas - pai para descendente - não funciona mais. O próprio livro afirma que essa cópia é possível.
A cópia de estruturas de pares funciona como copiar um descendente em um pai - com perda de dados do descendente.

A MQL5 está mudando (infelizmente, sem a capacidade de compilar no modo de compatibilidade com versões anteriores, o que outras linguagens e compiladores, como o C++, por exemplo, permitem fazer).

Portanto, você precisa levar em conta as inovações (pelo menos compreendendo as mensagens do compilador) e, por exemplo, adicionar edições por conta própria, como no exemplo da cópia de estruturas herdadas:

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;
   ...
}