Você tem o tópico errado. Você está se concentrando na otimização, enquanto o problema é obviamente com a EA(transferência de parâmetros, etc.). Esqueça a otimização por um tempo, coloque comentários e impressoras no EA, execute com parâmetros diferentes no visual, controle os dados intermediários, encontre todos os erros e depois volte à otimização.
Os mesmos resultados indicam que os parâmetros otimizados não afetam a formação do sinal comercial, e este é o problema da EA, não do testador.
Se eu definir os parâmetros assim: (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Dígitos); - obtemos todos os zeros, como eu dei um exemplo acima.
Se eu definir iCustom(NULL, 0, "ART", 0, 1), Dígitos); - então aparecem os valores calculados,
mas são todos iguais, embora no testador, quando se corre com parâmetros diferentes, os resultados dos negócios sejam muito diferentes.
Angela, para que a otimização funcione, é preciso usar os valores alterados pelo otimizador no algoritmo de alguma forma, em particular, é preciso passá-los para o indicador. É necessário passar parâmetros para o indicador, se você quiser otimizá-lo. Quando você chama o indicador sem parâmetros (ou seja, o segundo caso iCustom(NULL, 0, "ART", 0, 1)), você realmente omite os parâmetros e ele funciona com os parâmetros padrão, que estão registrados dentro do ART (é claro que eles não estão otimizados). A chamada completa com parâmetros - a primeira opção - é o que você precisa para a otimização. Muito provavelmente, o problema é que você não passa os parâmetros corretamente. Por exemplo, se seu número no indicador for menor, e você passar um valor melhor, ou vice-versa, se você não lhes der todos os parâmetros. Se o indicador for um segredo, pelo menos forneça a lista de seus parâmetros.
Parabéns. Também me lembro de lutar com parâmetros de passagem, até me acostumar a ser escrupuloso. Agora eu copio um pedaço de código indicador com todos os externs no Expert Advisor e escrevo iCustom, olhando a amostra. É um pouco obtuso, mas desde então não há erros.
E mais uma coisa. Procurei o estilo ilustrativo de escrita iCustom de Komposter. Tudo está bem na palma da minha mão.
/*
Входные параметры индикатора
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
*/double signal=iCustom(Symbol(),Period(),"MACD",
FastEMA,//параметр 1
SlowEMA,//параметр 2
SignalSMA,//параметр 30,//номер буфера индикатора
SignalBar);//бар, с которого получаем данные (внешняя переменная)
Estou depurando a segunda versão do meu TS, em comparação com a primeira o número de negócios aumentou e o número de parâmetros otimizáveis diminuiu significativamente, embora o drawdown tenha dobrado.
Entretanto tenho algumas dúvidas, o sistema não é muito estável de mês para mês. Ainda não o otimizei, mas o resultado com GA estará disponível em 48 horas. 800+ execuções não são encorajadoras e os resultados de otimização em junho são piores que os dos testes com os parâmetros iniciais para o mesmo período. Trago três estatísticas, para junho, julho e agosto, até agora só depurei a Buy. Posso retirar tal sistema devido à otimização com resultados estáveis ou devo começar a desenvolver um novo de imediato?
Se apenas o código mql estiver envolvido na EA, então algo deve ser codificado errado, porque com o modelo de preço de abertura 800 corridas não deve ser tão lento. Ou talvez eu tenha entendido mal alguma coisa. Normalmente os especialistas com ligação externa, tais como bibliotecas de redes neurais, etc., são tão lentos. Naturalmente, também podemos assumir que o mql tem muitos loops aninhados (ou chamadas de alguns indicadores "vorazes") - então ele pode ser completamente desacelerado. Portanto, só posso repetir a idéia da suposta necessidade de refatoração ;-) - Verifique novamente e re-transforme alguns fragmentos de código ou o código inteiro.
marketeer писал(а)>> Se apenas o código mql estiver envolvido no Expert Advisor, algo deve ser codificado incorretamente porque 800 corridas não devem abrandar a preços de abertura. Ou estou entendendo mal alguma coisa. Normalmente os especialistas com ligação externa, tais como bibliotecas de redes neurais, etc., são tão lentos. Naturalmente, também podemos assumir que o mql tem muitos loops aninhados (ou chamadas de alguns indicadores "vorazes") - então ele pode ser completamente desacelerado. Portanto, só posso repetir a idéia da suposta necessidade de refatoração ;-) - Verifique novamente e re-transforme alguns fragmentos de código ou o código inteiro.
800 das mais de 8000 corridas haviam passado pelo tempo de escrita do correio, com 5 horas de otimização, e ainda faltavam 2 dias para o fim. Mas não esperei até o final, reduzi o intervalo de enumeração de alguns parâmetros, reiniciei e em 8 horas toda a otimização foi realizada.
O número de negócios rentáveis excede o número de negócios perdedores, a média de negócios rentáveis mais do que a de negócios perdedores é um sinal muito bom. Na minha opinião, você não deve desistir deste sistema, deve estudar seu comportamento em um período mais longo. Você também pode colocá-lo em outra cruz.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Então apenas esta linha iCustom é alterada? Então precisamos olhar este indicador em detalhes.
Você tem o tópico errado. Você está se concentrando na otimização, enquanto o problema é obviamente com a EA(transferência de parâmetros, etc.). Esqueça a otimização por um tempo, coloque comentários e impressoras no EA, execute com parâmetros diferentes no visual, controle os dados intermediários, encontre todos os erros e depois volte à otimização.
Os mesmos resultados indicam que os parâmetros otimizados não afetam a formação do sinal comercial, e este é o problema da EA, não do testador.
Se eu definir os parâmetros assim: (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Dígitos); - obtemos todos os zeros, como eu dei um exemplo acima.
Se eu definir iCustom(NULL, 0, "ART", 0, 1), Dígitos); - então aparecem os valores calculados,
mas são todos iguais, embora no testador, quando se corre com parâmetros diferentes, os resultados dos negócios sejam muito diferentes.
Angela, para que a otimização funcione, é preciso usar os valores alterados pelo otimizador no algoritmo de alguma forma, em particular, é preciso passá-los para o indicador. É necessário passar parâmetros para o indicador, se você quiser otimizá-lo. Quando você chama o indicador sem parâmetros (ou seja, o segundo caso iCustom(NULL, 0, "ART", 0, 1)), você realmente omite os parâmetros e ele funciona com os parâmetros padrão, que estão registrados dentro do ART (é claro que eles não estão otimizados). A chamada completa com parâmetros - a primeira opção - é o que você precisa para a otimização. Muito provavelmente, o problema é que você não passa os parâmetros corretamente. Por exemplo, se seu número no indicador for menor, e você passar um valor melhor, ou vice-versa, se você não lhes der todos os parâmetros. Se o indicador for um segredo, pelo menos forneça a lista de seus parâmetros.
Graças a todos, o motivo foi trivial. A ordem em que os parâmetros enviados do indicador para a EA não corresponderam:
no Expert Advisor foi
extern int MA_Period=151; // 101 10 201
extern double KFK=0,9; // 0,7 0,005 1.
no indicador, ao contrário
duplo exterior KFK=0,9; // 0,7 0,005 1.
externo int MA_Period=151; // 101 10 201
funcionava no modo de visualização, mas não no modo de otimização.
Parabéns. Também me lembro de lutar com parâmetros de passagem, até me acostumar a ser escrupuloso. Agora eu copio um pedaço de código indicador com todos os externs no Expert Advisor e escrevo iCustom, olhando a amostra. É um pouco obtuso, mas desde então não há erros.
E mais uma coisa. Procurei o estilo ilustrativo de escrita iCustom de Komposter. Tudo está bem na palma da minha mão.
Estou depurando a segunda versão do meu TS, em comparação com a primeira o número de negócios aumentou e o número de parâmetros otimizáveis diminuiu significativamente, embora o drawdown tenha dobrado.
Entretanto tenho algumas dúvidas, o sistema não é muito estável de mês para mês. Ainda não o otimizei, mas o resultado com GA estará disponível em 48 horas. 800+ execuções não são encorajadoras e os resultados de otimização em junho são piores que os dos testes com os parâmetros iniciais para o mesmo período. Trago três estatísticas, para junho, julho e agosto, até agora só depurei a Buy. Posso retirar tal sistema devido à otimização com resultados estáveis ou devo começar a desenvolver um novo de imediato?
Se apenas o código mql estiver envolvido no Expert Advisor, algo deve ser codificado incorretamente porque 800 corridas não devem abrandar a preços de abertura. Ou estou entendendo mal alguma coisa. Normalmente os especialistas com ligação externa, tais como bibliotecas de redes neurais, etc., são tão lentos. Naturalmente, também podemos assumir que o mql tem muitos loops aninhados (ou chamadas de alguns indicadores "vorazes") - então ele pode ser completamente desacelerado. Portanto, só posso repetir a idéia da suposta necessidade de refatoração ;-) - Verifique novamente e re-transforme alguns fragmentos de código ou o código inteiro.
800 das mais de 8000 corridas haviam passado pelo tempo de escrita do correio, com 5 horas de otimização, e ainda faltavam 2 dias para o fim. Mas não esperei até o final, reduzi o intervalo de enumeração de alguns parâmetros, reiniciei e em 8 horas toda a otimização foi realizada.
O melhor resultado:
O número de negócios rentáveis excede o número de negócios perdedores, a média de negócios rentáveis mais do que a de negócios perdedores é um sinal muito bom. Na minha opinião, você não deve desistir deste sistema, deve estudar seu comportamento em um período mais longo. Você também pode colocá-lo em outra cruz.