Discussão do artigo "Expert Advisor multiplataforma: reutilização de componentes a partir da Biblioteca padrão MQL5"

 

Novo artigo Expert Advisor multiplataforma: reutilização de componentes a partir da Biblioteca padrão MQL5 foi publicado:

Na biblioteca padrão MQL5, existem alguns componentes que podem ser úteis em versões de EAs MQL4 multiplataforma. Este artigo descreve um método para a criação de alguns componentes da biblioteca padrão MQL5 compatíveis com o compilador MQL4.

Da mesma forma, como discutido no primeiro artigo desta série, nós usamos um arquivo de cabeçalho comum, que idealmente consolida as semelhanças entre o código das versões MQL4 e MQL5. Na verdade, você pode reescrever a classe CSymbolinfo em três arquivos separados, para que as semelhanças sejam fundidas num único arquivo, enquanto as diferenças sejam separadas em dois arquivos diferentes. No entanto, neste artigo vamos ver a maneira mais fácil (e rápida): copiamos o arquivo de classe CSymbolinfo e, em seguida, escrevemos as linhas que são incompatíveis com a MQL4. Para as duas versões, a estrutura resultante do arquivo ficará assim:

Autor: Enrico Lambino

 

Hi!

Você escreveu no início: "Entretanto, sua principal desvantagem é que não precisamos reescrever muito código."

Você quer dizer "... vantagem ..." - correto?

 
Oi,
Trabalho muito bom e explicações claras. Manterei contato, pois nesse momento não há nada com que recompensá-lo, apenas palavras. OBRIGADO!
 

Eu nunca entendi por que alguém quer usar uma classe de proteção como SymbolInfo?

Há apenas uma função útil:

double CSymbolInfo::NormalizePrice(const double price) const

Todo o resto é apenas sobrecarga para tornar seu código mais lento. Uma classe Symbol bem codificada poderia ser útil, mas essa classe "padrão" é simplesmente inútil. Não quero nem falar sobre "CAccountInfo".

@Enrico Lambino, por que você não criou suas próprias classes em vez disso?