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
É claro que a zeragem foi feita por compatibilidade, mas não é claro porque é que quando a enumeração não utilizada = WRONG_VALUE é inicializada correctamente , não funciona correctamente. Esta abordagem carece de portabilidade e aumenta significativamente a probabilidade de erros ocultos.
Lembra-se desta regra?
Regra: Se a uma constante nomeada - membro de uma enumeração não for explicitamente atribuído um valor específico, o seu valor será gerado automaticamente. Se for o primeiro membro da enumeração, será atribuído o valor 0. Para todos os membros subsequentes, os valores serão calculados com base no valor do membro anterior, adicionando um.
Muito provavelmente, a verificação da correcção dos campos de consulta pressupõe que o valor de um membro da enumeração não pode ser negativo. A possibilidade de atribuir o WRONG_VALUE a um membro da enumeração não é tida em conta.
No entanto, a possibilidade de atribuir WRONG_VALUE a um membro da enumeração não é tida em conta.
Penso que este é exactamente o erro aqui. Se uma enumeração concreta não for utilizada, é lógico que o seu valor será WRONG_VALUE em vez de, por exemplo, ORDER_TYPE_BUY que na realidade = 0.
e mais importante - nada o impede de alterar a lógica OrderCheck() e OrderSend() enquanto mantém a compatibilidade
e mais importante, nada o impede de alterar a lógica de OrderCheck() e OrderSend(), mantendo a compatibilidade
Descobri um estranho "insecto".
Estou a utilizar este código no meu EA:
Uma única corrida no testador passa sem problemas, mas assim que escolho parâmetros com pesquisa completa, o testador começa a trabalhar dez ou dez vezes mais devagar. Não compreendo porque é que a velocidade é adequada durante uma corrida e cai visivelmente durante a optimização. Além disso, cai geometricamente. Pode-se ver pela percentagem que tudo está bem no início, mas no final a velocidade continua a deslizar cada vez mais devagar. Procurei por problemas no meu código e procurei loops ou algo assim, mas não os encontrei. Depois disso, substituí o código acima mencionado pelo meu próprio algoritmo e oh meu deus! A optimização funciona agora a uma velocidade normal e uniforme. Isto leva-me à conclusão de que a questão está dentro da MQL5, algures no corpo da função OnTradeTransaction. Vou pedir aos criadores que prestem atenção a isso.
p.s. Não posso afixar o código do Expert Advisor. Tente usar o código acima em qualquer dos seus EAs e veja a velocidade de optimização em OHLC M5 para o período de 2000 até hoje.
Descobri um estranho "insecto".
Estou a utilizar este código no meu EA:
Uma única corrida no testador passa sem problemas, mas assim que escolho parâmetros com pesquisa completa, o testador começa a trabalhar dez ou dez vezes mais devagar. Não compreendo porque é que a velocidade é adequada durante uma corrida e cai visivelmente durante a optimização. Está a cair geometricamente. Pode-se ver pela percentagem que tudo está bem no início, mas no final a velocidade continua a deslizar cada vez mais devagar. Procurei por problemas no meu código e procurei loops ou algo assim, mas não os encontrei. Depois disso, substituí o código acima mencionado pelo meu próprio algoritmo e oh meu deus! A optimização funciona agora a uma velocidade normal e uniforme. Isto leva-me à conclusão de que a questão está dentro da MQL5, algures no corpo da função OnTradeTransaction. Vou pedir aos criadores que prestem atenção a isso.
p.s. Não posso afixar o código do Expert Advisor. Tente usar o código acima em qualquer dos seus EAs e veja a velocidade de optimização em OHLC M5 para o período de 2000 até hoje.
Para diferentes parâmetros, a EA pode funcionar por diferentes períodos de tempo
Depois de substituir o código acima pelo seu algoritmo
Ou seja, desistiram de utilizar a OnTradeTransaction() ? - então é lógico que a velocidade tenha aumentado - é chamada em cada ocasião
O que o impede de fazer um caso de teste mínimo e de se apresentar ao balcão de serviço?