Dificuldades de tradução :)

 

Quero lhes contar como converti meu projeto de MQL4 para 5 em uma noite. Só quero lhes falar sobre minha prática e acabou sendo muito simples).

Então, ontem à tarde cansado, deitou-se por meia hora e acordou de manhã, uma hora e meia. Acho que ressonei, o que fazer agora, nunca vou conseguir dormir.

Tenho pensado em mudar meu projeto de escalper de MT4 para MT5 com hedging, tenho usado o hedging-demo do site do robô há muito tempo, mas não tive tempo de usá-lo realmente. O principal objetivo é testar usando carrapatos de robôs reais. Eu também quero rodar o otimizador na nuvem, a velocidade lá é realmente boa.

No momento estou rodando o modelo em Matlab, mas é uma versão simplificada e está ficando cada vez mais difícil sincronizar as mudanças do código e do modelo. Digamos que o modelo está constantemente atrasado em relação ao verdadeiro código MQL4.

********** Processo Migratório *****

Portanto, meu projeto consiste em um arquivo .mq4 e um monte de classes em .mqh. Eu mudei tudo para 5, renomeado .mq4 para .mq5, deixei as classes como elas são. Começou a compilar, 100500 erros, é claro. Ok, não temos medo de problemas e olhamos para os erros. A maior parte deles está relacionada ao MarketInfo, eles ocorrem em quase todos os lugares. Ok, eu sou um gatinho preguiçoso, não estou autorizado a limpá-lo à mão )) Eu já tenho um projeto MQL4/5 no Visual Studio.

A propósito, eu vi meu vídeo antigo de 2011 cuidadosamente preservado no YouTube. Aprendi como configurar o estúdio 2010 para aceitar arquivos MQL como mais arquivos. Nada mudou, você pode usá-lo agora.

O vídeo de 2011, eu poderia jurar na MQL4, a situação é diferente agora, a linguagem é normal )) Sou preguiçoso demais para reler, mas alguns ecos do passado podem passar por aqui.

https://www.youtube.com/watch?v=oQs4qqwhqzg

Então, eu carreguei tudo no estúdio, o legal é que a busca e a substituição podem ser feitas de uma só vez durante todo o projeto e não por um arquivo de cada vez. Substituí todos os MarketInfo por analógicos MQL5. Após algumas pequenas correções, todos os erros, como esperado, permaneceram na classe COrderManager. Esta é a minha turma que administra os pedidos, constrói e modifica as grades e outras coisas.

Devo ter levado cerca de 3 horas para redesenhá-lo. Usei a classe CTrade Standard Library, mas tive que dar à luz um bebê dela, porque faltavam algumas características.

------------------------

Conclusão. Todo esse gemido sobre como é difícil para um pobre programador mudar para 5 é uma besteira! Durante a transição cozinhei uma grande batata com carne, fui dar uma caminhada noturna, gosto de caminhar à noite, assisti a alguns filmes com Bruce W., e fiz algumas melhorias nos lugares onde não conseguia chegar. Agora é bem possível fazer uma reinicialização, recentemente me lembrei de uma antiga promessa, e o assunto voltou a surgir no outro dia.

Sim, a classe COrderManager perdeu muito peso usando a biblioteca padrão

Настройка Visual Studio 2010 для редактирования MQL файлов
Настройка Visual Studio 2010 для редактирования MQL файлов
  • 2011.07.01
  • www.youtube.com
Как известно, редактор Metatrader 4 далек от совершенства. Часто удобно редактировать большие проекты в VS2010. На этом видео я показываю процесс настройки.
 
Andrey F. Zelinsky:

Como você entende "melhorar esses lugares" depois de "ter ido dar uma caminhada noturna"?

Você foi dar uma caminhada à noite ou foi dar uma caminhada?

Não tenho que sentar em um escritório há muito tempo, muitas vezes vou dar uma volta à noite ) Eu melhorei alguns lugares no projeto que eu queria mudar há muito tempo, mas eu era preguiçoso demais para fazê-lo de qualquer forma. Preparei-me para tal evento, converti-me e redesenhei muitas coisas.

Andrey, "dar uma caminhada" e "beber" são duas coisas diferentes)).

 

Alexei, uma pergunta para você:

Quanto tempo e quão difícil é traduzir projetos que são escritos em estilo processual? Por que procedimento? - Estou acostumado, tenho um modelo para todas as ocasiões, escrevo 3-5 linhas por condições nele, e qualquer coruja está pronta em meia hora com todas as depurações

A seguir:

É possível reescrever a função de abertura de posição para aplicá-la da mesma forma que no quad, acostumaram-se com seus nomes e uso ao longo dos anos, e não precisam conectar nenhuma biblioteca.

