Acho que eu consegui resolver
No lugar de: m_account.Profit() usei m_position.Profit()
E ao invés de fechar usando: ClosePositions(POSITION_TYPE_BUY);
Usei: m_trade.PositionClose(m_position.Ticket());
Testar
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
Prezados,
Estou testando um EA da biblioteca e uma das funções é esta: if(m_account.Profit()>100)
Quando o lucro da conta for maior que 100,00 (no caso 100 reais, mini-índice, B3), ele fecha a ordem de compra: ClosePositions(POSITION_TYPE_BUY);
Meu problema é que faço entradas manuais na mesma conta, e o lucro delas está atrapalhando o EA. Então, como é que eu faço para que este EA só monitore o seu próprio lucro ?
Fiquei imaginando um comando assim: if(m_account.Profit()>100 && m_magic==12345), 12345 é o número mágico deste EA-teste
No bloco de comando ClosePositions tem: if(m_position.Magic()==m_magic)
m_trade.PositionClose(m_position.Ticket());
De fato ele só fecha suas próprias ordens, isso tá funcionando bem. O problema é o EA 'enxergar' só o Profit da conta relativo à suas próprias ordens. Ignorar o resultado financeiro das ordens abertas manualmente.
Agradeço quem souber e puder ajudar revelando o que devo incluir/modificar, e em qual parte do código.