Como fazer a posição ser encerrada exatamente no preço estabelecido no TP numa conta hedge?

 

Meu robô ao encerrar uma posição no TP acaba sendo saindo uns ticks abaixo do desejado.

por exemplo:

fiz uma compra e meu TP está em 109.700 , ao chegar nesse preço ele executa meu TP porém a um preço mais baixo, tipo 109.695, 109.790. Ou seja, com uns bons ticks de diferença até.

Eu pedi para o programador uma opção de escolher o TP como ordem a mercado SIM/NÃO. Porém me parece que não está tendo diferença.

Alguém sabe uma solução para o TP ser executado exatamente no preço desejado?

se está saindo com essa diferença para baixo teria que aumentar a posição do TP uns ticks para cima para então sair no preço desejado?

 
paludo:

Meu robô ao encerrar uma posição no TP acaba sendo saindo uns ticks abaixo do desejado.

por exemplo:

fiz uma compra e meu TP está em 109.700 , ao chegar nesse preço ele executa meu TP porém a um preço mais baixo, tipo 109.695, 109.790. Ou seja, com uns bons ticks de diferença até.

Eu pedi para o programador uma opção de escolher o TP como ordem a mercado SIM/NÃO. Porém me parece que não está tendo diferença.

Alguém sabe uma solução para o TP ser executado exatamente no preço desejado?

se está saindo com essa diferença para baixo teria que aumentar a posição do TP uns ticks para cima para então sair no preço desejado?

Experimente colocar um ordem pendente oposta e usar ela como o TP, usando o  PositionCloseBy: https://www.mql5.com/pt/docs/standardlibrary/tradeclasses/ctrade/ctradepositioncloseby
Veja se dessa forma melhora sua saída de TP.

Documentação sobre MQL5: Biblioteca Padrão / Classes de negociação / CTrade / PositionCloseBy
Documentação sobre MQL5: Biblioteca Padrão / Classes de negociação / CTrade / PositionCloseBy
  • www.mql5.com
PositionCloseBy(const ulong,const ulong) - CTrade - Classes de negociação - Biblioteca Padrão - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 

Só para complementar o que o Davi disse,

(1) Voce encerra a posição usando uma ordem oposta normal.

(2) Com essas duas posições abertas, você pode usar o PositionCloseBy passando ambas as posições. O PositionCloseBy é algo apenas no servidor do mt5 e não envolve a corretora. Isso fará se as quantidades forem iguais sumir do terminal a posição, se não fica o rescaldo da quantidade.

 

Obrigado pelas dicas, eu não entendo nada de programação, queria soluções para repassar ao programador.


mas como a conta é hedge, o TP ficando como uma ordem oposta apenas não iria abrir uma nova posição em vez de encerrá-la? ou esse PositionCloseBy que o ricardo falou é para resolver isso?

 
paludo #:

Obrigado pelas dicas, eu não entendo nada de programação, queria soluções para repassar ao programador.


mas como a conta é hedge, o TP ficando como uma ordem oposta apenas não iria abrir uma nova posição em vez de encerrá-la? ou esse PositionCloseBy que o ricardo falou é para resolver isso?

Se você usar o TP da posição acredito que ela vai ser ser encerrada a mercado e, por isso, voce precisa criar uma ordem oposta para ser feita uma posição vendida no exato preço que quer (provavelmente vai ser uma stop limite). Daí sim você usa o closeby.
Razão: