Testes de robustez para estratégias de trading
Você construiu uma estratégia que ficou boa no backtest e agora está diante de uma lista de nomes como Monte Carlo, System Parameter Permutations, Walk-Forward Matrix e "Retest on additional markets". Quais deles você precisa, e em que ordem? Ao final deste texto você vai saber o que cada um desses testes representa e como eles se encaixam em um exemplo documentado.
Por que a lista de cross-checks assusta no início
A maioria dos traders encontra os testes de robustez pela primeira vez quando uma estratégia já mostra bons números no backtest e o software oferece testá-la ainda mais a fundo. Nesse momento aparece uma série de termos, sem que fique claro de imediato o que cada um faz. Isso não é acaso: esses testes não são um único passo, mas uma caixa de ferramentas com instrumentos diferentes para perguntas diferentes.
O que os testes de robustez verificam e contra o que eles ajudam
Os testes de robustez, também chamados de cross-checks, são descritos como parte fixa do StrategyQuant X. O objetivo deles é verificar automaticamente como uma estratégia se comporta sob pressão, por exemplo quando trades individuais são pulados ou valores de parâmetros são levemente alterados. A ideia por trás disso é simples: uma estratégia cujo resultado desmorona já com pequenas mudanças pode ter sido ajustada demais aos dados disponíveis.
Algo importante: passar nesses testes não prova que uma estratégia não está sobreajustada, e um resultado robusto sob essas condições simuladas não é garantia de ganhos futuros. Os testes mostram um comportamento sob certas perturbações, nada além disso.
As quatro verificações integradas, em resumo
A documentação do fabricante descreve os testes de robustez integrados como um grupo de quatro verificações: simulações de Monte Carlo, System Parameter Permutations, uma verificação do Optimization Profile e uma walk-forward matrix. De acordo com a documentação, essas quatro podem ser ativadas ou desativadas juntas, como grupo, para combater o sobreajuste. O nome exato e a disposição na sua versão podem variar um pouco em relação a este resumo, mas o princípio de um grupo conjunto permanece o mesmo.

Combinar essas quatro verificações não substitui sua própria análise dos resultados. O grupo ajuda a eliminar cedo as estratégias claramente frágeis, mas não tira de você a tarefa de examinar pessoalmente as candidatas que sobrevivem.
Como o Robustness Tests Tool trabalha com Monte Carlo
Por trás da verificação de Monte Carlo existe um mecanismo simples: o Robustness Tests Tool repete o teste de uma estratégia com parâmetros de entrada alterados aleatoriamente e dados alterados aleatoriamente. Dessas muitas repetições surge uma simulação de Monte Carlo, cujo resultado é apresentado junto com níveis de confiança.
Um nível de confiança não é uma promessa. Ele diz algo sobre a dispersão das execuções simuladas, não sobre o que de fato vai acontecer ao vivo. E uma única execução de Monte Carlo não basta como prova de robustez, afinal a repetição é justamente a ideia por trás disso.
A documentação mais antiga, válida até a versão 3.6.1, descrevia o mesmo princípio básico com um número fixo de execuções definido pelo usuário: a estratégia era então verificada quanto à reação a pequenas mudanças em entradas, dados históricos ou outros componentes. O princípio básico, introduzir pequenas mudanças e observar a reação, não é novo, mesmo que versões atuais o chamem ou estruturem de forma diferente.
Um exemplo simples: retest em mercados adicionais
Uma das verificações mais fáceis de entender é o retest em mercados adicionais. Nela, a mesma estratégia é testada novamente em outros mercados, ou seja, em outros símbolos e ou outros timeframes diferentes daqueles em que foi originalmente construída e testada.

Esse é um bom ponto de partida porque o princípio é fácil de acompanhar: uma estratégia cuja lógica foi ajustada apenas ao movimento exato de preços de um único símbolo costuma ter desempenho pior em outro símbolo. Mas passar nessa verificação não é prova de que a estratégia funciona em qualquer mercado ou timeframe. Mostra apenas como ela se comportou nos mercados adicionais concretamente testados.
Um funil de exemplo: como os cross-checks se encaixam
A lista de verificações parece longa quando vista como um todo. A documentação traz um exemplo de como cross-checks individuais podem se encaixar em uma sequência, de modo que nem toda estratégia passa por todas as verificações em profundidade total.
Nesse exemplo, uma estratégia recém-gerada é testada primeiro com a precisão mais rápida disponível. Se ela falhar nos filtros globais, é descartada automaticamente, sem que outras verificações mais demoradas sequer cheguem a rodar. Só as estratégias que sobrevivem a esse primeiro passo seguem para verificações mais precisas, como um retest com maior precisão e uma verificação de Monte Carlo que altera trades individuais.

O contexto desse exemplo é importante: é uma configuração possível, não um fluxo obrigatório que todo projeto precisa seguir exatamente assim. E quem passa por todo esse funil ainda não demonstrou com isso que a estratégia vai funcionar da mesma forma ao vivo.
O antigo caminho de cinco passos, como referência
A documentação mais antiga, também válida até a versão 3.6.1, descrevia um caminho de cinco etapas para verificar a robustez de uma estratégia: primeiro revisar o período out-of-sample, depois testar em símbolos e timeframes adicionais, em seguida rodar testes de robustez baseados em Monte Carlo e, por fim, revisar as curvas de capital resultantes e uma tabela de níveis de confiança em uma visão própria de análise de robustez.
Esse fluxo é útil como referência porque mostra que a ideia básica, aplicar várias verificações independentes em sequência, já faz parte da ferramenta há mais tempo. Como guia exato para uma versão atual ele não serve: os nomes das abas e os passos individuais podem ser diferentes em versões mais novas.
O que esses testes podem mostrar, e o que não podem
Cada uma das verificações descritas aqui se baseia na mesma ideia: rodar uma estratégia sob mudanças simuladas de parâmetros passados, trades passados ou dados passados, e observar o que acontece. É um filtro útil para identificar estratégias cujo bom resultado no backtest dependia apenas de condições muito específicas.
O que esses testes não entregam é uma prova para o futuro. Um retest aprovado em mercados adicionais, um bom nível de confiança vindo de uma simulação de Monte Carlo ou a sobrevivência a um funil inteiro de verificações diz algo sobre o comportamento sob essas condições concretas e passadas. Não diz nada sobre como essa mesma estratégia vai se comportar sob condições de mercado futuras, ainda não observadas.
Este artigo tem fins educativos e não é aconselhamento de investimento. Resultados passados, incluindo os de backtests, não garantem resultados futuros. Negociar instrumentos financeiros envolve riscos e você pode perder dinheiro.
Este artigo tem fins educacionais e não é aconselhamento de investimento. Resultados passados não garantem resultados futuros.
E você, como faz? Conte na comunidade. Grátis, no seu idioma.
Cadastre-se grátis