Creating a robust trading robot cannot be done without an understanding of the mechanisms of the MetaTrader 5 trading system. The client terminal receives the information about the positions, orders, and deals from the trading server. To handle this data properly using the MQL5, it's necessary to have a good understanding of the interaction between the MQL5-program and the client terminal.
Obrigado, também cheguei a uma conclusão semelhante). Pensei que houvesse algo exatamente orientado por eventos), pois será possível reagir à negociação manual somente no segundo tique).
obrigado por escrever este artigo... Brinquei um pouco com seu código. Mas, a princípio, tenho um problema básico, que é o fato de estar trabalhando com posições. Isso significa que:
Meu EA está definindo uma ordem de compra no backtest e a função Ontrade é chamada várias vezes, conforme descrito. Mas seu código está verificando apenas o OrdersTotal. O mais estranho é que o resultado dessa função é sempre 0. Depois de colocar minha ordem, só tenho uma posição de compra, o que não é tratado em seu código, não é?
Serhiy Dotsenko: Para MQL4, o que você acha que seria semelhante ao OnTrade?
Gerar OnChartEvent() antes de fazer uma operação de negociação e, nela, tentar obter o resultado da operação de negociação.... E você pode pensar em um tipo, de acordo com o qual OnChartEvent() deve ser chamado o número necessário de vezes...
Denis Kirichenko: Gerar OnChartEvent() antes de fazer uma operação de negociação e, nela, tentar obter o resultado da operação de negociação.... E você pode pensar em um tipo, de acordo com o qual OnChartEvent() deve ser chamado o número necessário de vezes...
Se não há elementos gráficos, por que precisamos dessa variante? Na minha opinião, ela é desnecessária...
Obrigado pelo artigo, é claro. Me poupou algum tempo. Porque não precisei pesquisar em algum lugar sobre esses eventos. Não há nenhuma informação na ajuda, e escrever constantemente para o suporte também é demorado. É por isso que o artigo é relevante. Mas, para ser sincero, o código é apertado. Tive que transferi-lo para mim mesmo e colocá-lo em um formato normal. E então tive que pensar sobre isso.
O OnChartEvent é usado no artigo Creating Active Control Panels in MQL5 for Trading.
Quero dizer: OnTrade( )
deveria ser OnTrade( id, para1,para2.....)
Alguém poderia melhorar o código fornecido no artigo para processar o evento de fechamento de uma posição por stop loss ou take profit?
Ele se mostrou desnecessário nos últimos 2,5 anos desde a publicação do artigo?
Recomenda-se traduzir https://www.mql5.com/en/articles/211 Ordens, Posições e Negociações no MetaTrader 5.
Em primeiro lugar, você precisa descobrir qual dos 6+2 acima corresponde a ordens, posições e operações!
Para MQL4, o que você acha que seria semelhante ao OnTrade?
Verifique em cada tick OrdersTotal() e OrdersHistoryTotal() - se o número tiver mudado - chame OnTrade().
Hi ,
obrigado por escrever este artigo... Brinquei um pouco com seu código. Mas, a princípio, tenho um problema básico, que é o fato de estar trabalhando com posições. Isso significa que:
Meu EA está definindo uma ordem de compra no backtest e a função Ontrade é chamada várias vezes, conforme descrito. Mas seu código está verificando apenas o OrdersTotal. O mais estranho é que o resultado dessa função é sempre 0. Depois de colocar minha ordem, só tenho uma posição de compra, o que não é tratado em seu código, não é?
O que há de errado aqui?
Para MQL4, o que você acha que seria semelhante ao OnTrade?
Gerar OnChartEvent() antes de fazer uma operação de negociação e, nela, tentar obter o resultado da operação de negociação.... E você pode pensar em um tipo, de acordo com o qual OnChartEvent() deve ser chamado o número necessário de vezes...
Se não há elementos gráficos, por que precisamos dessa variante? Na minha opinião, ela é desnecessária...