E um bloco de condições para abrir e criar um gráfico:

Muito mais gráficos, escritos uma vez em cinco, então há algo feito através do tempo .opa e do preço de selecionar o primeiro ponto e o segundo. No quarto, ObjectSetInteger(0,nm,OBJPROP_TIME1, t1) e ObjectSetInteger(0,nm,OBJPROP_TIME2, t2), mas no quinto, tal construção não funciona(

Obrigado antecipadamente pela resposta!

 
Alexey Volchanskiy:

...

Conclusão. Todo esse gemido sobre como é difícil para um pobre programador mudar para um A é uma besteira! ...

Não confunda o dom de Deus com um ovo. Se um EA está trabalhando com vários pedidos e traduzido em rede, esta é uma tarefa irreal.
 

Acho que é mais fácil não portar o código. É mais fácil escrever a partir do zero. Desta forma, será de maior qualidade.

 
Dmitry Fedoseev:
Não confunda o dom de Deus com o ovo. Se um EA está trabalhando com várias ordens e se movendo para a rede, é uma tarefa irrealista.

É claro que escrevi no primeiro post: "Há muito tempo eu queria mover meu projeto deescalper do MT4 para o MT5 com hedging, eu até comecei a fazer demos de robô há muito tempo, mas não tive tempo de fazer isso. "Você deve ter perdido estes detalhes.

É por isso que não mudei para o MT5 enquanto só havia rede. Agora, com a sebe, estou rastejando lentamente.

O posto era sobre o lado puramente técnico da transição.

 
Anton Zverev:

Acho que é mais fácil não portar o código. É mais fácil escrever a partir do zero. Será de maior qualidade dessa forma.

Por quê? Os idiomas são os mesmos, as funções para acessar as séries temporais são diferentes, algumas outras, isto é resolvido em VS substituindo ao longo do projeto, como eu escrevi. É rápido e descomplicado. Algumas dificuldades com a parte comercial, tive que introduzir a manipulação da posição na classe, além do processamento de pedidos. Mas, em princípio, também não é um grande problema.

Mais uma vez, só para o caso de - refiro-me à cobertura.

 
Vitaly Muzichenko:

Alexei, uma pergunta para você:

Quanto tempo e quão difícil é traduzir projetos que são escritos em estilo processual? Por que procedimento? - Estou acostumado, tenho um modelo para todas as ocasiões, escrevo 3-5 linhas por condições nele, e qualquer coruja está pronta em meia hora com todas as depurações

A seguir:

É possível reescrever a função de abertura de posição para aplicá-la da mesma forma que no quad, acostumaram-se com seus nomes e uso ao longo dos anos, e não precisam conectar nenhuma biblioteca.

Bem, e um bloco de condições para a abertura e criação de gráficos:

Muito mais gráficos, escritos uma vez em cinco, então algo é feito através do .opa lá tempo e preço de selecionar o primeiro ponto e o segundo. No quarto, ObjectSetInteger(0,nm,OBJPROP_TIME1, t1) e ObjectSetInteger(0,nm,OBJPROP_TIME2, t2), mas no quinto, tal construção não funciona(

Obrigado antecipadamente pela resposta!

Vitaly, você pode deixar tudo em estilo processual, ninguém está forçando você a usar o OOP. A Biblioteca Padrão é clara para mim, criei minha própria classe a partir dela, aumentei algumas coisas. E eu fiz de tudo na OOP.

Responderei em ordem inversa ))

1. Rediscuti o roteiro com gráficos, há algumas diferenças, mas muito pequenas. Basicamente, tenho que especificar explicitamente janela e subjanela, não foi necessário em 4.

2. Quanto às posições de abertura, se for usada a classe CTrade, ela tem análogos quase diretos das funções MQL4

3. Acho que não vai demorar muito.

Se você quer dizer freelancer, você pode se acostumar muito rapidamente. Basicamente você tem que se acostumar ao fato de que ordens, negócios e posições são coisas diferentes, também em sebes.

 
Anton Zverev:

Acho que é mais fácil não portar o código. É mais fácil escrever a partir do zero. Desta forma, será de maior qualidade.

Às vezes é útil deixar seu emprego, sua esposa e sua vida completa e começar do zero. Eu já fiz isso muitas vezes. Tudo se revela melhor e de maior qualidade).
 
Alexey Volchanskiy:
Às vezes pode ser útil deixar seu emprego, sua esposa, sua vida de contentamento e começar do zero. Eu já o fiz muitas vezes. Fica cada vez melhor ))))
))
 
Agora vou ser pulado - posso senti-lo. Você deve escrever em estilo OOP e você ficará feliz.
E então um movimento como este será uma noite de caminhada fácil.