Tenho uma única posição //-- PositionsTotal=1
Esta posição é composta por três ordem que estão em execução.
CTrade myTrade;
// myTrade já foi inicializada em outro lugar
myTrade.Buy( ..., "Comentário: Ordem A"); //-- Está ordem já foi executada e faz parte da Posição x
myTrade.Buy( ..., "Comentário: Ordem B"); //-- Está ordem já foi executada e faz parte da Posição x
myTrade.Buy( ..., "Comentário: Ordem C"); //-- Está ordem já foi executada e faz parte da Posição x
// Temos uma única posição composta pelas ordem executadas A, B, C
Pergunta: Qual o código ? para alterar o Stop Loss/Take profit de uma única ordem executada, a ordem B,
mantendo inalterados os estados das ordem A e C que também foram executadas,
lembrando que as ordem A, B e C formam a única Posição x.
Obs: Revirei o manual, o google, o mql5 e a única alteração possível que encontrei foi a de ordens não executadas e de posição como um todo.
Olá kuramaua brazil, em primeiro lugar note que quando você comenta que a posição é "composta por ordens em execução" ou que "determinada ordem faz parte da posição x" está confundindo eventos/estados independentes, pois uma ordem pode ou não abrir uma posição, e, uma vez aberta a posição, a ordem já foi executada, ou seja, a posição não tem nenhuma dependência ou relação com a ordem original, nem está mais em execução.
Seja como for, sobre a sua pergunta específica, e complementado a resposta do Rogerio Giannetti Torres, uma vez em modo hedge, você pode modificar posições individualmente, bastando para isso identificar o ticket delas.
Para isso, recomendo estudares as funções PositionGetTicket() e PositionSelectByTicket() para encontrar e selecionar o ticket, e PositionModify() na classe CTrade para modificar o S/L e/ou T/P da posição que desejar.
Sds.,
Rogério Figurelli

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Tenho uma única posição //-- PositionsTotal=1
Esta posição é composta por três ordem que estão em execução.
CTrade myTrade;
// myTrade já foi inicializada em outro lugar
myTrade.Buy( ..., "Comentário: Ordem A"); //-- Está ordem já foi executada e faz parte da Posição x
myTrade.Buy( ..., "Comentário: Ordem B"); //-- Está ordem já foi executada e faz parte da Posição x
myTrade.Buy( ..., "Comentário: Ordem C"); //-- Está ordem já foi executada e faz parte da Posição x
// Temos uma única posição composta pelas ordem executadas A, B, C
Pergunta: Qual o código ? para alterar o Stop Loss/Take profit de uma única ordem executada, a ordem B,
mantendo inalterados os estados das ordem A e C que também foram executadas,
lembrando que as ordem A, B e C formam a única Posição x.
Obs: Revirei o manual, o google, o mql5 e a única alteração possível que encontrei foi a de ordens não executadas e de posição como um todo.