Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1414

 
Posso entender isso, obrigado. Mas ainda não entendo qual stop loss se aplica se o primeiro EA comprar 0,01 lote e o segundo comprar 0,05 lote. Então, uma posição de 0,06 lote estará aberta, certo? E qual stop loss se aplica a essa posição? O primeiro, o segundo ou um agregado?
 
Benjamin Fotteler #:
Posso entender isso, obrigado. Mas ainda não entendo qual stop loss se aplica se o primeiro EA comprar 0,01 lote e o segundo comprar 0,05 lote. Então, uma posição de 0,06 lote estará aberta, certo? E qual stop loss se aplica a essa posição? O primeiro, o segundo ou um agregado?
Acho que o último entrou.
 

Ok, se for esse o caso, então eu finalmente entendi o princípio subjacente de uma conta de compensação: Existe apenas uma posição, que é um agregado de todas as negociações anteriores; e quem quer que tenha sido o último a definir SL e TP - seja por meio do método OrderSend ou PositionModify ou de outra forma - definiu SL e TP para toda a posição, independentemente de isso ser adequado aos outros EAs ou não.

Isso significa que, ao usar vários EAs em um mesmo símbolo com uma conta de compensação, o usuário deve estar ciente de que deve definir o SL e o TP dos diferentes EAs de forma idêntica para que eles não funcionem de forma diferente da originalmente planejada - a menos que tenham uma função de proteção e só abram uma posição "interna" se nenhuma posição estiver aberta no respectivo símbolo. E o PositionSelect() que você mencionou acima é muito útil para isso.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Benjamin Fotteler método OrderSend ou PositionModify ou de outra forma - definiu SL e TP para toda a posição, independentemente de isso ser adequado aos outros EAs ou não.

Isso significa que, ao usar vários EAs em um mesmo símbolo com uma conta de compensação, o usuário deve estar ciente de que deve definir o SL e o TP dos diferentes EAs de forma idêntica para que eles não funcionem de forma diferente da originalmente planejada - a menos que tenham uma função de proteção e só abram uma posição "interna" se nenhuma posição estiver aberta no respectivo símbolo. E o PositionSelect() que você mencionou acima é muito útil para isso.

No entanto, por segurança, eu tentaria fazer isso novamente para ver se o SL e o TP são adotados para outra ordem ou se é melhor alterar o SL e o TP separadamente depois - não tenho experiência com isso!

 
Olá boa tarde, alguém pode me ajudar, não consigo baixar nenhum indicador do mql5 para o mt5, eu dou download do indicador no mql5 recebo uma janela perguntando se eu tenho mt5 eu dou sim, depois abre automaticamente o mt5 na seção de marcação ou mercado e não baixa nada.
Tentei digitar o usuário e a senha do mql5 no mt5 na seção de ferramentas, comunidade, para baixá-los diretamente pelo mt5 diretamente e nada não baixa nada, apenas faz o mesmo som quando uma operação não entra ou há um erro lotaje....

Meu pc é windows 8.1 32 bit, não sei se o sistema operacional tem algo a ver.
Agradeço a ajuda, muito obrigado.
 

Sim, você certamente deve experimentar tudo. No que diz respeito à conta de compensação, ainda não fiz isso, mas fiz com o valor tradeResult.deal, que salvei como positionTicket.

Percebi que, se eu executar o EA e também enviar ordens de limite e similares entre as ordens de mercado, que só uso nele (além de SL e TP), o tíquete da posição aberta não será idêntico a tradeResult.deal, mas a tradeResult.order. E, conforme descrito na página de propriedades da posição, o tíquete da posição pode simplesmente mudar, enquanto o POSITION_IDENTIFIER não muda, mas permanece idêntico ao tíquete da ordem que abriu a posição, ou seja, ao tradeResult.order da negociação de entrada.

 

Por favor, quem sabe onde você pode negociar USDKZT?

 
Acabei de tentar isso com a conta de compensação. Se você colocar uma ordem de venda a mercado de 1 lote com um stop loss em 1,1 EURUSD e, em seguida, colocar uma ordem de venda a mercado de 1 lote com um stop loss em 1,05 EURUSD, toda a posição de compensação de 2 lotes terá o stop loss em 1,05 EURUSD. Isso significa que se você executar dois EAs concorrentes em um símbolo, que gerenciam ou manipulam o StopLoss e o TakeProfit de forma diferente, isso pode levar ao caos. É melhor verificar em meu EA com PositionSelect() se uma posição já está aberta e deixar que meu EA espere até que não haja mais posições para que elas se confundam.
 
Benjamin Fotteler #:
Acabei de experimentar isso com a conta de compensação. Se você colocar uma ordem de venda a mercado de 1 lote com um stop loss em 1,1 EURUSD e, em seguida, colocar uma ordem de venda a mercado de 1 lote com um stop loss em 1,05 EURUSD, toda a posição de compensação de 2 lotes terá o stop loss em 1,05 EURUSD. Isso significa que se você executar dois EAs concorrentes em um símbolo, que gerenciam ou manipulam o StopLoss e o TakeProfit de forma diferente, isso pode levar ao caos. É melhor verificar em meu EA com PositionSelect() se uma posição já está aberta e deixar que meu EA espere até que não haja mais posições para que elas se confundam.
Obrigado pelo teste! Como eu suspeitava, em uma conta de compensação, as posições abertas não têm "memória". Ou você pode usar uma conta de hedge, em que cada posição tem o número mágico de "seu" EA, que pode gerenciá-la.
 

Acabei de ler as verificações que um robô de negociação deve fazer. As informações foram muito úteis. No entanto, surgiu a questão das chamadas de margem. Não sei se entendi isso corretamente.

Atualmente, meu EA faz duas coisas para evitar chamadas de margem: Antes de uma negociação que abre ou poderia abrir uma posição, ele usa OderCalcMargin(...) e ACCOUNT_MARGIN_FREE para ver se a margem pode ser aumentada. Em seguida, se uma posição tiver que ser aberta, ele verifica se a quantia de dinheiro no stop loss excede a margem a ser paga. E não tenho certeza se entendi mal o segundo ponto.

Suponhamos que a margem seja de US$ 500, que o mercado esteja indo contra a minha direção e que meu stop loss só tenha efeito ou seja acionado com uma perda de US$ 1.000. Se o valor de P&L aberto de minha posição for de US$ 750, ou seja, a margem de US$ 500 for usada, receberei uma chamada de margem? Então, faria sentido verificar o SL? - Isso é algo que eu não quero experimentar.