Pessoal!
Estou com um problema com o evento OnTradeTransaction.
Em algumas situações (que eu ainda não consegui isolar) o evento é disparado duas vezes com os MESMOS PARÂMETROS (idênticos mesmo) para a mesma ordem.
Tentando explicar melhor, uma ordem BUY_STOP é disparada, e o evento OnTradeTransaction é chamado duas vezes, com os mesmos parâmetros, sem nada que as diferencie, como se a ordem fosse disparada duas vezes mesmo. Mas a ordem foi BUY_STOP foi disparada e executada uma única vez, corretamente.
Inicialmente, pensei que pudesse ser dois negócios para preencher uma única ordem, já que a ordem é com volume 3. Ou seja, pensei que tivesse sido disparada e executado um contrato primeiro e posteriormente os outros dois. Mas não consegui identificar com nenhum dos parâmetros essa situação, pelo contrário, os volumes são sempre do total da ordem BUY_STOP.
Alguém já teve esse tipo de situação ou sabe o que pode estar acontecendo?
Antes de tudo, já agradeço.
Abraço
Leandro
Olá Leandro Tuchtenhagen,
O evento OnTradeTransaction é sim, normalmente, executado várias vezes quando trade ocorre. Faz parte da própria arquitetura do evento. Um único evento de "trade" pode gerar várias chamadas dessa função, como enumerado na própria ajuda da linguagem.
Caso você queira uma função de manipulação de eventos que faça apenas uma única chamada quando um trade ocorra, você pode utilizar a função OnTrade(). É antiga mas ainda funciona dentro da linguagem MQL5.
Abraços,
Malacarne
Pessoal!
Estou com um problema com o evento OnTradeTransaction.
Em algumas situações (que eu ainda não consegui isolar) o evento é disparado duas vezes com os MESMOS PARÂMETROS (idênticos mesmo) para a mesma ordem.
... Os parâmetros não são os mesmos, consulte este artigo
- 2014.10.21
- Dennis Kirichenko
- www.mql5.com
Já havia consultado esse artigo. Eu sabia dos diferentes disparos deste evento para um mesmo trade, por isso tenho uma condição para tratar apenas TRADE_TRANSACTION_DEAL_ADD.
Mas para uma mesma execução de ordem, este evento, as vezes, ocorre duas vezes com este parâmetro. E nenhum outro parâmetro os diferencia.
Vou tentar com o OnTrade.
Obrigado.
- 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
Pessoal!
Estou com um problema com o evento OnTradeTransaction.
Em algumas situações (que eu ainda não consegui isolar) o evento é disparado duas vezes com os MESMOS PARÂMETROS (idênticos mesmo) para a mesma ordem.
Tentando explicar melhor, uma ordem BUY_STOP é disparada, e o evento OnTradeTransaction é chamado duas vezes, com os mesmos parâmetros, sem nada que as diferencie, como se a ordem fosse disparada duas vezes mesmo. Mas a ordem foi BUY_STOP foi disparada e executada uma única vez, corretamente.
Inicialmente, pensei que pudesse ser dois negócios para preencher uma única ordem, já que a ordem é com volume 3. Ou seja, pensei que tivesse sido disparada e executado um contrato primeiro e posteriormente os outros dois. Mas não consegui identificar com nenhum dos parâmetros essa situação, pelo contrário, os volumes são sempre do total da ordem BUY_STOP.
Alguém já teve esse tipo de situação ou sabe o que pode estar acontecendo?
Antes de tudo, já agradeço.
Abraço
Leandro