![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Mas permite parar o Expert Advisor ao pressionar o botão "Expert Advisors" na barra de ferramentas.
Não há muitos parâmetros para deixar a EA, não vai ser difícil.
Um exemplo de utilização da função ClosePosBySizeProfitInCurrency()
Especialmente para demonstrar a função ClosePosBySizeProfitInCurrency(), escrevi um Consultor Especialista
e-CloseByProfitPosInCurrency, que fecha somente aquelas posições em que o lucro na moeda do depósito excede um determinado valor especificado. O Expert Advisor pode ser instalado em apenas uma tabela ou em várias tabelas. Você pode especificar uma lista de posições a serem fechadas usando parâmetros externos do Expert Advisor:
Boa tarde a todos.
Você, Igor, tem uma função que fecha posições perdidas de forma similar ao ClosePosBySizeProfitInCurrency() quando uma perda especificada é atingida. (Ou, talvez, uma combinação, onde se pode especificar o fechamento sobre o lucro e sobre o prejuízo).
Pelo que entendi, podemos simplesmente definir nos parâmetros pr para OrderProfit() - com sinal de menos e conseguiremos o que estamos procurando.
É possível estabelecer o limite em pontos (não em moeda de depósito)? Se sim, então como ? (TakeProfit e StopLoss não são sugeridos)
Você, Igor, tem uma função que fecha posições perdidas de forma similar ao ClosePosBySizeProfitInCurrency() quando uma perda especificada é atingida. (Ou talvez um combinado, onde você pode especificar o fechamento com lucro e prejuízo).
Não, eu ainda não tenho essa função. No entanto, você pode refazer ClosePosBySizeProfitInCurrency():
Fi-lo para que a perda pudesse ser passada como um número positivo (perda) e negativo (lucro com um sinal de menos).
Pelo que entendi, podemos apenas definir nos parâmetros pr para OrderProfit() - com sinal de menos e conseguiremos o que estamos procurando.
É possível estabelecer o limite em pontos (e não na moeda do depósito)? Se sim, como ? (Take Profit e Stop Loss não são uma opção)
Veja o código do e-CloseByProfit.
A função ClosePositions().
Esta função fecha posições cujos parâmetros atendem aos valores especificados:
A função ClosePosFirstProfit().
Esta função fecha posições em uma determinada ordem, ou seja, posições lucrativas primeiro, seguidas por todas as outras posições. Uma seleção mais precisa das posições a serem fechadas é definida por parâmetros externos:
A função ClosePosWithMaxProfitInCurrency().
Esta função fecha uma posição com o máximo lucro positivo na moeda do depósito. Ou seja, de cinco posições, cada uma com um lucro de -34, 15, 73, -90, 41, a posição com um lucro de 73 unidades na moeda do depósito será fechada. Uma seleção mais precisa das posições a serem fechadas é especificada usando parâmetros externos:
Se o valor da CCI estiver acima de 100, então abra uma posição de compra até que o valor esteja abaixo de -100 e quando estiver abaixo de -100, então abra uma posição de venda até que esteja acima de 100.
Para você, Dima, eu posso sugerir esta função:
Esta função retorna 1 quando se compra e -1 quando se vende. As condições de compra/venda são as que você deseja que sejam. Tudo o que você precisa fazer agora é fazer o seguinte em cada tic tac:
1. Obtenha o valor da GetTradeSignal().
2. Se o valor recebido ==0, então não faça nada.
Se o valor recebido for >0, então feche todas as vendas e compras.
4. Se o valor obtido for <0, então feche todas as compras e vendas.