Bom dia.
Estou desenvolvendo um EA que está funcionando bem, porém eventualmente ele executa uma ordem Stop durante o leilão de abertura ou fechamento, sem que o preço alcance tal valor.
Inclusive verifiquei no Times and Trades para me assegurar que não chegou lá, mesmo tendo certeza que não teria dado um pulo de 15%!
Alguém sabe como colocar algum filtro para que execute a ordem Stop somente caso o preço realmente atinja tal valor, ou outra forma de bloquear para que isso não aconteça?
Sei que uma opção seria testar na conta real, mas o EA ainda está em desenvolvimento!
Obrigado desde já!
Olá Marco
isso é um é um bug do ambiente DEMO, pode acontecer esporadicamente. Respondendo a sua pergunta, como é uma ordem stop SL/TP a única forma de intervir é modificando os stops para 0(zero) enquanto estiver entrar em leilão, mas isso vai gerar problemas.
Olá Marco
isso é um é um bug do ambiente DEMO, pode acontecer esporadicamente. Respondendo a sua pergunta, como é uma ordem stop SL/TP a única forma de intervir é modificando os stops para 0(zero) enquanto estiver entrar em leilão, mas isso vai gerar problemas.
Entendo. E será que tem como o EA verificar se é conta demo, para fora do horário de operação não operar caso esteja nesse tipo de conta?
Sim tem, use o ACCOUNT_TRADE_MODE, mas não tem como evitar a execução do STOP SL/TP pois a ordem é emitida pelo servidor MT5 e não pelo terminal MT5. Sugiro você testar se EA com outro TICKER.
Sim tem, use o ACCOUNT_TRADE_MODE, mas não tem como evitar a execução do STOP SL/TP pois a ordem é emitida pelo servidor MT5 e não pelo terminal MT5. Sugiro você testar se EA com outro TICKER.
Sim. Mas na conta demo posso colocar uma função que remove os alvos após o fechamento do mercado, e só coloca novamente as ordens quando entrar o novo preço de abertura. Para fins de testes resolve o problema, eu imagino.
Nunca fazer uma tentei fazer uma operação após o fechamento do mercado... acho que não rola. Mas durante o leilão é possível.
Inté e bons trades.
Então @Marco Antonio Colognese,
Eu tive problemas assim quando realizei teste e notei que o problema estava relacionado a ausência de ticks que não vinham quando eu os puxava do histórico junto a corretora.
Neste seu caso, apesar de não ser um teste e sim uma execução em conta DEMO acredito que há ainda aí alguma relação pois, como é um leilão e a EA continua em operação, suponho que o servidor vai enviar para a plataforma as oscilações que ocorrerão durante o leilão e, encontrando sua ordem na faixa de preço a execute.
Sua ideia de remover as ordens parece ser um bom caminho e, para acrescentar sugiro que armazene todas as informações numa struct para, após a abertura fique mais fácil recolocá-las no lugar.
Acrescento também uma situação que ocorreu comigo quando, uma ordem foi abertura numa derrapagem de preço imensa.
Hoje tenho uma função que previamente processa as informações que eu decidi colocar a posição e se, estiver dentro de uma margem que eu também defino, ela confirma a posição.
Do contrário, caso aconteça uma distância muito grande entre o que originou minha entrada e o novo preço ( a derrapagem ) ele nega a operação.

- 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
Bom dia.
Estou desenvolvendo um EA que está funcionando bem, porém eventualmente ele executa uma ordem Stop durante o leilão de abertura ou fechamento, sem que o preço alcance tal valor.
Inclusive verifiquei no Times and Trades para me assegurar que não chegou lá, mesmo tendo certeza que não teria dado um pulo de 15%!
Alguém sabe como colocar algum filtro para que execute a ordem Stop somente caso o preço realmente atinja tal valor, ou outra forma de bloquear para que isso não aconteça?
Sei que uma opção seria testar na conta real, mas o EA ainda está em desenvolvimento!
Obrigado desde já!