Erros, bugs, perguntas - página 1962
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
Como é que isto ajuda?
A optimização passou, anotámos todos os parâmetros a serem pesquisados com intervalos de valores.
E depois executamos um único teste, lemos a lista de parâmetros, e exibimo-la: parâmetro = valor. Neste caso, não sabemos o valor, porque não podemos referir-nos à variável de entrada pelo nome.
Faz o parâmetro de entrada bool Optim. No OnInit, devolve-se INIT_FAILED se Optim == verdadeiro. Ao mesmo tempo, no OnTesterPass através de FrameInputs e ParameterGetRange (ou no destruidor do objecto de classe global) escreve-se o verdadeiro SET de Optimização.
Depois, coloca-se Optim = falso. E pegue em mais um parâmetro sinput int Range, defina-o através do ParameterSetRange para mudar de zero para um. Ler o ficheiro SET no OnTesterInit e definir os valores de todos os parâmetros do ficheiro no ParameterSetRange. Quando o intervalo == 0 devolve-se INIT_FAILED no OnInit.
E é tudo! Em vez de uma Optimização única, tem uma Optimização imaginária, que também é mais rápida que uma Optimização.... Mais parâmetros de entrada de leitura/escrita.
pergunta fora de tópico mas perguntar-lhe-ei se é possível complementar o manual MQL5 com exemplos adicionais de implementação de algoritmos mais e mais claros
Fazer o parâmetro de entrada bool Optim. No OnInit devolve-se INIT_FAILED se Optim == verdadeiro. Ao mesmo tempo, no OnTesterPass através de FrameInputs e ParameterGetRange (ou no destruidor do objecto de classe global) escreve de facto SET-file Optimization.
Depois, coloca-se Optim = falso. E pegue em mais um parâmetro sinput int Range, defina-o através do ParameterSetRange para mudar de zero para um. Ler o ficheiro SET no OnTesterInit e definir os valores de todos os parâmetros do ficheiro no ParameterSetRange. Quando o intervalo == 0 devolve-se INIT_FAILED no OnInit.
E é tudo! Em vez de uma Optimização única, tem uma Optimização imaginária, que também é mais rápida que uma Optimização.... Mais parâmetros de entrada de leitura/escrita.
Obrigado pelo algoritmo detalhado.
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 3113 msec 1 1
Tempo de compilação em 1648
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 219 msec 1 1
Alguma coisa foi afinada!
Erro de compilação
E se substituir a linha (*) por
então está bem. Qual é a diferença?Parece serhttps://www.mql5.com/ru/forum/1111/page1977#comment_5595772, mas tem um código de erro diferente
Erro durante a compilação
Caso contrário:
Está bem. Que diferença é que isso faz?Erro durante a compilação
mas desta forma:
normalmente. Qual é a diferença?A diferença é enorme. Quando g(f) é chamado, o compilador não tem ideia do tipo f, porque apenas o modelo é prescrito. Se sobrecarregar o modelo, não há problema
Tempo de compilação em 1643.
Tempo de compilação em 1648
Isso é um ajuste fixe!
O meu é o mesmo que era, a compilação não é mais rápida!
Ainda o tenho, a compilação não é acelerada
Talvez não utilizando o que costumava abrandar no TesterBenchmark.mqh
A diferença é enorme. Quando g(f) é chamado, o compilador não tem ideia do tipo f, porque apenas o modelo é prescrito. Se sobrecarregar o modelo, não há problema