Fernando Paiva:
Estou tentando calcular o valor das ordens finalizadas com PositionClose, seja com lucro ou prejuizo, mas não estou conseguindo.
Como fazer isso ?
Utilize a função OnTradeTransaction junto a biblioteca DealInfo, a função será chamada cada vez que ocorrer o evento de transação e com a biblioteca você conseguirá ver o resultado da sua operação.
#include <Trade\DealInfo.mqh> //Biblioteca para o uso do OnTradeTransaction CDealInfo m_deal; void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //get transaction type as enumeration value //--- if transaction is result of addition of the transaction in history if(type==TRADE_TRANSACTION_DEAL_ADD) { if(HistoryDealSelect(trans.deal)) m_deal.Ticket(trans.deal); else return; if(m_deal.Magic()==EXPERT_MAGIC && m_deal.Symbol()==_Symbol) { if(m_deal.DealType() == DEAL_TYPE_BUY || m_deal.DealType()==DEAL_TYPE_SELL) { if(m_deal.Entry() == DEAL_ENTRY_IN) { Print("Este bloco será chamado ao abrir uma nova posição"); } else if(m_deal.Entry() == DEAL_ENTRY_OUT) { if(m_deal.DealType()==DEAL_TYPE_BUY) { Print("Este bloco será chamado ao fechar uma posição de compra"); double lucroUltimaOperacao = m_deal.Profit(); Print("Lucro da última operação = ", lucroUltimaOperacao); } else if(m_deal.DealType()==DEAL_TYPE_SELL) { Print("Este bloco será chamado ao fechar uma posição de venda"); double lucroUltimaOperacao = m_deal.Profit(); Print("Lucro da última operação = ", lucroUltimaOperacao); } } } } } }
vih6460 #:
Utilize a função OnTradeTransaction junto a biblioteca DealInfo, a função será chamada cada vez que ocorrer o evento de transação e com a biblioteca você conseguirá ver o resultado da sua operação.
Obrigado. Funciona blzinha !
Muito boa sua solução. Resolveu meu problema de conseguir pegar de forma simples e eficiente os resultados das operações finalizadas. Já conhecia a função, mas não essa aplicação dela de uma forma tão simples e funcional. Muito obrigado!

Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Estou tentando calcular o valor das ordens finalizadas com PositionClose, seja com lucro ou prejuizo, mas não estou conseguindo.
Como fazer isso ?