Discussão do artigo "Que testes deve passar o robô de negociação antes da publicação no Mercado" - página 4

 

Muito bom!

 

Durante o teste automático do Expert Advisor, ocorreu um encerramento de emergência e a mensagem Order Send Error #131: ERR_INVALID_TRADE_VOLUME foi recebida. Na seção "Como detectar e corrigir rapidamente erros em um robô de negociação", a solução do problema é dada em mql5. Mas meu Expert Advisor está escrito em mql4. Como posso fazer isso para ele? Como o Expert Advisor deve se comportar para passar na verificação de correção do volume?

 
Sergey Vrady:

Durante o teste automático do Expert Advisor, ocorreu um encerramento de emergência e a mensagem Order Send Error #131: ERR_INVALID_TRADE_VOLUME foi recebida. Na seção "Como detectar e corrigir rapidamente erros em um robô de negociação", a solução do problema é dada em mql5. Mas meu Expert Advisor está escrito em mql4. Como posso fazer isso para ele? Como o Expert Advisor deve se comportar para passar na verificação de correção de volume?


As linguagens mql5 e mql4 são quase idênticas, a única diferença está nos nomes das funções,

Anexe o código de seu cálculo de volume e eles o ajudarão a traduzi-lo para mql4.

 

Talvez em vez disso:

//--- verificar se há alterações no nível de lucro
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-sl)>tp);

esta é a maneira de fazer isso:

//--- verificar se há alterações no nível de lucro
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-tp)>point);

Acho que é melhor assim.

 
Almaz Allaberenov:

Talvez em vez disso:

esta é a maneira de fazer isso:

Acho que seria melhor.

Copie e cole, vamos corrigir isso, obrigado.

 

Olá.

Muito obrigado pelo artigo!

Talvez eu tenha entendido algo errado, mas acho que há uma imprecisão na verificação de freeze_level e stops_level.

De acordo com o teste, a distância deve ser "not less than" level e nas tabelas também >= , tudo se encaixa. Mas no código é apenas >

Por exemplo

TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL
TP_check=(TP-Bid>stops_level*_Point);

Então, qual é a maneira correta, >= ou > ?

 
Oleksii Chepurnyi:

De acordo com o teste, a distância deve ser "not less than" level e nas tabelas também >= , tudo se encaixa. Mas no código é apenas >

Por exemplo

Então está correto, >= ou > ?

Para fins de confiabilidade, é melhor exigir uma condição mais rigorosa.
 
Rashid Umarov:
Para maior confiabilidade, é melhor exigir uma condição mais rigorosa.

Bem, isso pode ser organizado no Expert Advisor antes da operação de negociação.

É mais correto usar >= na própria função de verificação? Ou pode haver algum problema?

 
Oleksii Chepurnyi:

Bem, isso pode ser organizado no Expert Advisor antes da operação de negociação.

Mas na própria função de verificação >= está mais correto? Ou pode haver algum problema?

Às vezes, há problemas com stops errados. Normalmente, verifico se é "maior que o nível de parada + 1 ponto" e, assim, não há erros com paradas erradas.
 
Artyom Trishkin:
Às vezes, há problemas com paradas erradas. Normalmente, verifico se há "mais nível de parada+1 ponto", e assim não há erros com paradas erradas.
Mas, nesse caso, há uma chance de perder uma negociação....