Carlos Martins:
Olá,
você está misturando ordem com posições, para pegar o resultado das posições encerradas ou parcialmente encerrada, pelo EA siga o roteiro.
Para saber se a posição foi totalmente encerrada tem que tratar os deal(s) referentes a mesma positionID = HistoryDealGetInteger(Ticket, DEAL_POSITION_ID).
HistorySelect(StringToTime(TimeToString(TimeTradeServer(), TIME_DATE)), INT_MAX); // Histórico do dia int total = HistoryDealsTotal(); double result=0; for(int i = 0; i < total; i++) { Ticket = HistoryDealGetTicket(i); if(HistoryDealGetString(Ticket, DEAL_SYMBOL) == ativo && HistoryDealGetInteger(Ticket, DEAL_MAGIC) == inpMagicNumber && HistoryDealGetInteger(Ticket, DEAL_ENTRY) != DEAL_ENTRY_IN) { result+= HistoryDealGetDouble(Ticket, DEAL_PROFIT); } }
Rogerio Giannetti Torres:
Olá,
você está misturando ordem com posições, para pegar o resultado das posições encerradas ou parcialmente encerrada, pelo EA siga o roteiro.
Para saber se a posição foi totalmente encerrada tem que tratar os deal(s) referentes a mesma positionID = HistoryDealGetInteger(Ticket, DEAL_POSITION_ID).
Muito Obrigado Rogério !
Vou fazer as alterações e validar.
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Amigos,
Criei um trecho no meu código para identificar a quantidade de take e loss com base no resultado de lucro e prejuízo das minha operações.
Na conta simulador funciona perfeitamente, já na conta real o lucro ou prejuízo está vindo sempre 0(zero) e não cai nos meus IFs. Poderia me ajudar a entender porque não funciona na real ?
Minha variável v_resultado está sempre como zero.
Obrigado !