O Negativo Honesto: Dezenas de Milhares de Backtests, Cinco Majors, Nenhuma Vantagem Robusta
Parte da série "Backtests Sem Ilusões".
O resultado que não queríamos
Esta série passou vários artigos construindo instrumentos para pegar uma mentira: o look-ahead bias que fabrica um Sharpe de 15 a partir de um vazamento de uma barra, o Deflated Sharpe Ratio que precifica o vencedor de uma busca, a Probability of Backtest Overfitting que precifica a própria busca. Cada uma dessas peças foi, em certo sentido, um ensaio. Esta aqui é o espetáculo: apontamos todo o aparato para uma família de estratégias real que de fato queríamos operar, e o deixamos entregar o veredito para o qual foi construído — mesmo quando o veredito é não.
Aqui está o final honesto, logo de cara. Rodamos dezenas de milhares de backtests em cinco moedas majors, em configurações de timeframe duplo e triplo, buscando uma vantagem robusta. Não encontramos nenhuma. Não é "encontramos uma vantagem pequena e reduzimos a posição". Encontramos nada que sobreviva ao contato com o maquinário — nenhuma configuração que seja simultaneamente lucrativa entre instrumentos e defensável sob correção para testes múltiplos. Isso não é uma falha do experimento. Isso é o experimento tendo sucesso.
A parte sedutora — a parte que teria levado uma equipe pior instrumentada a alocar capital — é que uma leitura ingênua parecia genuinamente boa:
| Estágio | O que vimos | O que era |
|---|---|---|
| Busca em símbolo único (ETHUSDT, TF duplo) | +16,35% no teste out-of-sample, +2,62% em um holdout intocado | o vencedor tentador |
| Deflated Sharpe, ~37.000 tentativas | DSR = 0,00 | melhor-do-ruído |
| Cross-instrument, 5 majors, TF duplo | DSR 0,24 / PBO 0,264 | falha |
| Cross-instrument, 5 majors, TF triplo | DSR 0,14 / PBO 0,327 | falha |
Leia aquela primeira linha do jeito que a lemos inicialmente: uma estratégia de cruzamento de médias móveis, ajustada no ETHUSDT sobre uma grade de timeframe duplo, imprimindo +16,35% em dados que ela nunca viu durante a busca, e mantendo um positivo +2,62% em uma segunda janela que havíamos isolado por completo. Se você parar aí — e a maioria dos backtests publicados para aí — você embarca. O resto deste artigo é o maquinário que nos disse para não embarcar, e por que ele estava certo.
Ato 1 — O vencedor tentador

A família de estratégias é deliberadamente comum: um cruzamento de Hull moving average, avaliado em barras fechadas, com um modelo de execução honesto (decidir no fechamento da barra i, executar na abertura de i+1 — a disciplina de uma barra com a qual esta série não vai transigir). "Timeframe duplo" significa que o sinal é filtrado pela tendência de um timeframe mais lento; "triplo" adiciona um terceiro, ainda mais lento. Cada timeframe adiciona parâmetros livres, e parâmetros livres são exatamente o que uma busca converte em desempenho aparente.
O estudo de símbolo único rodou no ETHUSDT. O protocolo já era do tipo bom: uma divisão walk-forward móvel (uma janela de warmup, vários folds in-sample, uma janela de teste out-of-sample), mais uma janela final de holdout que a busca estava proibida de tocar até o fim. Uma busca Sobol/QMC explorou o espaço de parâmetros; o sobrevivente foi a configuração com o melhor score walk-forward, e ela foi levada uma vez — exatamente uma vez — ao holdout.
O sobrevivente parecia uma vantagem:
- +16,35% na janela de teste out-of-sample — dados usados apenas para pontuar configurações, nunca para ajustá-las.
- +2,62% no holdout intocado — uma segunda muralha, superada.
Este é o momento que decide se um processo de pesquisa é honesto ou teatral. O lucro out-of-sample é real no sentido estrito de que os números não são fabricados e não há vazamento de look-ahead — verificamos. Mas "números reais, sem vazamento" é uma barra muito mais baixa que "vantagem real". Entre elas está aquilo sobre o qual toda esta série trata: a seleção. Não avaliamos uma estratégia e descobrimos que ela rendeu 16%. Avaliamos um número enorme de estratégias e reportamos os 16% da melhor delas. A janela out-of-sample estava limpa de look-ahead, mas não estava limpa de seleção — porque escolhemos o vencedor em parte por como ele se saiu ali. O único instrumento que consegue distinguir essas duas histórias é aquele que sabe quantas vezes olhamos.
Ato 2 — A deflação: ~37.000 tentativas, DSR = 0,00

