Otimização e testes fora da amostra.

 

Boa tarde a todos.

Depois de otimizar uma EA, muitas vezes temos que nerd fora da amostra mais de uma dúzia de conjuntos de parâmetros sugeridos pelo otimizador.

Tenho uma idéia de otimizar os Expert Advisors fora da amostra. Suponha que nós "cobramos" do consultor especializado a otimização por uma série de parâmetros. Por exemplo, a partir de 1 de janeiro. 2006 até 1 de janeiro de 2007.

Recebemos vários milhares de Expert Advisors. Depois disso, salvamos a página com osRESULTADOS DE OPTIMIZAÇÃO como um arquivo separado. Em seguida, estabelecemos o seguinte período histórico para otimização, ou seja, adicionamos um ou dois meses, ou tantos quantos forem necessários.

Em nosso caso, estabelecemos, por exemplo, a partir de 1 de janeiro. 2007 a 1 de junho de 2007. E mais uma vez permitimos a otimização. O otimizador não deve tomar parâmetros em PROPRIEDADES DE PERITOS, mas re-selecioná-los um a um a partir do arquivo que salvamos após a primeira otimização. Após esta segunda otimização, ficamos apenas com aqueles vAriens que produziram lucros fora da amostra!

O resultado, idealmente, é que obtemos os "parâmetros ideais" para trabalhar e testar on-line mais tarde!

Acho que isto será uma adição útil ao testador do mt4. Provavelmente, e muito provavelmente, já é implementado por alguém em algum lugar. Se alguém souber, por favor, compartilhe o link!

Eu, devido a meu modesto conhecimento, não consigo descobrir como implementar a idéia na prática.

 
leonid553, você está indo na direção certa, uma vez que a "otimização" existente sem testes em dados fora da amostra é ajuste puro de curva. Mas o algoritmo básico deveria ser mais complexo, como nos programas de redes neurais. Toda "otimização" deveria ser feita em todos os conjuntos de dados de uma só vez (este é o desejo dos desenvolvedores). Você pode, naturalmente, trabalhar com apenas dois conjuntos de dados, mas é melhor prever três - treinamento (A), validação (B) e testes (C). Bem, nas condições existentes, você terá que trabalhar mais ou menos como você sugere.
 
É possível especificar um arquivo com parâmetros para o especialista, que ele utilizará na otimização. Ou pode ser mais simples, otimizar em um intervalo de tempo, depois em outro, salvar tudo em excelência e comparar :-)
 
dimontus:
Ou poderia ser mais simples, otimizar em um intervalo de tempo, depois em outro, salvar tudo em excelência e comparar :-)
Não, Dimontus, não funciona dessa maneira. Duas curvas diferentes se encaixam em dados diferentes não servem de nada.
 
Então, se eles são os mesmos, ou seja, os mesmos parâmetros em diferentes intervalos de tempo dão resultados semelhantes, não é isso que o autor do fio quer?
 
De que adianta fazer uma curva caber na segunda se você pode simplesmente peneirar os conjuntos de otimização promissores da primeira até a segunda?
 
O que você quer dizer com isso?
 
Eu tentei a seguinte variante:
Testei o Expert Advisor em todo o período disponível, selecionei o segmento com o pior payoff esperado (dip no gráfico) e o otimizei, este pior intervalo
Eu peneio (tanto quanto possível) os extremos locais à mão
E então o trabalho de rotina é inserir os dados de otimização do pior intervalo no otimizador e executar o Expert Advisor com esses dados ao longo de todo o intervalo disponível.
do que eu recebo, eu seleciono a carne...:-)
 

À luz do exposto acima, vejo o seguinte modo :

Para construir um simples Expert Advisor adicional, - e carregar todos os conjuntos de parâmetros obtidos após a primeira otimização.

Cada conjunto terá seu próprio índice. E então simplesmente inserimos esta EA adicional no testador em vez da primeira e a otimizamos fora da amostra, e o parâmetro de otimização será o NÚMERO LOCAL dos conjuntos inseridos!

Pode ser um pouco complicado, mas é muito melhor do que manualmente fora de amostra...

A única coisa que precisamos é considerar a versatilidade deste suplemento.

 
Faz sentido, leonid553. Quando você tiver feito isso, deixe-o na Base de Código ou aqui, se não se importar. Tenho certeza de que muitas pessoas já o querem... Há muito tempo venho pensando nisso, mas não consigo deitar as mãos a isso. Somente com parâmetros de otimização fora da amostra preciso pensar sobre isso, porque tenho que levar em conta de alguma forma os resultados dos testes no primeiro conjunto de dados.
 
leonid553:

À luz do exposto acima, vejo o seguinte modo :

Para construir um simples Expert Advisor adicional, - e carregar todos os conjuntos de parâmetros obtidos após a primeira otimização.

Cada conjunto terá seu próprio índice. E então simplesmente inserimos esta EA adicional no testador em vez da primeira e a otimizamos além da amostra, e o parâmetro de otimização será o NÚMERO LOCAL dos conjuntos inseridos!

Pode ser um pouco complicado, mas é muito melhor do que a otimização manual fora da amostra ...

A única coisa que precisamos é considerar a versatilidade deste suplemento.

Não acho que será tão fácil, para cada parâmetro otimizado em conexão com outros parâmetros serão identificados vários extremos. Pode ser possível encontrar uma solução, se esses extremos forem alimentados com a entrada da rede neural.