Fechar várias posições ao mesmo tempo.

 

Boa Noite!

Gostaria de saber, se existe a possibilidade de fechar várias posições aos mesmo tempo?

Exemplo:

Estou com 10 posições em negociação, algumas em lucro outras em prejuízo.

Mas somando todas eu vejo que estou ganhando 25 dólares, e para mim está ótimo esse lucro.

Se eu for fechando uma por uma, posso correr o risco, de que quando eu fechar a ultima, meu lucro caia para 15 dólares.

E fechando todas de uma só vez, garantiria os 20 dólares ou muito próximo a ele.


Desde já agradeço,


Elifas

 
Elifas Lima Silva:

Boa Noite!

Gostaria de saber, se existe a possibilidade de fechar várias posições aos mesmo tempo?

Exemplo:

Estou com 10 posições em negociação, algumas em lucro outras em prejuízo.

Mas somando todas eu vejo que estou ganhando 25 dólares, e para mim está ótimo esse lucro.

Se eu for fechando uma por uma, posso correr o risco, de que quando eu fechar a ultima, meu lucro caia para 15 dólares.

E fechando todas de uma só vez, garantiria os 20 dólares ou muito próximo a ele.

Desde já agradeço,

Elifas

Olá Elifas Lima Silva,

Isso é perfeitamente possível ! 

Você vai precisar fazer um loop de todas as suas posições abertas e pedir para fechar cada uma delas individualmente.

Abraços,
Malacarne

 
Elifas Lima Silva:

Boa Noite!

Gostaria de saber, se existe a possibilidade de fechar várias posições aos mesmo tempo?

Exemplo:

Estou com 10 posições em negociação, algumas em lucro outras em prejuízo.

Mas somando todas eu vejo que estou ganhando 25 dólares, e para mim está ótimo esse lucro.

Se eu for fechando uma por uma, posso correr o risco, de que quando eu fechar a ultima, meu lucro caia para 15 dólares.

E fechando todas de uma só vez, garantiria os 20 dólares ou muito próximo a ele.


Desde já agradeço,


Elifas

Olá Elifas , uma possibilidade para fechar todas posições em paralelo, que acredito que seja o que você está pretendendo fazer, buscando a máxima velocidade para isso, seria utilizar a função OrderSendAsync ao invés da tradicional OrderSend (tenha cuidado no uso dessa função, pois você passará a se comunica de forma assíncrona). Na verdade essa função foi criada justamente para ganhar performance em alta frequência.

Se desejar manter seu padrão atual utilizando a função OrderSend, mas com uma solução menos elegante e mais trabalhosa, outra possibilidade seria ter uma instância de robô instalada em diferentes gráficos, uma para cada ativo, fechando a posição em paralelo com os demais e de forma independente, uma vez que cada uma iria operar em sua própria thread para a execução de ordens.

Documentação sobre MQL5: Funções de Negociação (Trade) / OrderSendAsync
Documentação sobre MQL5: Funções de Negociação (Trade) / OrderSendAsync
  • www.mql5.com
Funções de Negociação (Trade) / OrderSendAsync - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 

Olá,

É possível fazer isso de forma automática?

Como exemplo do amigo aí colocou:

Tenho varias ordens em aberto e o saldo delas seja +10 dólares e o robô fechar sozinho?!


Obrigado

 
Rodrigo Capita:

Olá,

É possível fazer isso de forma automática?

Como exemplo do amigo aí colocou:

Tenho varias ordens em aberto e o saldo delas seja +10 dólares e o robô fechar sozinho?!


Obrigado

Via programação MQL5 dá pra fazer sim.

Primeiro faça um loop percorrendo cada uma de suas posições abertas e some os lucros/prejuizos de cada uma. Tem uma propriedade chamada POSITION_PROFIT que vai lhe dizer o lucro ou prejuízo de cada posição, veja detalhes aqui.

Em seguida, se o saldo tiver atingido o seu alvo, faça um segundo loop emitindo para cada posição uma ordem de mesmo volume no sentido oposto, para zerar cada posição (supondo que sua conta seja do tipo netting, se for hedging tem que fechar cada posição explicitamente).

Não tente fazer isso sozinho se não tiver uma sólida experiência em programação e bom conhecimento do funcionamento do mercado, pois há algumas questões mais complexas envolvidas aí. Por exemplo: você tem que tratar a possibilidade de sua posição ser alterada no meio do processamento caso algum stop-loss, take-profit, ou ordem pendente seja executada durante o processamento desses loops, tratar a possibilidade de alguma das ordens que você ser rejeitada, de haver problemas de conexão, etc..

 
Elifas Lima Silva:

Boa Noite!

Gostaria de saber, se existe a possibilidade de fechar várias posições aos mesmo tempo?

Exemplo:

Estou com 10 posições em negociação, algumas em lucro outras em prejuízo.

Mas somando todas eu vejo que estou ganhando 25 dólares, e para mim está ótimo esse lucro.

Se eu for fechando uma por uma, posso correr o risco, de que quando eu fechar a ultima, meu lucro caia para 15 dólares.

E fechando todas de uma só vez, garantiria os 20 dólares ou muito próximo a ele.


Desde já agradeço,


Elifas

Tenha apenas o cuidado de saber que o fechamento a mercado se perde o spread Ask-Bid...

Arquivos anexados:
 
Oi, estou usando o MT5 pela segunda vez. Na primeira vez eu comprava e vendia varios lotes em um mesmo par de moedas e instantaneamente ele transformava todos os lotes abertos em uma unica ordem. Assim, eu nao precisava fechar uma por uma ordem e sim uma unica ordem contendo todos os lotes aberto. Como eu faço pra usar o MT5 desssa forma?
 
Arthur Albano:

Tenha apenas o cuidado de saber que o fechamento a mercado se perde o spread Ask-Bid...

O MT5 calculava a partir da segunda ordem aberta no mesmo par de moedas e reestabelecia uma unica ordem com base na posicao da primeira e da segunda ordem, fazendo uma media poderada entre as ordens abertas. omo eu uso esse metodo novamente no MT5?
 

Mas é possivel abrir varias posiçoes num mesmo par e fechar todos de uma só vez?

 
Eu operava manualmente e dava certo, mas agora nao estou conseguindo fazer do mesmo jeito com outro setup.
 
alex_azevedo1:

Mas é possivel abrir varias posiçoes num mesmo par e fechar todos de uma só vez?

Apenas não entendi se você pretende continuar a operar manualmente ou via EA.

Se for via EA, a resposta eh SIM. Basta codificar adequadamente.

[ ]'s

Razão: