Auto-aprendizagem da linguagem MQL5 a partir do zero - página 64

 
MrBrooklin:

Alerta() tem que ser usado, ou é apenas para informação?

Não necessariamente, é apenas por conveniência

 
VVT:

Não necessariamente, é por conveniência

Estou vendo.

Com todo o respeito, Vladimir.

 
MrBrooklin:

Olá Valery! Obrigado por seus conselhos. Já fiz alguns amigos com o operador do if-else, e agora preciso dominar também o operador do switch. Preciso usar Alert() ou ele está lá apenas para mais informações?

Cumprimentos, Vladimir.

À luz da minha experiência como engenheiro eletrônico. Quando há um incêndio, uma sirene, quando o chão não está limpo, uma nota para o limpador. O comentário escreve no gráfico, imprime para registrar, envia um sinal sonoro de alerta, e há também uma caixa de mensagens, também emite um sinal sonoro, mas não é nativo.

 
Valeriy Yastremskiy:

Tendo em vista a experiência do eletricista. Na sirene de incêndio, em pisos não limpos, observação para limpar. O comentário escreve no gráfico, imprime para registrar, envia direto para arquivar, emite bipes de alerta, e a caixa de mensagens também emite bipes, mas isso não é nativo.

Obrigado, você o explicou muito bem!

Cumprimentos, Vladimir.

 
Valeriy Yastremskiy:

Se as posições com nossa Magik e em nosso símbolo são zero, verificamos o tempo e abrimos uma posição, se for 1, não abrimos uma posição, verificamos o tempo de fechamento e arrasto, se for mais de 1, alertamos e não trabalhamos. Podemos usar o piggyback ou se quisermos verificá-lo com o iff.

Olá Valery! Muito obrigado, sua versão "... se as posições com nosso magik e em nosso símbolo são iguais a zero, verificamos o tempo e abrimos uma posição..." acabou sendo a mais simples e eficaz. Adicionei-o à condição de verificar o tempo && PositionTotal()==0 e apenas uma posição com a quantidade necessária é aberta!

   if(time_current.hour==time_open.hour && time_current.min==time_open.min && PositionsTotal()==0)
      OpenBUY();

Atenciosamente, Vladimir.


 
Aqui está um artigo interessante
https://www.mql5.com/ru/articles/35

Exp e indicador.
 
Aleksey Masterov:
Aqui está um artigo interessante
https://www.mql5.com/ru/articles/35

Exp e indicador.

Olá Alexey, obrigado pelo link para o artigo. Sim, há muitas coisas interessantes nele.

Cumprimentos, Vladimir.

 
MrBrooklin:
if(time_current.hour==time_open.hour && time_current.min==time_open.min


esta não é a melhor maneira de comparar o tempo de espera para abrir uma posição

no testador tudo funcionará sempre sem problemas, na conta real podem ocorrer erros - o consultor especializado trabalha na chegada de um tick, se por alguma razão o tick não chegar exatamente no minuto que você está esperando por ele, seu algoritmo não funcionará corretamente e será muito difícil encontrar esse erro lógico mais tarde


tentar reformular este problema para fugir da comparação estrita de igualdade ( == ) para condicionar mais ou igual ( >= ) ....( e/ou condicionar menos ou igual)

 
Igor Makanu:

esta não é a melhor maneira de comparar o tempo de espera para abrir uma posição

no testador tudo funcionará sempre sem problemas, na conta real podem ocorrer erros - o consultor especializado trabalha na chegada de um tick, se por alguma razão o tick não chegar exatamente no minuto que você está esperando por ele, seu algoritmo não funcionará corretamente e será muito difícil encontrar esse erro lógico mais tarde

tentar reformular o problema para fugir da comparação estrita de igualdade ( == ) para uma condição maior ou igual a ( >= ) ....( e/ou menos que igual condição)

Oi Igor, obrigado pela dica. Concordo plenamente com seu raciocínio, pois as situações de carrapato podem de fato ser diferentes. Vou fazer uma correção no código.

Cumprimentos, Vladimir.

 

Corrigido o código, como recomendado por Igor. Muito boa e oportuna dica! Ele eliminou um problema na operação da EA, que eu não havia notado antes. Mais uma vez obrigado Igor!

Atenciosamente seu, Vladimir.