Conte os olhares. Ao longo dos folds, das combinações de timeframe e da grade de parâmetros, a busca de timeframe duplo avaliou na ordem de 37.000 configurações distintas. Cada uma delas é um sorteio do espaço de estratégias, e a busca guardou o máximo. O artigo do Deflated Sharpe Ratio tem a derivação completa, mas o único fato de que você precisa aqui é o False Strategy Theorem (Bailey & López de Prado): o Sharpe máximo esperado de N estratégias com vantagem verdadeira igual a zero cresce com N. Em N ≈ 30.000, o melhor de puro ruído fica cerca de quatro desvios-padrão acima de zero puramente por seleção. Quatro sigma parece uma descoberta. É a sombra da busca.
Então a pergunta certa não é "o Sharpe do vencedor é positivo?" — claro que é, você escolheu o máximo. A pergunta certa é "o Sharpe do vencedor está além do que o mais sortudo de 37.000 lançadores de moeda postaria?" É exatamente isso que o DSR calcula: ele move o benchmark de zero para cima, até o teto de ruído implicado pela contagem de tentativas, e reporta a probabilidade de o Sharpe verdadeiro superar aquilo.
O histórico out-of-sample do vencedor no ETHUSDT corresponde a um Sharpe diário de cerca de 0,19. Por si só, um SR diário de 0,19 sobre uma janela longa é um número perfeitamente respeitável. Deflacionado contra ~37.000 tentativas, ele evapora:
Zero. Não "marginal", não "0,4, fique de olho". O DSR diz: dado o quão intensamente buscamos, um Sharpe diário de 0,19 é indistinguível do melhor sorteio de puro ruído. Os +16,35% out-of-sample e os +2,62% de holdout são consistentes, na precisão que este teste consegue resolver, com uma estratégia que não tem vantagem nenhuma e simplesmente ganhou uma loteria com 37.000 bilhetes.
Uma sutileza que vale sinalizar, porque não queremos exagerar a deflação: pontos vizinhos numa grade de parâmetros são quase-duplicatas, então a contagem bruta de tentativas superconta os olhares independentes. Nosso limiar usa o número efetivo de tentativas — tentativas agrupadas por correlação de retornos via ONC (López de Prado & Lewis) antes de deflacionar — precisamente para não rejeitarmos uma vantagem real por uma razão de contabilidade. Mesmo com essa correção incorporada, o vencedor do ETHUSDT não sobrevive. Quando um resultado marca DSR 0,00, a nuance do N efetivo não vai resgatá-lo; ele está fundo dentro do ruído.
Aquilo poderia ter sido o fim. Um símbolo, uma busca, deflacionado a nada. Mas o DSR falhando em um único símbolo deixa uma brecha que um otimizador determinado sempre tentará espremer: talvez o ETHUSDT seja apenas um símbolo difícil, e a configuração seja real em outros lugares. Para fechar essa brecha você tem que mudar o eixo do teste.
Ato 3 — O teste decisivo: robustez é entre instrumentos

Uma busca de símbolo único tem uma fraqueza estrutural mesmo quando é, no mais, perfeita: seu único eixo out-of-sample é o tempo. Ela pode dizer que a configuração se manteve numa janela posterior do ETHUSDT — mas não pode dizer se a configuração aprendeu algo sobre mercados ou algo sobre o ETHUSDT especificamente. Overfitting a um instrumento é invisível a um teste que nunca sai daquele instrumento.
Então mudamos o objetivo. Em vez de "melhor no ETHUSDT out-of-sample", a caça cross-instrument busca generalistas: configurações que são boas ao mesmo tempo em muitos símbolos. O protocolo:
- Cinco majors líquidos: ETHUSDT, BTCUSDT, SOLUSDT, BNBUSDT, XRPUSDT — aproximadamente 1,18 milhão de barras de 1 minuto cada, uma janela de calendário compartilhada, um conjunto compartilhado de splits (warmup → K folds in-sample → teste → um holdout intocado).
- Um objetivo robusto: pontuar cada configuração no resultado walk-forward de cada símbolo, depois ordenar pela mediana entre símbolos. A mediana é o ponto — uma configuração que é espetacular em uma moeda e péssima em quatro não consegue comprar sua entrada com um único outlier. Para ser selecionada, ela precisa ser pelo menos mediana na maioria delas.
- Uma matriz de retornos de portfólio para os limiares: os retornos diários por tentativa são um portfólio de peso igual entre os cinco símbolos (1/S do capital cada), fornecendo a matriz de desempenho T×N que os limiares do DSR e do PBO-CSCV consomem.
- O holdout é tocado uma vez, apenas pelo campeão robusto de cada modo.
Este é um teste estritamente mais difícil que o de símbolo único, e deliberadamente assim. Uma configuração pode vencer a busca do ETHUSDT explorando a idiossincrasia de uma moeda; ela não pode vencer a busca de mediana-entre-cinco desse jeito. Se existe uma vantagem robusta nesta família de estratégias, este é o arranjo que a encontra. Se não existe, este é o arranjo que diz isso sem hesitar.
Ato 4 — O veredito: ambos os timeframes falham nos limiares
Rodamos a caça cross-instrument nas duas configurações e aplicamos os limiares a cada campeão robusto. Os limiares são os dois padrão: DSR ≥ 0,95 (deflacionado contra o número efetivo de tentativas) e PBO ≤ 0,2 (do CSCV sobre a matriz de desempenho). Aqui está o veredito completo, honestamente:
| Modo | DSR (N-efetivo) | PBO (CSCV) | Limiar: DSR ≥ 0,95 | Limiar: PBO ≤ 0,2 | Veredito |
|---|---|---|---|---|---|
| Timeframe duplo | 0,24 | 0,264 | falha | falha | nenhuma vantagem robusta |
| Timeframe triplo | 0,14 | 0,327 | falha | falha | nenhuma vantagem robusta |
Ambos falham, ambos os limiares, ambos os modos. Leia cada número com a calibração que os artigos anteriores estabeleceram, porque os dois limiares estão dizendo coisas diferentes e eles concordam:
-
DSR 0,24 (duplo), 0,14 (triplo). O DSR é a probabilidade de o Sharpe verdadeiro exceder o teto de ruído implicado pela busca. Precisamos de 0,95. Obtivemos 0,24 e 0,14 — mal uma chance de uma em quatro e uma em sete de a vantagem ser sequer positiva uma vez que você considera quantas configurações foram tentadas. Adicionar o terceiro timeframe piorou as coisas, não melhorou: mais parâmetros, mais formas de ajustar à amostra, menos que generaliza. Essa inversão é, ela própria, uma impressão digital de overfitting.
-
PBO 0,264 (duplo), 0,327 (triplo). Lembre-se do único fato que todos leem errado sobre o PBO (tratamento completo aqui): sua hipótese nula é 0,5, não 1. O PBO é a probabilidade de o vencedor in-sample cair na metade inferior out-of-sample. Uma seleção confiável fica perto de 0; um puro lançamento de moeda fica em 0,5. Nossos 0,264 e 0,327 estão abaixo de 0,5 — a seleção não é literalmente um lançamento de moeda, há um tênue sussurro de sinal — mas ambos estão bem acima do 0,2 que exigimos para chamar a seleção de confiável. E novamente o triplo (0,327) está mais perto da linha do lançamento de moeda que o duplo (0,264): mais complexidade, menos generalização.
Os dois instrumentos são ortogonais — o DSR é paramétrico e precifica o vencedor, o PBO é não paramétrico e precifica o procedimento — e eles convergem para a mesma resposta a partir de direções opostas. Não há leitura desta tabela em que qualquer uma das estratégias supere a barra. Os +16,35% que iniciaram toda esta caça não têm um primo cross-instrument robusto. Foi uma propriedade de uma moeda e uma busca.
Ato 5 — Siga o campeão, símbolo por símbolo
Os limiares agregados dizem que uma estratégia falhou; a decomposição por símbolo diz como, e o como é a parte mais instrutiva de todo o estudo. Pegue o campeão de timeframe triplo — a configuração que o objetivo de mediana-entre-cinco de fato coroou — e olhe o que ele fez na janela de teste out-of-sample de cada símbolo:
| Símbolo | Campeão triplo, teste OOS |
|---|---|
| ETHUSDT | −0,39% |
| BTCUSDT | −0,38% |
| SOLUSDT | +14,74% |
| BNBUSDT | −8,58% |
| XRPUSDT | −4,13% |
Aí está a ilusão inteira, exposta em cinco linhas. O campeão é lucrativo em exatamente um dos cinco símbolos — SOLUSDT, com um vistoso +14,74% — e negativo nos outros quatro. Ele não é um generalista que por acaso é fraco. Ele é um especialista em SOL vestido com a roupa de um portfólio. O único grande positivo está fazendo todo o trabalho; o objetivo de mediana o rebaixou abaixo do vencedor bruto do ETHUSDT precisamente porque a mediana se recusa a ser enganada por um único outlier, mas mesmo o campeão selecionado pela mediana acaba se apoiando quase inteiramente em uma moeda quando você o desempacota.
O holdout — a janela contra a qual ninguém teve permissão de otimizar — conta a mesma história do ponto de vista mais limpo possível: entre os cinco majors, o retorno de holdout do campeão é positivo em apenas 1 de 5 símbolos. Se isto fosse uma vantagem real na família de estratégias, ela apareceria, ao menos tenuemente, nos dados intocados de mais de um instrumento. Ela aparece em um. Essa é a assinatura de uma configuração que aprendeu um símbolo, não um mercado.
É por isso que o eixo cross-instrument foi o teste decisivo e não meramente um algo-a-mais. O DSR de símbolo único já deflacionou o ETHUSDT a zero. Mas foi preciso o design de mediana-entre-cinco para diagnosticar a falha — para mostrar que a vantagem aparente nunca esteve, para começo de conversa, distribuída entre instrumentos, que ela era uma propriedade de qualquer que fosse a moeda em que a busca calhou de fazer overfitting naquela rodada. No ETHUSDT era do ETHUSDT; na caça de mediana ela migrou para a do SOLUSDT. A vantagem se moveu. Vantagens reais não se movem assim.
Por que um resultado negativo é o resultado correto

Vale ser explícito sobre o que estamos e o que não estamos afirmando, porque "não encontramos vantagem" é fácil de ler errado, seja como falsa modéstia, seja como uma confissão de incompetência. Não é nenhum dos dois.
Nós não estamos afirmando que cruzamentos de HMA nunca podem funcionar, ou que essas cinco moedas são imprevisíveis, ou que nenhuma estratégia de timeframe duplo/triplo existe. Estamos afirmando algo mais estreito e muito mais forte: dentro desta família de estratégias, sobre estes dados, nesta intensidade de busca, não há configuração cujo desempenho aparente sobreviva à correção pelo número de coisas que tentamos. Tudo que parecia uma vantagem está dentro da banda de confiança do melhor do ruído. Essa é uma afirmação precisa, falsificável, defensável — e é a correta a se publicar.
A tentação que o maquinário derrota é enorme, e ela tem um nome em todos os outros campos: o problema da gaveta de arquivos (file-drawer problem). Resultados negativos são enterrados; resultados positivos são publicados. Em trading o incentivo é ainda mais afiado, porque o resultado positivo que você não conseguiu deflacionar não é apenas um artigo ruim — é capital alocado contra ruído, dinheiro de verdade pagando taxas de verdade para operar um bilhete de loteria que você confundiu com um sinal. O artigo sobre look-ahead mostrou um vazamento fabricando um Sharpe de 15; o artigo sobre DSR mostrou uma busca fabricando um Sharpe de 1,63 a partir de puro ruído, sem vazamento nenhum. Este artigo é como fica quando esses instrumentos são apontados para a sua própria ideia favorita e instados a serem honestos. O aparato — DSR, PBO/CSCV, agrupamento por N-efetivo, seleção cross-instrument — não existe para abençoar suas estratégias. Ele existe para impedir você de embarcar o melhor do ruído como alfa, e a única prova de que funciona é que às vezes ele diz não.
Uma equipe sem este aparato teria embarcado os +16,35%. Ela teria tido um walk-forward de aparência limpa, um holdout positivo, nenhum vazamento de look-ahead detectável e uma história plausível. Ela estaria errada, e não saberia disso até o P&L ao vivo divergir — o gap entre backtest e ao vivo que um resultado negativo-mas-honesto nunca precisa explicar, porque ele nunca foi ao ar. O valor de um não rigoroso é medido nos drawdowns que você nunca sofreu.
Proveniência
Cada número neste artigo remonta a código, não a narrativa. A caça de vantagem cross-instrument — o carregamento dos cinco símbolos, os splits compartilhados, o objetivo de mediana-entre-símbolos, a matriz de portfólio de peso igual alimentada aos limiares — vive em scripts/edge_hunt_multitf.py (commit acd84e8) no repositório do backtester. Os limiares estatísticos que ela chama — Sharpe probabilístico e deflacionado, comprimento mínimo do track-record, N-efetivo via agrupamento ONC e PBO através de CSCV, todos implementados do zero em NumPy/SciPy a partir das fontes primárias em vez de uma biblioteca caixa-preta — estão em scripts/overfit_gates.py (commit 7b966e1), que vem com um autoteste que planta uma vantagem conhecida em puro ruído e confirma que os limiares a aprovam e rejeitam o ruído. O estudo de símbolo único no ETHUSDT que produziu os tentadores +16,35% veio do harness bench_search_multitf anterior, que a caça importa em modo somente-leitura. Nada aqui é um número calculado à mão; os limiares são o mesmo caminho de código, quer a resposta seja sim ou não.
Conclusões
- Rodamos dezenas de milhares de backtests em cinco majors, timeframe duplo e triplo, e não encontramos vantagem robusta — e esse é o resultado que o maquinário foi construído para produzir. Um resultado negativo, rigorosamente estabelecido, é uma descoberta, não uma falha.
- Um número out-of-sample de aparência limpa não é uma vantagem. O vencedor do ETHUSDT postou +16,35% out-of-sample e +2,62% em um holdout intocado, sem vazamento de look-ahead — e deflacionou para DSR 0,00 uma vez que você contou as ~37.000 tentativas por trás dele. O out-of-sample supera o look-ahead; apenas a deflação supera a seleção.
- O False Strategy Theorem é a razão. Em ~30.000 tentativas, o melhor de puro ruído fica cerca de quatro sigma acima de zero apenas por seleção. Um Sharpe diário de 0,19 é exatamente o que aquela loteria paga. Você deve comparar seu vencedor ao teto de ruído, nunca a zero.
- A robustez vive entre instrumentos, não apenas ao longo do tempo. Selecionar pela mediana entre cinco símbolos transformou uma ilusão de moeda única em uma diagnosticável: DSR duplo 0,24 / PBO 0,264, DSR triplo 0,14 / PBO 0,327 — ambos falham em ambos os limiares, e o triplo (mais parâmetros) é pior que o duplo em toda métrica.
- Desempacote o campeão antes de confiar nele. O campeão "portfólio" de timeframe triplo foi lucrativo em 1 de 5 símbolos (SOL +14,74%; ETH −0,39%, BTC −0,38%, BNB −8,58%, XRP −4,13%) e positivo no holdout para apenas 1 de 5. Uma vantagem que vive em um instrumento e se move quando você re-busca não é uma vantagem — é um overfit vestido com a roupa de um portfólio.
- Publique o negativo. O aparato anti-overfitting — DSR, PBO/CSCV, N-efetivo, seleção cross-instrument — vale a pena ter precisamente porque às vezes ele lhe diz não, e a disciplina é ouvir quando ele o faz.
A estratégia que mais queríamos que funcionasse não funcionou. Os instrumentos que construímos para pegar isso nos disseram, de quatro maneiras independentes, antes que um único dólar estivesse em risco. Esse é todo o propósito da série, e este é o artigo em que o propósito se realiza: o maquinário justifica seu custo no dia em que o detém — não no dia em que o bajula.
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.