[Dúvida] Como realizar uma segunda ordem dentro da conta Hedge?

 

Bom dia, boa tarde ou boa noite pessoal!

Venho por meio deste tópico tirar mais uma de minhas dúvidas. Recentemente troquei minha conta demo do MT5 para Hedge e atualmente estou codando um setup de GAP para abertura de mercado, e o mesmo necessita que seja realizado mais de uma ordem de entrada caso o trade não caminhe para o alvo de ganho, a fim de melhorar o preço médio das entradas realizadas anteriores.

Pois bem, assim sendo, ao ter alterado a minha conta de Netting para Hedge, toda vez que uma ordem é executada, essa ordem recebe seu próprio alvo de take profit e stop loss. Por exemplo, uma primeira entrada é realizada no setup de GAP de mercado as 9h02m-9h04m. Após as 9h15m, caso o robô identifique que as variáveis para a realização de uma segunda entrada seja positiva, e como dito anteriormente, focando em melhorar o preço médio e então alterar os alvos de TP/SL, essa segunda ordem, por conta da conta Hedge, acaba por não ser atrelada a ordem anterior (realizada as 9h02m-9h04m), e portanto não melhora o preço médio, pois é compreendido pelo MT5 que são ordens distintas, logo, cada uma tem seu próprio alvo de TP/SL, ao invés de ser alcançado meu objetivo desejado, que seria unificar ambas entradas dentro de somente uma operação, e com somente um alvo de TP/SL.

Segue um exemplo em foto do que está acontecendo:

  • Percebam que a ordem do dia 19/02/2021 às 9h04m é a primeira ordem;
  • As 9h16m deste mesmo dia, é realizada uma segunda ordem de compra, mas sem estar atrelada a primeira ordem;
  • As 10h19m o alvo da primeira ordem é alcançado;
  • A segunda ordem é encerrada apenas no final do dia, pois o robô encerra todas operações abertas as 17h30m.

Aguardo alguma boa alma que possa me orientar em como posso buscar dentro das estruturas de código disponíveis no MT5 alguma forma de que, essas duas operações realizadas (9h04m e 9h16m) sejam unificadas a fim de terem somente um alvo, como também realizando o reajuste do preço médio.

Agradeço pela atenção e por todos que leram minha dúvida até aqui, espero que ela também possa de certa maneira auxiliar outras pessoas que buscam pela mesma resposta ou por algo parecido.

Grande abraço, tenham um ótimo dia!

Christian Alves

 

Boa tarde, amigo Christian!!


Sempre que nova posição for aberta, você precisará recalcular os stops (editar posições abertas anteriormente), considerando os preços de entrada e volumes, para encontrar o preço médio atual. Veja se o exemplo abaixo lhe ajuda:

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Aumento de Posição / preço medio

Ricardo Rodrigues Lucca, 2023.02.26 14:54

Eh que a dúvida é meio enganosa do jeito que voce colocou, diz que "o mt5 é limitado" por não oferecer coisas que na verdade ele oferece se voce usar a conta em modo netting. Se voce decidiu abrir mão disso porque acredita que operar diferentes robos vão ti ajudar, ótimo. É sua responsabilidade fazer esses calculos basicos já que desistiu deles automaticos. Nesse ponto que não entendi a dúvida.

Outro coisa eh que nao tem aumento numa posicao no modo hedge, cada nova entrada eh uma posicao independente. Ate por isso que nao pode fechar uma compra com uma venda tem que ser usada a funcao de close ou se fez isso usar pelo menos closeby logo depois. Os SL/TPs vão ficar independentes também o que é super bom já que tem como fazer eles andarem independentemente, claro que se alguem quiser fazer o stop ser pela media de um lado tem o trabalho de colocar todos no mesmo ponto. Mas não vejo utilidade disso já que nesse sentido seria melhor usar a conta netting.

Sobre a questão é o que respondi antes. Filtra as posições abertas pelo seu robo e faz a media do volume com o preço de entrada, com isso tu vai ter o valor de compra medio e de venda medio. O melhor de tudo seria se tiver compra e venda usar o closeby pra fazer o net delas e ti simplicar ficando com so um lado. Sobre o calculo funciona assim se quiser fazer no papel tambem ajuda.

Tenho 3 posicoes num mesmo ativo:

- comprado em 2 no robo A com preço 100;
- vendido em 1 no robo B com preço 110;
- comprado em 1 no robo A com preço 115;

O robo B não tem duvida é o 110 o preço medio de venda. No robo A temos que fazer assim: (2*100+1*115)/(2+1) => (200+115)/3 => 105. Entao, o preco medio de compra do robo A foi 105. A mais no "meu" preço medio era pra dar 107,5. Bom no seu preço medio não esta levando o volume então quem estaria mais certo nesse caso?

Agora digamos que o robo B não encerrou a venda e comprou 3 ao preço de 109. O que fazer? Isso é decisão gerencial do estrategista do robo.

    - Seu robo pode ficar gerenciando os dois lados já que ele pode calcular os dois medios.
    - Seu robo pode usar o closeby em cada uma e encerrar a venda ficando comprado em 2 no 109. (lembrando que saida nao muda o preço medio, so as entradas)
    - Alguma outra opção que não consegui pensar.



Outros tópicos relacionados:

◾ É possível simular, pelo código de um EA, o preço médio em conta hedge, como ele acontece naturalmente nas contas netting? - Geral - Fórum de negociação algorítmica MQL5

◾ Preço Médio após uma realização parcial - Geral - Fórum de negociação algorítmica MQL5


. . .

 

Obrigado mais uma vez meu amigo Vinicius, me levou a uma grande reflexão com essa resposta, e realmente foi muito mais fácil entrar em contato com a corretora e solicitar uma outra conta Netting para testar, rs. Porém, para o ao vivo, precisarei transformar em Hedge, e através dessa fórmula que foi colocada na resposta referente ao tópico citado por você, foi possível também que eu concluísse o objetivo do jeito que queria, realizando as entradas com preço medio e alterando os valores dos TP/SL de cada uma das entradas.

Vinicius de Oliveira #:

Boa tarde, amigo Christian!!


Sempre que nova posição for aberta, você precisará recalcular os stops (editar posições abertas anteriormente), considerando os preços de entrada e volumes, para encontrar o preço médio atual. Veja se o exemplo abaixo lhe ajuda:


Grande abraço e obrigado mais uma vez!