Thiago Lopes: Estou criando uma EA com GRID que abre posições com variações do preço até o nível N. Está funcionando em backtest e demo perfeitamente, mas em conta real quando tem alta volatilidade acontece, eventualmente, de abrir mais 2 posições no mesmo preço/nível. Alguém tem uma sugestão de como deixar a função para evitar isso?
Sei que esta não é a melhor sugestão, mas é uma das mais simples (caso realmente precise manter a chamada da função a cada tick), e acredito que pode resolver o problema:
void VerificarGrid() { static bool processando = false; static datetime ultimoProcessamento = 0; // Timeout de segurança (5 segundos) if(processando && TimeCurrent() - ultimoProcessamento > 5) { Print("Timeout detectado, liberando função"); processando = false; } if(processando) { Print("Função já está processando, aguardando..."); return; } processando = true; ultimoProcessamento = TimeCurrent(); // ... seu código ... processando = false; // Liberar ao final }
Valeu, vou testar!
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
Estou criando uma EA com GRID que abre posições com variações do preço até o nível N. Está funcionando em backtest e demo perfeitamente, mas em conta real quando tem alta volatilidade acontece, eventualmente, de abrir mais 2 posições no mesmo preço/nível.
Alguém tem uma sugestão de como deixar a função para evitar isso?