20 de agosto de 2026 · Otimização

3 formas de falhar na otimização walk-forward sem dar por isso

3 formas de falhar na otimização walk-forward sem dar por isso

A otimização walk-forward tem fama de ser a forma honesta de ajustar uma estratégia, e merece-a — sobretudo quando comparada com otimizar usando todos os dados e ficar a admirar o resultado. Mas esta técnica tem modos de falha discretos, e todos produzem o mesmo resultado: um relatório de validação que diz «robusta», anexado a uma estratégia que não o é. Eis os 3 modos contra os quais tivemos de nos precaver, organizados pelos estragos que deixam.

Falha 1: as janelas comunicam entre si

A forma errada: ajustar com os dados de janeiro a junho, validar em julho e depois deixar que algo de julho influencie uma segunda passagem — repetir a execução depois de ver o resultado fora da amostra, fazer um «pequeno ajuste» à grelha de parâmetros ou normalizar uma variável com base na série completa. Cada uma destas ações parece inofensiva. Em conjunto, transformam a janela fora da amostra em dados dentro da amostra, com atraso.

O estrago: um Sharpe fora da amostra que, de forma misteriosa, acompanha o Sharpe dentro da amostra. Os verdadeiros resultados fora da amostra são ruidosos e dececionantes; uma relação IS/OOS suspeitamente suave significa que a informação está a fluir para trás. Monitorizamos explicitamente o rácio: um Sharpe dentro da amostra superior a 3x o Sharpe fora da amostra sinaliza a execução, e um resultado fora da amostra igual ou inferior a zero reprova-a, por mais bonito que seja o resultado dentro da amostra.

Falha 2: escolher métricas entre janelas

Executar 3 janelas walk-forward, obter 3 resultados ruidosos e depois resumir: Sharpe médio? Mediana? Excluir a pior janela por causa de uma «mudança de regime»? Cada escolha acrescenta um grau de liberdade, e um otimizador determinado (humano ou Bayesiano) encontrará o resumo que faz esta estratégia parecer melhor. 75 ensaios Optuna por janela são 75 oportunidades de ajustar ao ruído, multiplicadas pelo número de resumos que se estiver disposto a considerar.

O estrago: uma estratégia que passa a validação e depois apresenta em produção o desempenho da janela pior, porque essa foi a única honesta. A nossa regra: a agregação fica definida na configuração antes da execução, o orçamento de ensaios é fixo e o analista consulta os resultados de cada janela com a dispersão à vista. Uma estratégia que precisa do resumo mais favorável para passar, não passa.

Falha 3: o holdout que deixou de o ser

Um holdout só funciona 1 vez. Na segunda avaliação de uma estratégia com esse conjunto — depois de um ajuste de parâmetro, de uma alteração ao sinal ou de um «vamos só confirmar» — já não é um holdout; passou a ser um conjunto de validação usado às escondidas. Parece fácil preservar 15 dias intocados, até a pressão para iterar apertar e voltar a verificar parecer inofensivo.

O estrago é subtil: os resultados do holdout melhoram ao longo das iterações da mesma estratégia. Não há razão para que dados novos fora da amostra favoreçam a iteração 3 em detrimento da 1; quando isso acontece, o holdout foi explorado. Impomos mecanicamente uma única utilização: o holdout é avaliado 1 vez por execução do pipeline, o resultado fica registado e uma estratégia que precise de outra tentativa volta a passar por todo o processo — incluindo novas janelas. Tem de conservar pelo menos 70% do Sharpe walk-forward fora da amostra, e não há uma segunda tentativa.

O sinal que resiste aos 3 modos de falha

Antes de tudo isto, fazemos uma análise de sensibilidade simples: ajustamos cada parâmetro em ±20% e observamos as métricas. Uma vantagem real degrada-se gradualmente; uma coincidência cai a pique. É o teste mais barato do pipeline e veta estratégias que teriam passado por tudo o que descrevemos acima — porque um precipício nos parâmetros é o aspeto do sobreajuste antes de lhe darmos oportunidade de se esconder nos mecanismos de validação.

3.0×rácio máximo de Sharpe IS/OOS
70%mínimo a conservar do WF OOS no holdout
±20%ajuste de sensibilidade por parâmetro
1avaliação do holdout, para sempre

Nada disto torna a otimização segura. Torna os modos de falha evidentes — que é o máximo que se pode honestamente exigir de um processo de validação.

otimizaçãowalk-forwardsobreajusteholdoutsensibilidade
← Todos os artigos