A Armadilha do Overfitting
Se você der parâmetros suficientes a um modelo de machine learning, ele encontrará padrões em ruído aleatório. A mesma coisa acontece no desenvolvimento de estratégias de trading, só que de forma menos óbvia. Uma estratégia com 12 parâmetros ajustáveis — limiar de entrada, limiar de saída, período de lookback, filtro de volume, filtro de horário do dia, entre outros — tem graus de liberdade suficientes para se ajustar quase perfeitamente aos dados históricos. O problema é que esses parâmetros calibrados capturaram ruído específico do período histórico, e não uma relação de mercado duradoura.
Você pode testar isso diretamente. Pegue qualquer estratégia que pareça ótima em um backtest e desloque os parâmetros em 10-20%. Se o desempenho entrar em colapso, a estratégia está sofrendo overfitting. Uma estratégia robusta deve degradar gradualmente com mudanças nos parâmetros, e não cair de um penhasco. A forma abrupta dessa queda indica que a estratégia encontrou um nicho estreito nos dados históricos que funcionou por acaso, e não uma vantagem estrutural ampla.
Viés de Sobrevivência nos Dados
A maior parte dos backtests em cripto é feita com ativos que existem atualmente e são negociados ativamente. Mas uma enorme quantidade de tokens foi criada, negociada por algum período e depois efetivamente morreu — perdendo 99%+ do seu valor ou sendo removida das exchanges. Quando você faz backtest de uma estratégia nos "50 principais tokens por capitalização de mercado", está selecionando tokens que sobreviveram. Sua estratégia nunca encontra os que foram a zero.
Isso importa porque muitas estratégias de momentum parecem excelentes em backtests. Comprar o que está subindo, vender o que está caindo. Mas em um conjunto de dados com viés de sobrevivência, os ativos que subiram incluem os sobreviventes futuros, e os que caíram e eventualmente foram a zero estão excluídos do dataset. O alpha da estratégia é parcial ou inteiramente um artefato da seleção dos dados.
A solução são dados livres de viés de sobrevivência, que incluem ativos removidos das exchanges e tokens extintos. Esses dados são mais difíceis de obter e mais caros, mas fornecem resultados de backtest dramaticamente mais realistas.
Slippage e Impacto no Mercado
Os backtests geralmente assumem que você pode executar ao preço visível no momento do sinal. Na prática, o ato de negociar move o preço. Se sua estratégia gera um sinal de compra a $100, no momento em que sua ordem chega à exchange e é executada, você pode pagar $100,15. Em uma única operação, isso é trivial. Ao longo de milhares de operações, é a diferença entre uma estratégia lucrativa e uma perdedora.
O problema do slippage é ainda pior para estratégias que operam durante períodos voláteis — exatamente quando você quer negociar é quando a liquidez diminui — e para estratégias que operam ativos menos líquidos. Uma estratégia que parece ótima no backtest com DOGE/USD assumindo slippage zero pode ser fisicamente impossível de executar nesses preços, porque o order book não consegue absorver o tamanho da posição sem mover o preço de forma significativa.
Uma modelagem realista de slippage exige dados reais do order book, não apenas candles OHLCV. Se você está fazendo backtest com dados de candles e assumindo execução ao preço de fechamento, está sendo otimista por uma margem que frequentemente supera toda a vantagem da estratégia.
Mudanças de Regime
Os mercados mudam. Os regimes de volatilidade se alteram, as correlações se desfazem, novos participantes entram, regulações mudam e o cenário macroeconômico evolui. Uma estratégia calibrada para o mercado de alta de 2020-2021, com suas taxas de juros baixas e enormes fluxos de varejo, se comportará de forma diferente em um ambiente de taxas mais altas com uma composição diferente de participantes.
A sutileza é que as mudanças de regime só são óbvias em retrospecto. Você não pode saber com antecedência quando a estrutura de mercado da qual sua estratégia depende irá mudar. O que você pode fazer é testar sua estratégia em múltiplos regimes, se os dados estiverem disponíveis, e monitorar o desempenho em tempo real da estratégia em relação ao desempenho esperado para detectar quando algo mudou.
Viés de Look-Ahead
Este é o bug mais insidioso no código de backtesting. O viés de look-ahead ocorre quando sua estratégia usa inadvertidamente informações que não estariam disponíveis no momento da operação. Exemplos comuns: usar o preço de fechamento diário para tomar uma decisão na abertura do mercado, usar um indicador que é revisado após a publicação inicial, ou usar dados que chegam com atraso (como dados de reservas de exchanges que podem ter um lag de reporte de 1 hora).
No código, o viés de look-ahead frequentemente aparece como um erro de off-by-one na indexação. Se o seu sinal no tempo t usa dados do índice t em vez de t-1, você está olhando para o futuro. Isso é fácil de introduzir e difícil de detectar por inspeção. A melhor defesa é rodar seu motor de backtest em modo estritamente orientado a eventos, onde a estratégia só vê dados que já foram "publicados" de acordo com timestamps realistas.
O Que Sobrevive à Transição para o Trading Real
Estratégias que tendem a funcionar no trading real compartilham certas propriedades. Elas têm poucos parâmetros. São baseadas em uma lógica econômica clara, não apenas em um padrão nos dados. Degradam gradualmente com mudanças nos parâmetros. Foram testadas em múltiplos períodos de tempo e condições de mercado. E levam em conta custos de execução realistas.
Nada disso garante sucesso, mas melhora as probabilidades. O resultado padrão — que uma estratégia com backtest falha no trading real — é a taxa base que você está tentando superar. Entender exatamente por que as estratégias falham oferece uma forma sistemática de testar seu trabalho sob pressão antes de arriscar capital real.