Função OnTrade() [Faz leitura de ordem pendente?]

 

Boa tarde senhores e senhoras...

Estou procurando na documentação do MQL5 e não encontrei a informação de maneira clara sobre a função OnTrade() no que se refere a ordens pendentes.

Minha dúvida é:

Caso tenha uma Ordem Sell (pendente) e em algum momento eu exclua essa Ordem Sell (pendente), a função OnTrade() é chamada no mento dessa exclusão?


O que encontrei sobre o assunto foi...

https://www.mql5.com/pt/docs/event_handlers/ontrade

https://www.mql5.com/pt/docs/event_handlers/ontradetransaction

 
rmca:

Boa tarde senhores e senhoras...

Estou procurando na documentação do MQL5 e não encontrei a informação de maneira clara sobre a função OnTrade() no que se refere a ordens pendentes.

Minha dúvida é:

Caso tenha uma Ordem Sell (pendente) e em algum momento eu exclua essa Ordem Sell (pendente), a função OnTrade() é chamada no mento dessa exclusão?


O que encontrei sobre o assunto foi...

https://www.mql5.com/pt/docs/event_handlers/ontrade

https://www.mql5.com/pt/docs/event_handlers/ontradetransaction

rmca,

Eu nunca usei o OnTrade, mas no que diz nessa documentação é exatamente isso que você falou, ou seja, na exclusão de uma ordem pendente gera uma chamada para o OnTrade.

Eu li isso em: https://www.mql5.com/pt/docs/event_handlers/ontrade

Documentação sobre MQL5: Manipulação de eventos / OnTrade
Documentação sobre MQL5: Manipulação de eventos / OnTrade
  • www.mql5.com
//|                                               OnTrade_Sample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 

Sugiro que use OnTradeTransaction() em vez de OnTrade().

Eu uso OnTradeTransaction() e praticamente todos esses eventos que acontecem com as ordens, inclusive exclusão de ordens, são notificados por meio dessa função.

Ela me parece ser uma versão melhor organizada e mais completa da OnTrade() ... e pra mim tem funcionado muito bem.

https://www.mql5.com/pt/docs/event_handlers/ontradetransaction

Documentação sobre MQL5: Manipulação de eventos / OnTradeTransaction
Documentação sobre MQL5: Manipulação de eventos / OnTradeTransaction
  • www.mql5.com
É chamada em EAs quando ocorre o evento TradeTransaction. A função é projetada para processar os resultados de execução da solicitação de negociação. [in]  Variável do tipo MqlTradeTransaction com descrição da transação feita na conta de negociação. [in]  Variável do tipo MqlTradeRequest com descrição da solicitação que gerou a transação...
 
Trader_Patinhas:

Sugiro que use OnTradeTransaction() em vez de OnTrade().

Eu uso OnTradeTransaction() e praticamente todos esses eventos que acontecem com as ordens, inclusive exclusão de ordens, são notificados por meio dessa função.

Ela me parece ser uma versão melhor organizada e mais completa da OnTrade() ... e pra mim tem funcionado muito bem.

https://www.mql5.com/pt/docs/event_handlers/ontradetransaction

Obrigado meu amigo... Dei uma olhada na documentação e realmente parece ser uma versão mais "completa" do OnTrade().

Aproveitando o tópico, me tira uma dúvida?

Peguei alguns EA's no código livre para fazer certos estudos e análises e observei que a maioria deles utiliza uma sequencia de comandos no OnInit():

m_trade.SetExpertMagicNumber(magic);
m_trade.SetTypeFillingBySymbol(symbol);
m_trade.SetMarginMode();

Minha dúvida é, a função SetMagicNumber(magic) define o número mágico da ordem que será enviada certo?

A função SetTypeFillingBySymbol(symbol) define em qual ativo a ordem será enviada?

A função SetMarginMode() define o que exatamente?

Há necessidade desses comandos antes da execução de uma ordem?

Razão: