Resposta

Walk-Forward Optimization vs Robustness

7 respostas

kainc301

Cliente, bbp_participante, comunidade, 54 respostas.

Perfil da visita

4 anos atrás #245968

Quero fazer um tópico sobre a WFO em geral e ter uma discussão sobre o quão útil ou não os outros quants aqui acham que ela é.

Sou de opinião que não é de modo algum necessário e não ajuda a determinar a robustez de nenhuma estratégia em particular. A forma como o WFO é estruturado, qualquer estratégia é repetidamente otimizada através de múltiplos períodos de dados de mercado e é então testada em uma pequena porção de dados de OOS. O conceito geral de que isto é mais provável de simular negociações ao vivo e testar como as estratégias se comportam ao se adaptarem a diferentes condições de mercado. No entanto, isto é realmente verdade?

Se os parâmetros de uma determinada estratégia são repetidamente otimizados, então é minha opinião que tudo o que o WFO está fazendo é testar a robustez desses parâmetros específicos conforme eles ocorrem durante esse período de tempo nos dados de mercado. Em outras palavras, ele depende de uma otimização constante para determinar a robustez de uma estratégia e acredito que a otimização constante de estratégias é uma premissa falsa, em primeiro lugar. Eu testei centenas de milhares de estratégias neste ponto e uma conclusão que tirei ao fazer isto é que mudando os parâmetros em grande medida, você está efetivamente trabalhando com uma estratégia completamente diferente cada vez que faz isso. Não estou falando em mudar os parâmetros em um grau pequeno, pois você pode testar isto com simulações de Monte Carlo. Se você estiver constantemente otimizando uma estratégia por um período de tempo muito menor, os parâmetros podem mudar tanto que ela pode muito bem ser otimizada para esse período de tempo, mas falhar a longo prazo. Além disso, como você está otimizando por um período de tempo pequeno, não há como dizer quando uma determinada otimização falhará porque cada otimização pode ser drasticamente diferente da última e você pode acabar com novos parâmetros que foram bons para o último ano, mas falham em mercados ao vivo porque você está essencialmente negociando com uma estratégia diferente da última otimização. E se você não estiver constantemente otimizando a estratégia final que passa o WFO, então não há nenhum ponto real para olhar o que o WFO está lhe dizendo em primeiro lugar, porque não é uma indicação do desempenho de uma estratégia da qual você não muda os parâmetros.

Digo tudo isso para dizer que não faz muito sentido para mim porque alguém otimizaria constantemente as estratégias para as condições atuais do mercado. Cada vez que você faz isso, você está trabalhando com uma estratégia diferente que pode ter funcionado apenas durante o pequeno período de tempo para o qual foi otimizada e você não sabe quão drasticamente a otimização pode afetar os parâmetros dados do novo mercado. Faz muito mais sentido para mim encontrar estratégias que sobrevivam aos dados OOS e otimizá-los uma vez a fim de adequar o desempenho a todo o conjunto de dados. Se sobreviver às simulações de OOS e Monte Carlo, otimizando-o uma vez encontrará os melhores parâmetros que retiveram o maior desempenho sobre todo o conjunto de dados e você não precisa se preocupar com o excesso de ajuste porque já sobreviveu ao OOS neste ponto. Você também não deve precisar voltar constantemente à sua estratégia e reoptimizá-la, o que pode mudar completamente a natureza da estratégia. Em vez disso, a otimização é feita uma vez e você pode ter um desempenho confiável que suporte os parâmetros finais.

Mas meu objetivo aqui não é ser preguiçoso. Claro, isto significa menos trabalho a ser feito para desenvolver estratégias. Cortar o WFO do meu fluxo de trabalho tornou o processo de ter uma estratégia final que eu considero robusta consideravelmente mais rápido e você não precisa voltar e reoptimizar 10-100 estratégias diferentes que você pode estar executando. Mas eu não gostaria de cortar o WFO do meu fluxo de trabalho por causa da praticidade e da preguiça. Se é realmente mais benéfico usá-lo para o processo de robustez, eu não me importaria com uma troca a tempo para uma estratégia melhor que seja mais confiável. É mais importante não deixar que pequenos excessos custem dinheiro nos mercados. No entanto, até agora, não encontrei nenhuma razão ou evidência legítima sobre o porquê de ser melhor otimizar constantemente uma determinada estratégia.

Por isso, quero fazer a pergunta a todos os outros que usam o OVNI. Você acha que é benéfico usá-lo? Se sim, como você se sente mais benéfico otimizar constantemente as estratégias do que não o fazer? Eu tenho lutado para encontrar qualquer razão para isto e gostaria de algum feedback de outros que definitivamente discordam de minha posição porque, como eu o entendo, WFO é mais um teste opcional por esta mesma razão.

0

bentra

Cliente, bbp_participante, comunidade, sq-ultimate, 22 respostas.

Perfil da visita

4 anos atrás #245977

mudando os parâmetros em grande medida, você está efetivamente trabalhando com uma estratégia completamente diferente cada vez que faz isso.

Este pensamento já me passou pela cabeça muitas vezes. Em que ponto traçamos a linha entre a otimização e a tentativa aleatória de estratégias completamente diferentes? Em minha própria EA eu tenho parâmetros otimizáveis que mudam completamente todos os aspectos da estratégia e considero que otimizá-los é mais parecido com tentar estratégias diferentes aleatoriamente. Esta é uma das razões pelas quais eu acho importante saber exatamente o que cada variável realmente faz antes de otimizá-la para que possamos julgar se ela deve ser otimizada e o quanto podemos mudá-la sem que ela se torne uma estratégia diferente.

A julgar pela minha limitada experiência mais todos os livros de negociação que incluem um capítulo de "walk-forward", eu diria que é altamente provável que a WF possa ter algum valor se o fizermos corretamente e tomarmos cuidado para não minar demais os dados e tomar cuidado para, como você diz, "não acabar com uma estratégia completamente diferente". Mas uma WF pode fazer mais mal do que bem se não for feita corretamente, especialmente com a matriz SQX WF pode às vezes fazer com que uma WF de certos parâmetros pareça boa quando na verdade nós otimizamos demais o próprio processo WF.

É muito raro para mim que uma estratégia faça tão bem ou melhor em seu OOS de um WF do que em seu OOS durante a fase de desenvolvimento da estratégia, mas quando isso acontece, tenho um pouco mais de confiança no WF. É claro que vou re-optimizar conforme necessário, como você disse, não faz sentido não o fazer, sim é uma dor e eu fiz ajustes especiais em meu código mt4 para aliviar a dor.

Não tenho certeza se me daria ao trabalho de usá-lo como um teste de robustez porque, como você disse, o teste MC pode fazer algo semelhante.

Concordo com todo o seu posto e está extremamente bem escrito e coloca algumas grandes questões que ambos compartilhamos, mas isto está absolutamente tocando alarme para mim:

Faz muito mais sentido para mim encontrar estratégias que sobrevivam aos dados OOS e otimizá-los uma vez a fim de adequar o desempenho a todo o conjunto de dados.

Você corre o risco de se ajustar demais durante sua otimização final! Eu não o otimizaria depois que você já tiver feito todos os outros testes. Isto não é diferente de uma caminhada para frente com um grande in-sample que você ainda não tenha testado out-of-sample. Eu pelo menos tentaria um WF ancorado antes de tentar isso.

Que todos os seus ajustes sejam soltos.


https://www.darwinex.com/darwin/SUG.4.2/

0

mabi

Cliente, bbp_participant, comunidade, 261 respostas.

Perfil da visita

4 anos atrás #245978

O conceito deve ser se uma estratégia pode ser aperfeiçoada com base em dados invisíveis e, fazendo isso, melhorar significativamente o desempenho, então é uma estratégia adaptável às condições de mercado que, muito provavelmente, pode ser adaptada a diferentes condições de mercado se for otimizada recentemente. Quando o Walk forward foi desenvolvido, eles precisaram se afastar para corrigir a estratégia, uma vez que tinham apenas uma estratégia na qual trabalharam por 2 anos e precisavam desta estratégia para trabalhar em tantos mercados quanto possível. Estou testando isto na verdade tenho cerca de 400 estratégias em demonstração que foram otimizadas em dados invisíveis e devem ser novamente otimizadas em dezembro e originalmente todas elas têm períodos vencedores >80 por cento em dados invisíveis, o que na prática deveria significar que em junho do próximo ano, hora da segunda otimização 90%, pelo menos deveria ter tido um período lucrativo. Se isso for verdade, provavelmente o utilizarei de outra forma, pois é o cenário mais provável.

Todos os pensamentos até agora eu vejo o melhor desempenho de estratégias que são simplesmente otimizadas em dados recentes, mas ainda assim tiveram ótimo desempenho em dados não vistos e isso é muito mais simples de se fazer. Como sempre, isto parece criar um certo % de perdedores totais imediatos, então eles precisam primeiro ser incubados. Mas os demais tiveram um bom desempenho, todos pensaram no meu teste fazendo isto, eles foram de um tipo que recentemente tiveram um bom desempenho em 6 meses, então coisas como tipo de estratégia e esse tipo de desempenho geral no mercado recente tem que ser considerado também e comparado com o Otimizado para dissuadir a eficácia de fazer e implementar estas operações para estratégias usadas com dinheiro real. Entretanto, descobri que é quase impossível fazer com que uma estratégia funcione num período de perda, otimizando-a, a única coisa que parece acontecer é uma ligeira melhoria de desempenho com o passar do tempo, que se torna melhor quando eles já estão obtendo lucros não otimizados.

Para o teste de robustez acho que a melhor opção é ter estratégias que funcionem em muitos instrumentos e prazos e que sejam fáceis de encontrar no SQx. Como uma estratégia pode ser ajustada em curva ou ruim se ela funciona com dados não vistos em X mercados diferentes. É claro que talvez não funcione nos próximos 6 meses, mas mais tarde com certeza ou o mercado deixará de ser aleatório, o que não acontecerá.

0

kainc301

Cliente, bbp_participante, comunidade, 54 respostas.

Perfil da visita

4 anos atrás #245980

Você corre o risco de se ajustar demais durante sua otimização final! Eu não o otimizaria depois que você já tiver feito todos os outros testes. Isto não é diferente de uma caminhada para frente com um grande in-sample que você ainda não tenha testado out-of-sample. Eu pelo menos tentaria um WF ancorado antes de tentar isso.

Eu teria que discordar disto. A otimização final depois de tudo ter sido testado é geralmente limitada à mudança de alguns parâmetros apenas ligeiramente. Por exemplo, mover um stop-loss de 3,4x ATR para baixo para 2,8x ATR ou mover a saída após as barras de 25 para 40. É ilógico para mim que estas mudanças fariam com que a estratégia "se adaptasse demais" de repente. Estratégias de "overfit" são estratégias que funcionam apenas nos dados em que foram TREINADAS. Otimização em todo o conjunto de dados não é o mesmo que requalificação. Ela ainda sobreviveu aos dados anteriores do OOS. Ajustar ligeiramente a estratégia não é re-treiná-la nos dados OOS, pois ainda deve ser considerada invisível do conjunto de dados de treinamento original.

Para o teste de robustez acho que a melhor opção é ter estratégias que funcionem em muitos instrumentos e prazos e que sejam fáceis de encontrar no SQx. Como uma estratégia pode ser ajustada em curva ou ruim se ela funciona com dados não vistos em X mercados diferentes. É claro que talvez não funcione nos próximos 6 meses, mas mais tarde com certeza ou o mercado deixará de ser aleatório, o que não acontecerá.

Também pensei nisto originalmente. Entretanto, minha preocupação era com o quão diferentes os outros mercados podem ser, às vezes. Para mim, esta é uma área ainda mais cinzenta do que a WFO e ainda quero fazer mais pesquisas sobre estratégias trabalhando em outros mercados, sendo um verdadeiro teste de robustez. Pelo que eu reuni, você tem que testar mercados que são similares. Como um exemplo óbvio, você não pode fazer algo como comparar resultados de uma estratégia em EUR/USD e USD/JPY à medida que eles se movem próximos uns dos outros. Você teria que fazer algo como comparar uma estratégia em EUR/USD com GBP/USD e se testando USD/JPY, compará-la com EUR/JPY e assim por diante.

Todos os pensamentos até agora eu vejo o melhor desempenho de estratégias que são simplesmente otimizadas em dados recentes, mas ainda assim tiveram um ótimo desempenho em dados invisíveis e isso é muito mais simples de se fazer.

Estou curioso para fazer mais algumas pesquisas e obter mais opiniões a respeito disso. Nunca treinei sobre dados mais recentes e os testei contra o OOS no passado. Eu faria o oposto onde treinaria sobre dados passados e faria dos dados recentes meu OOS, a fim de provar que a estratégia ainda funcionava nas condições de mercado atuais. O melhor de dois mundos seria ter múltiplos períodos IS, bem como múltiplos OOS, mas estou aguardando o pedido desse recurso para ser implementado 😉

0

bentra

Cliente, bbp_participante, comunidade, sq-ultimate, 22 respostas.

Perfil da visita

4 anos atrás #245991

Um pequeno ajuste da estratégia não é re-treinamento nos dados do OOS, pois ainda deve ser considerado invisível em relação ao conjunto de dados de treinamento original.

Qualquer ajuste é uma forma de ajuste até certo ponto, se você usar o OOS para os ajustes, então é por definição considerado visto e por definição não mais considerado OOS. Como eu entendo, pequenos ajustes são menos propensos a machucar e mais propensos a ajudar, mas a idéia geral da caminhada para frente é tentar verificar o quanto a parte de otimização/ajuste está ajudando ou machucando. Você poderia usar um pouco menos de dados ou obter mais dados e, em vez disso, dar uma caminhada para a frente por "duas semanas menores". Em seu exemplo de usar "amostra de dados inteira", qual é a diferença entre estas três coisas:
- "pequenos ajustes" em 16 anos de todos os seus dados
-obter mais dados primeiro e depois usar 16 dos 25 anos para SI e fazer uma caminhada em frente no resto por "pequenos ajustes".
-utilizar 14 dos 16 anos e fazer uma caminhada de "pequenos ajustes" nos 2 anos restantes de OOS? (poderia ser melhor do que nada e dar-lhe confiança em seu "ajuste menor").

Como exemplo óbvio, você não pode fazer algo como comparar os resultados de uma estratégia em EUR/USD e USD/JPY à medida que se aproximam um do outro. Você teria que fazer algo como comparar uma estratégia sobre EUR/USD com GBP/USD e se testando USD/JPY, compará-la com EUR/JPY e assim por diante.

Se sua estratégia é simétrica, é claro que você pode comparar resultados de EURUSD com USDJPY. Se sua estratégia não for simétrica do que sua afirmação faz sentido. Penso que para o contexto ao falar de testes de mercado cruzado, será útil especificar o prazo e também se estamos ou não falando de uma estratégia simétrica. Por exemplo, acho que prazos maiores (H4 / D1) são melhores como estratégias simétricas e de mercado cruzado, enquanto prazos menores são melhores assimétricos e parecem mais especializados para um único par. Eu também acho que GOLD, USDJPY, EURUSD e GBPUSD são um conjunto sólido de testes cruzados para estratégias simétricas de prazos maiores. Mas um bom conjunto de dados para uma estratégia assimétrica de menor prazo algo como EURUSD, EURJPY e GBPUSD parece ser o melhor para um par EURUSD. (Um xxxUSD adicional e um EURxxx adicional) Eu realmente fiz um pedido de recurso para que pudéssemos "inverter" a cruz para que pudéssemos ter um conjunto de verificação cruzada como USDJPY, EURJPY, USDGBP como um conjunto de verificação cruzada lógica para uma estratégia USDJPY assimétrica. Eu esqueci tudo isso até agora. (https://roadmap.strategyquant.com/tasks/sq4_3319)

 

 

 

 

 

Que todos os seus ajustes sejam soltos.


https://www.darwinex.com/darwin/SUG.4.2/

0

kainc301

Cliente, bbp_participante, comunidade, 54 respostas.

Perfil da visita

4 anos atrás #246884

 

 

0

kainc301

Cliente, bbp_participante, comunidade, 54 respostas.

Perfil da visita

4 anos atrás #246888

qual é a diferença entre essas três coisas: - "pequenos ajustes" em 16 anos de todos os seus dados - obter mais dados primeiro e depois usar 16 dos 25 anos para SI e fazer uma caminhada para frente no resto usando "pequenos ajustes" - usando 14 dos 16 anos e fazer uma caminhada para frente usando "pequenos ajustes" nos 2 anos restantes de OOS? (poderia ser melhor do que nada e dar-lhe confiança em seu "pequenos ajustes").

Bem, testes WFO para otimização de estratégias várias vezes. Eu não faço isso. Portanto, a diferença é que a realização deste teste não me dá os dados finais que eu quero quando se trata de preparar uma estratégia para a produção, pois não planejo otimizá-la mais de uma vez.

Se sua estratégia é simétrica, é claro que você pode comparar resultados de EURUSD com USDJPY. Se sua estratégia não for simétrica do que sua afirmação faz sentido. Penso que para o contexto ao falar de testes de mercado cruzado, será útil especificar o prazo e também se estamos ou não falando de estratégias assimétricas.

Eu costumava jurar por estratégias simétricas até que os dados me mostrassem o contrário. Agora eu só uso estratégias de curto e longo prazo para um determinado mercado. Vou fazer um treinamento unilateral por lado e por mercado. O resultado final são duas estratégias diferentes que cada uma só negocia em uma direção com regras completamente diferentes. Algumas pessoas, como você, juram por simetria. A cada um deles. Quanto à TF, isso realmente não importa, desde que não seja nada como 5m ou menos. Se alguém foi capaz de fazer estratégias de 5m ou menos de trabalho no comércio ao vivo, eu os saúdo.

0

bentra

Cliente, bbp_participante, comunidade, sq-ultimate, 22 respostas.

Perfil da visita

4 anos atrás #247232

até que os dados me mostraram o contrário. Agora só utilizo estratégias de curto e longo prazo.

Não é de se estranhar, considerando o quanto a simetria é deficiente no SQX ainda.

Posso ver como você acha que eu amo a simetria de toda a minha atividade recente, mas na verdade a maioria dos meus estratos vivos não são.

Que todos os seus ajustes sejam soltos.


https://www.darwinex.com/darwin/SUG.4.2/

0

Visualizando 7 respostas - 1 até 7 (de um total de 7)