Discussão do artigo "Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte X)"
Há um erro no MT4 que exclui tudo, inclusive objetos ocultos (o que não deveria ser o caso), ao pressionar a tecla ← Backspace
Portanto, ao pressionar ← Backspace, você pode excluir facilmente toda a interface.
Em geral, seu código MT4 não tem uma resposta para a exclusão de controles para recriá-los.
No MT4, há um erro que exclui tudo, inclusive objetos ocultos (que não deveriam estar), ao pressionar a tecla ← Backspace.
Portanto, ao pressionar ← Backspace, você pode excluir facilmente toda a sua interface.
Em geral, seu código MT4 não responde à exclusão de controles para recriá-los.
O Trade.mqh foi criado para funcionar no MT4.
- www.mql5.com
#ifdef __MQL5__ #define __MQL5_NEW__ #else // __MQL5__ #define __MQL4_NEW__ #endif // __MQL5__no início da Bíblia. E todas as condições devem ser alteradas para New-variant. Então, será possível executar no MT5 a variante mt4 da biblioteca, e no MT4 - a variante mt5 da biblioteca.
Sugiro que isso seja feito logo no início das Bíblias. E todas as condições devem ser alteradas para New-variant. Então, será possível executar no MT5 a variante mt4 da biblioteca, e no MT4 - a variante mt5 da biblioteca.
Há apenas uma variante de biblioteca
Eu gostaria de poder executar a lógica MT4 da biblioteca no MT5.
Eu gostaria de poder executar a lógica da biblioteca do MT4 no MT5.
Não entendi a sugestão porque a lógica é a mesma para ambas as plataformas. A implementação é um pouco diferente.
Eu conecto o MT4Orders antes de sua biblioteca. E quero que a variante MT4 esteja envolvida em sua biblioteca.
Há duas maneiras de resolver isso
- Eu substituo __MQLX__ em todas as fontes de sua biblioteca. Ou seja, altero a própria biblioteca, embora de forma semiautomática.
- Você cria macros, como mostrei acima. Então, para incluir o MT4-logic no MT5, você não precisa alterar nada em sua biblioteca.
Acho que você terá interesse em comparar sua biblioteca exclusivamente no MT5, mas em dois modos lógicos.
ZY: Também quero poder executar sua biblioteca no Virtual. Para isso, preciso ter acesso à parte da biblioteca no estilo do MT4.
Eu conecto o MT4Orders antes de sua biblioteca. E quero usar a variante MT4 em sua biblioteca.
Há duas maneiras de resolver isso
- Eu substituo __MQLX__ em todas as fontes de sua biblioteca. Ou seja, altero a própria biblioteca, embora de forma semiautomática.
- Você cria macros, como mostrei acima. Então, para incluir o MT4-logic no MT5, você não precisa alterar nada em sua biblioteca.
Acho que seria interessante você comparar sua biblioteca exclusivamente no MT5, mas em dois modos lógicos.
ZY: Também quero poder executar sua biblioteca no Virtual. Para isso, preciso ter acesso à parte da biblioteca no estilo do MT4.
Podemos conversar sobre isso. Mas em particular. Por enquanto, a biblioteca será desenvolvida da mesma forma: uma lógica para ambas as plataformas. A biblioteca foi concebida como uma unidade independente - uma para ambas as plataformas. Com a mesma lógica que não contradiz nem o estilo MQL4 nem o estilo MQL5 - tudo é comum.
ZY: Não entendi o que significa a parte da biblioteca no estilo MQL4. Não há nenhuma separação ali. Mostre-me o local da biblioteca que está sendo mencionado.
Podemos discutir o assunto. Mas em particular. Enquanto isso, a biblioteca será desenvolvida da mesma forma: uma lógica para ambas as plataformas. A biblioteca foi concebida como uma unidade independente - uma para ambas as plataformas. Com a mesma lógica que não contradiz nem o estilo MQL4 nem o estilo MQL5 - tudo é comum.
Eu lhe enviei uma versão da sua biblioteca, que funciona no MT5 por meio da lógica do estilo MT4 prescrita por você.
ZY: Não entendi o que significa a parte da biblioteca no estilo MQL4. Não há nenhuma separação ali. Mostre-me o local da biblioteca em que isso é mencionado.
A questão é que as bibliotecas de plataforma cruzada têm uma probabilidade muito maior de operabilidade da parte da biblioteca no estilo MQL4 do que no estilo MQL5. Portanto, ao usar bibliotecas de plataforma cruzada, prefiro usar sua lógica de estilo MQL4 no MT5. Ela é muito mais confiável no MT5.
Acho que, no MT5, sua lógica no estilo MQL5 levará muito tempo para detectar bugs, enquanto o estilo MQL4 terá apenas um número mínimo de bugs e não críticos.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte X): Compatibilidade com a MQL4 - Eventos de abertura de posição e ativação de ordens pendentes foi publicado:
Nos artigos anteriores, nós começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Na nona parte, nós começamos a melhorar as classes da biblioteca para trabalhar com a MQL4. Aqui nós continuaremos melhorando a biblioteca para garantir sua total compatibilidade com a MQL4.
Teste
Vamos verificar as mudanças aplicadas. Compilamos o TestDoEasyPart10.mq4, iniciamos ele no testador, abrimos e fechamos algumas posições, colocamos algumas ordens pendentes, esperamos até que uma delas seja ativada e verificamos se os níveis de stop e trailing estão ativados (modificando as posições e ordens pendentes). Todos os eventos que a biblioteca "vê" para a MQL4 devem ser exibidos no diário do testador:
Se nós observarmos atentamente o diário do testador, nós podemos ver que a biblioteca ainda não conseguiu visualizar o encerramento de posições. Quando a ordem pendente BuyLimit #3 é acionada, o diário informa que a [BuyLimit #3] está ativada, levando à posição Buy #3. Agora, a biblioteca vê os eventos de ativação da ordem pendente e conhece a ordem que originou a posição. Além disso, nós podemos ver uma leve omissão na função de modificação — o rótulo da ordem pendente BuyStop #1 modificado pelo trailing está em vermelho. Mas a biblioteca vê todos os eventos de modificação de ordem e posição.
Autor: Artyom Trishkin