O que é mean reversion? Três implementações backtestadas — só uma vence consistentemente
Mean reversion é uma classe, não uma estratégia. Walk-forwardamos três implementações em 35 nomes temáticos: canal de regressão vence 22 de 35, cesta Fibonacci vence em PF 1,76, Bollinger plana vence 1 de 35. A razão estrutural é qual média você assume.
A história padrão da mean reversion vai assim. Preços oscilam em torno de um valor justo. Quando se sobre-estendem para cima, vendedores entram. Quando se sobre-estendem para baixo, compradores entram. Encontre a média, meça a distância, e aposte que essa distância fecha. Buy the dip, sell the rip, mean-reverta no lucro.
A história está meio certa. Preços mean-revertem — no tipo certo de nome. A metade que ela erra é tratar "mean reversion" como uma única estratégia quando é na verdade uma classe de estratégias que discordam fundamentalmente sobre o que é a média. Walk-forwardamos três implementações de mean reversion diferentes no mesmo universo de 35 tickers em 2 anos de candles horários. A versão canal de regressão classificou ROBUST em 22 de 35 nomes. A versão Bollinger de média plana classificou ROBUST em 1 de 35. A versão cesta Fibonacci — um formato totalmente diferente — entregou PF nível-cesta de 1,76 / Sharpe 1,42 / +23,7% em 3 anos de candles diários em níveis curados. Mesmo conceito subjacente, três resultados totalmente diferentes. Este artigo passa pelo porquê.
O TL;DR. Mean reversion funciona em nomes temáticos voláteis que não tendenciam de forma limpa. Qual implementação você usa importa mais que o conceito. Média plana (Bollinger Bands) falha porque a média não é plana — ela deriva. Canal de regressão se adapta à deriva e vence em 22 de 35 nomes. Fibonacci curado vence no nível-cesta num timeframe diferente (diário, multi-semanal). Em tendenciais seculares (classe $NVDA / $TSLA / $AMZN), toda flavor falha — a tendência é o fator dominante e a média é um alvo móvel que a estratégia não consegue acompanhar.
O que mean reversion realmente é
Uma estratégia de mean reversion faz duas hipóteses:
- Existe uma referência — uma média móvel, uma linha de regressão, um nível Fibonacci, um VWAP, um meio de range recente — à qual o preço está estatisticamente amarrado.
- Quanto mais o preço deriva da referência, mais provável é que o próximo movimento seja de volta em direção a ela.
Concretamente, a estratégia dispara quando o preço está longe da referência (definida por ±N desvios padrão, ±N% da linha, ±N ATRs, etc.), e sai quando o preço retorna à referência (ou bate um stop do outro lado).
As duas decisões de design que mais importam:
- O que é a média? Uma horizontal plana? Uma regressão linear que se adapta à inclinação? Um nível histórico curado pelo usuário? Uma linha intraday ponderada por volume? Cada resposta faz a estratégia funcionar numa classe de nome diferente.
- O que é a distância? Desvios padrão dos retornos? Múltiplos de ATR? Pontos percentuais? Cada resposta torna o sinal de entrada mais ou menos sensível a mudanças de regime.
O manual trata essas como problemas resolvidos com respostas únicas. Empiricamente, ambas as respostas dependem do ticker, do timeframe e do regime.
Por que funciona — quando funciona
Duas razões, uma estatística, uma comportamental.
Estatística. Retornos são ruidosos em torno de uma tendência subjacente. Movimentos diários são dominados por eventos de liquidez, fluxo de notícias, fluxos relacionados a opções e dinâmica de book de ofertas — não por mudanças no valor subjacente. Em horizontes curtos, o componente ruído domina e esse ruído é aproximadamente estacionário em torno da tendência. Uma posição que fade excursões extremas de ruído está, em expectativa, apostando na distribuição de ruído reverter — uma aposta estatística limpa.
Comportamental. Mercados sobre-atiram. Vendedores em pânico não param de vender ao "valor justo" — param quando o bid some. Compradores eufóricos não param de comprar ao "valor justo" — param quando ficam sem capital. Ambos os sobre-atiros produzem o mesmo padrão estrutural: o preço se estende além da referência, não encontra mais participantes marginais, e reverte. Estratégias de mean reversion fadem o sobre-atiro.
Ambas as razões falham na mesma situação: quando o valor subjacente em si está se movendo rápido o suficiente para que o que parece um sobre-atiro seja na verdade um re-rating. $NVDA correndo de US$100 a US$140 em três semanas não é um sobre-atiro — é um re-pricing. Fadeado como trade de mean reversion, produz um sangramento constante por um ano.
As três implementações testadas
A QuantAbundancia mantém um harness de sweep interno que walk-forwarda cada estratégia da biblioteca em todo o universo temático. As três implementações de mean reversion na biblioteca:
1. Bollinger de média plana (a versão de manual, arquivo mean_reversion.py)
A referência é uma média móvel simples de 20 períodos. Bandas em ±2 desvios padrão. Entradas long num toque da banda inferior, saída na SMA. A hipótese implícita: a SMA é o valor justo. A falha: em qualquer nome em tendência sustentada, a SMA deriva para cima mas a estratégia ainda a trata como referência plana — a banda superior é tocada repetidamente e produz nada, a banda inferior é tocada durante pullbacks saudáveis e produz entradas de faca caindo.
2. Canal de regressão (a versão adaptativa, arquivo regression_channel_mr.py)
A referência é uma regressão linear ajustada nos últimos 40 candles. Bandas em ±2 × erro padrão dos resíduos. A adição-chave: fade a banda inferior apenas se a inclinação da regressão for não-negativa. Em outras palavras: não fade uma tendência de baixa. O canal se adapta à inclinação da tendência, então pode tradear reversão ao longo de uma tendência sem ser whipsawed pela tendência em si.
3. Cesta Fibonacci curada (a versão cesta, arquivo fib_mean_reversion.py)
A referência é um nível-chave histórico curado pelo usuário — um por ticker, escolhido a mão no chart diário. Entradas long num toque dentro de ±2,5% do nível depois de vir de fora da banda. Stop -10%, take-profit +12%, time exit 20 candles. Rodada numa cesta de 48 tickers espalhados em 12 temas. Coberta em profundidade em nosso artigo de retracement de Fibonacci — é a mesma classe de mean reversion com uma referência curada em vez de calculada.
Essas três flavors discordam em cada decisão de design: média plana vs adaptativa à inclinação vs nível escolhido a mão, bandas estatísticas vs bandas percentuais, sem filtro de tendência vs filtro de inclinação vs filtro nível-tema. Os resultados walk-forward discordam tão acentuadamente quanto.
O leaderboard — 35 nomes, 2 anos, timeframe 1 hora
O universo de 35 tickers IBKR cobre a mesma estrutura temática que a cesta Fibonacci — photonics, space, drones, nuclear, CPU bottleneck, AI inference, agentic AI, AI utility, AI power, mais os large caps vencedores seculares. O sweep classifica cada par (ticker, estratégia) como ROBUST (ambas as janelas walk-forward positivas e significativas), STABLE (positivas mas desiguais), ou LUMPY (uma janela carrega o resultado inteiro).
| Estratégia | ROBUST | STABLE | LUMPY |
| --- | --- | --- | --- |
| regression_channel_mr | 22 | 7 | 3 |
| ema_crossover (trend follower, para referência) | 15 | 7 | 2 |
| keltner_breakout | 8 | 2 | 3 |
| adaptive | 8 | 2 | 2 |
| mean_reversion (Bollinger média plana) | 1 | 0 | 0 |
| macd_adx | 1 | 1 | 3 |
O dado mais importante. Duas estratégias na mesma classe — ambas mean-revertendo a uma referência — produzem 22 classificações ROBUST contra 1. A diferença não é o conceito de mean reversion. É se a referência em si pode derivar.
Os 22 nomes ROBUST regression_channel_mr: $AAOI, $AEHR, $ALAB, $AMKR, $ASTS, $AVGO, $BE, $BKSY, $CIFR, $CRDO, $DOCN, $GEV, $INTC, $IREN, $LITE, $NBIS, $OKLO, $ONDS, $RKLB, $UMAC, $UUUU, $VST.
Mapeie-os na taxonomia de temas da QA e o padrão é o mesmo que a cesta Fibonacci encontrou: 9 dos mesmos grupos temáticos voláteis dominam — photonics, space, drones, nuclear, CPU bottleneck, AI inference, agentic AI, AI utility, AI power. Duas estratégias independentes, dois backtests independentes, mesma classe de nome vencedora. Isso não é coincidência; é a propriedade subjacente desses nomes.
Top 5 single-ticker por P&L total 2 anos em regression_channel_mr:
| Ticker | P&L 2y completo | P&L WF1 | P&L WF2 | | --- | --- | --- | --- | | $CIFR | US$302K | US$103K | US$98K | | $BE | US$270K | US$66K | US$126K | | $ONDS | US$247K | US$48K | US$126K | | $AAOI | US$246K | US$71K | US$98K | | $ASTS | US$204K | US$57K | US$91K |
Todos os cinco estão divididos entre ambas as janelas walk-forward — nenhuma janela faz todo o trabalho. Esse é o conteúdo empírico da classificação ROBUST.
Por que o canal de regressão vence
A implementação do canal de regressão faz três coisas que a versão de média plana não faz:
Referência adaptativa à inclinação. A linha de regressão se move com a tendência. Em $AVGO em 2024-2025, a linha teve uma inclinação positiva significativa em quase toda a janela 2 anos — a banda inferior acompanhou o nível natural de pullback da tendência, não uma horizontal plana que não havia sido tocada em um ano.
Filtro não-fade-a-tendência-de-baixa. Aceita toques da banda inferior apenas quando a inclinação é não-negativa. Essa única regra mata o modo de falha de faca caindo que condena a versão de média plana em qualquer drawdown sustentado.
Saída no centerline. Take-profit na linha de regressão, não na banda oposta. Metade do trabalho é feita quando o preço retorna ao valor justo; exigir o ida-e-volta completo de mean reversion deixa dinheiro na mesa e expõe a posição à próxima onda de ruído.
A única entrada ROBUST da versão de média plana — $KTOS — é um nome que oscila num range aproximadamente plano pela janela 2 anos completa. A hipótese de média plana está aproximadamente correta para esse único ticker. Em qualquer outro lugar, não está.
Onde mean reversion falha — cada flavor
O modo de falha compartilhado é o mesmo que o artigo Fibonacci identificou. Tendenciais seculares atravessam toda referência. Em $NVDA, $TSLA, $AMZN, $ASML, $PLTR, $CRWD, $SNOW, cada variante de mean reversion que testamos classificou LUMPY ou pior. A narrativa é direta: quando uma ação imprime máximas mais altas através de cada nível por 12 meses consecutivos, cada versão de mean reversion é bullish cedo demais e sangra.
Isso não é uma falha da mean reversion. É a expressão inversa de por que o trend-following existe. O universo temático se divide limpo em dois tipos de regime:
- Mean-reverters temáticos voláteis (os 22 nomes ROBUST) — a tendência não é dominante, o ruído é. Fade o ruído.
- Monstros de tendência secular (os large caps vencedores AI) — a tendência domina o ruído. Siga a tendência, não a fade.
Os 15 nomes onde ema_crossover (um trend follower) classificou ROBUST se sobrepõem com a lista canal de regressão em 9 nomes. Esse é outro ponto estrutural: em nomes temáticos voláteis, ambas as direções de estratégia podem funcionar — timing diferente, perfil de drawdown diferente, mas ambas extraem edge. Nos tendenciais seculares, só trend-following funciona. A assimetria te diz em qual classe de nome você está olhando.
Cesta vs per-ticker — dois jogos diferentes
A cesta Fibonacci e o sweep canal de regressão jogam jogos diferentes. Vale a pena ser explícito:
- A cesta Fibonacci roda um nível curado por ticker em 48 tickers como cesta diversificada. O número PF 1,76 / Sharpe 1,42 é um resultado nível-cesta — o ticker médio contribui uma fatia pequena e ruidosa; a cesta suaviza o ruído. A tese implícita: diversificação entre temas faz tanto trabalho quanto a regra de entrada.
- O sweep canal de regressão roda uma estratégia configurável por ticker, walk-forward validada por ticker. A contagem de 22 ROBUST é per-ticker — cada nome carrega seu próprio PF, Sharpe, drawdown. A tese implícita: um ticker individual tem estrutura mean-revertente suficiente para que uma estratégia ajustada a ele standalone produza edge real.
Ambas podem ser verdade; estão respondendo perguntas diferentes. A resposta da cesta é: "se quero uma pequena sleeve de mean reversion num portfólio, qual é uma forma robusta de construí-la?" A resposta per-ticker é: "se estou tradeando especificamente a ação $X, mean reversion é um edge viável?" Sleeve diferente, sizing diferente, perfil de risco diferente.
Como aplicar isso
Se mean reversion é o ângulo que você quer expressar, a versão empiricamente apoiada é:
- Escolha um nome dos grupos temáticos voláteis. Os 9 temas que dominaram tanto a cesta Fibonacci quanto o sweep canal de regressão são os mesmos: photonics, space, drones, nuclear, CPU bottleneck, AI inference, agentic AI, AI utility, AI power. A página /stocks/<ticker> mostra a qual tema cada nome pertence.
- Não use uma referência de média plana. Uma SMA de 20 períodos com múltiplos de banda fixos é a versão de manual e não sobrevive ao walk-forward neste universo. Uma regressão linear com filtro de inclinação, sim.
- Adicione uma regra não-fade-a-tendência-de-baixa. Qualquer que seja sua referência, aceite toques da banda inferior apenas quando a tendência subjacente for não-negativa. Essa única regra está fazendo trabalho significativo no resultado 22-ROBUST.
- Saia na referência, não na banda oposta. Metade do ida-e-volta é a maior parte do edge; a segunda metade é exposição a ruído fresco.
- Não aplique isso em tendenciais seculares. Nomes classe $NVDA precisam de uma estratégia de tendência. Mean reversion neles é um sangramento de 12 meses.
Para execução US-retail na cesta de nomes onde isso funciona, o broker mais limpo para ações fracionárias e dados horários confiáveis é Interactive Brokers — /stack/ibkr cobre a mecânica de acesso. Alertas ao vivo quando o canal de regressão dispara (ou quando um toque Fibonacci curado bate) fazem parte de /pro.
Para a implementação irmã Fibonacci curada, veja O que é retracement de Fibonacci? — mesma classe, referência diferente, timeframe diferente. Para a metodologia de correlação mais ampla da QA — que alimenta as classificações de tema usadas aqui — veja Por que correlação > narrativa em investimento temático.
O que observar
- Cadência de re-validação. O sweep é re-rodado aproximadamente trimestralmente. Um breakdown persistente em qualquer um dos 22 nomes ROBUST encolheria a lista ROBUST e dispararia um sweep de parâmetros na estratégia.
- Mudança de regime. Mean reversion sub-performa em tendências unidirecionais fortes em todo o mercado. O backtest 2 anos cobre a janela do fim de 2024 a meados de 2026, que incluiu regimes tanto tendenciais quanto chops. Uma tape multi-trimestre de baixa vol e tendência testaria o filtro de inclinação do canal de regressão da forma que 2017 testou toda estratégia MR anterior.
- A leitura classe-oposta. Quando
ema_crossovereregression_channel_mrse sobrepõem num nome, ambas as classes funcionam em timings diferentes. Quando deixam de se sobrepor — um nome cai da lista tendência mas fica na lista mean reversion, ou vice-versa — o regime nesse ticker mudou, e esse é o indicador antecedente para re-classificação. - A baseline de média plana. Rastrear a versão
mean_reversion(Bollinger) é um canário útil: quando mais de um ou dois tickers começam a produzir edge com a hipótese de média plana, o mercado está num regime de baixa-tendência onde quase qualquer referência funciona. Quando a contagem fica em 1, o filtro de inclinação está fazendo o trabalho. - Correlação nível-bolha. Se a bolha de um tema quebra a correlação — significando que os 4 tickers param de tradear como cluster — a matemática de diversificação da cesta enfraquece e o edge per-ticker tem que carregar mais peso.
Dados ao vivo na cesta: /stocks/rklb, /stocks/aaoi, /stocks/cifr — três dos 22 nomes ROBUST, cada página de ticker mostra a posição ao vivo do canal de regressão e o nível Fibonacci curado lado a lado.
Contexto de bolha: /bubbles/photonics e os outros 8 clusters temáticos validados — os mesmos 9 temas que a cesta Fibonacci e o sweep canal de regressão ambos concordam.
Leitura adjacente: O que é retracement de Fibonacci? para a implementação irmã de referência curada, e Por que correlação > narrativa em investimento temático para a metodologia taxonomia-de-bolha que alimenta a seleção de universo aqui.
QuantAbundancia é pesquisa educacional. Nada aqui é conselho de investimento. Veja /disclosures.
Related bubbles
Get the daily digest.
One email a day · alerts + bubble shifts + new research. Free during beta.
No spam. One email per day max. Telegram alerts coming with the paid tier.