Bom dia,
uma observação importante, o DEAL só é equivalente a fechar posição se você está operando por volume mínimo... caso contrário pode ocorrer derrapagem ou seja vai receber vários deals até fechar a posição.
Dito isto a outra recomendação é evitar operações com strings por que são demoradas, um teste if(HistoryGetDouble(ticket,DEAL_PROFIT)<0) é centenas de vezes mais rápido.
Por fim, veja se isso corrige a rotina.
StringToUpper(comment); if(StringFind(comment, "SL ",0) > -1)
Bom dia,
uma observação importante, o DEAL só é equivalente a fechar posição se você está operando por volume mínimo... caso contrário pode ocorrer derrapagem ou seja vai receber vários deals até fechar a posição.
Dito isto a outra recomendação é evitar operações com strings por que são demoradas, um teste if(HistoryGetDouble(ticket,DEAL_PROFIT)<0) é centenas de vezes mais rápido.
Por fim, veja se isso corrige a rotina.
Vc conhece alguma outra forma de verificar se a ultima deal foi loss sem ser por string?
Vc conhece alguma outra forma de verificar se a ultima deal foi loss sem ser por string?
Sim
Sim
Pode me passar uma ideia melhor?
Pode mandar PM se quiser.
if(HistoryDealGetInteger(ticket,DEAL_REASON) == DEAL_REASON_SL ) totalDealsSL++;
Obs: Se o EA tem algum tipo de trailing stop o SL não significa necessariamente prejuízo !!!
Obs: Se o EA tem algum tipo de trailing stop o SL não significa necessariamente prejuízo !!!
Sim
Então a melhor forma pata EA que tem TS ainda seria da forma anterior com:
if(HistoryDealGetDouble(ticket,DEAL_PROFIT)<0)
Certo?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Bom dia pessoal,
Poderiam me ajudar nesse meu método de limite de loss?
Ele funciona no backtest, mas na demo não.
Não recebo nenhum erro na plataforma, ele simplesmente não emite a mensagem e continua a abrir ordens.
Alguma ideia doque pode estar errado?
Muito obrigado desde já.