Eu devo desenvolver esse código dentro dos seguintes fragmentos:
Função completa:
Em seu lugar eu utilizaria a função OnTradeTransaction() para capturar o lucro/prejuízo e, feito isso, com uma regra simples, excluiria o EA do gráfico utilizando a função ExpertRemove(). (A exclusão eh por medida de segurança, você pode utilizar outra abordagem).
- www.mql5.com
Obrigado pela resposta, amigo. Eu já tentei colocar a função ExpertRemove() na área informada, conforme código abaixo.
if(equity >= ((saldoCapital-profit-loss)+meta_diaria_lucro)) { zerar(); ExpertRemove(); return(true); } if(equity <= ((saldoCapital-profit-loss) meta_diaria_prejuizo)) { zerar(); ExpertRemove(); return(true); }
Só que, neste caso, o robô para de operar e não continua a operação no dia seguinte. O que estou tentando rodar é um backtest de seis meses, mas ele nem passa do primeiro dia, porque, quando a meta é batida, ele para de operar e o backtest já é encerrado no mesmo dia. Essa função OnTradeTransaction é capaz de resolver esse problema?
Obrigado pela resposta, amigo. Eu já tentei colocar a função ExpertRemove() na área informada, conforme código abaixo.
Só que, neste caso, o robô para de operar e não continua a operação no dia seguinte. O que estou tentando rodar é um backtest de seis meses, mas ele nem passa do primeiro dia, porque, quando a meta é batida, ele para de operar e o backtest já é encerrado no mesmo dia. Essa função OnTradeTransaction é capaz de resolver esse problema?
Bom dia Evandro,
pelo visto você não entendeu para que serve o comando ExpertRemove(), leia a guia de referencia do MQL5. No Editor de Textos do MQL5, com o cursor sobre a instrução ExpertRemove(), tecle <F1>.
Obrigado pela resposta, amigo. Eu já tentei colocar a função ExpertRemove() na área informada, conforme código abaixo.
Só que, neste caso, o robô para de operar e não continua a operação no dia seguinte. O que estou tentando rodar é um backtest de seis meses, mas ele nem passa do primeiro dia, porque, quando a meta é batida, ele para de operar e o backtest já é encerrado no mesmo dia. Essa função OnTradeTransaction é capaz de resolver esse problema?
ExpertRemove() é uma abordagem sugerida. Você pode utilizar outra. O fato é que você além de não compreender bem o funcionamento dela, a inseriu em local errado no seu código. Além disso, a mesma tem grande valor para conta prod ou mesmo demo. Em backtest sugiro a exclusão da mesma.
A ExpertRemove() não é o problema a ser corrigido, e sim o código. Cuidado com tais avaliações simplistas.
Outra observação é que a OnTradeTransaction() não tem relação nenhuma com a ExpertRemove(). Leia as documentações.
Eu devo desenvolver esse código dentro dos seguintes fragmentos:
Função completa:
Veja esta abordagem por horario.
- 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
Eu devo desenvolver esse código dentro dos seguintes fragmentos:
Função completa: