Σ
SDCalc
IntermediárioAplicações·12 min

Desvio Padrão Móvel para Séries Temporais

Aprenda a calcular e interpretar o desvio padrão móvel (rolling) para análise de séries temporais. Inclui Bandas de Bollinger, agrupamento de volatilidade, exemplos de código em Python e aplicações no mercado financeiro.

O que é Desvio Padrão Móvel?

O desvio padrão móvel (também chamado de DP rolling ou volatilidade histórica) calcula o desvio padrão sobre uma janela deslizante no tempo. Diferente do desvio padrão estático que usa todos os dados históricos, o DP móvel foca nas observações recentes, sendo essencial para detectar mudanças na volatilidade ao longo do tempo.

Essa técnica é fundamental nos mercados financeiros, onde a volatilidade não é constante, mas muda ao longo do tempo. Uma ação pode ficar calma por meses e depois se tornar altamente volátil durante anúncios de resultados ou crises de mercado. O DP móvel captura essa dinâmica em tempo real.

Por que o DP Móvel é Importante

O desvio padrão estático trata todos os dados históricos igualmente, mas a volatilidade recente frequentemente prevê melhor a volatilidade futura do que o histórico distante. O DP móvel oferece uma medida de risco atual e acionável que se adapta às condições mutáveis do mercado.

Como Calcular o Desvio Padrão Móvel

Para cada ponto no tempo, calcule o desvio padrão dos n pontos de dados anteriores. Conforme você avança, a janela desliza, sempre usando os n valores mais recentes. Isso cria uma série temporal de estimativas de volatilidade.

1

Defina Sua Janela

Escolha quantos períodos (ex.: 20 dias) incluir em cada cálculo.
2

Calcule o Primeiro DP

Calcule o desvio padrão dos primeiros n pontos de dados.
3

Deslize a Janela

Avance um período, descarte o valor mais antigo, adicione o mais recente.
4

Repita

Continue até o final da sua série de dados.
python
import pandas as pd
import numpy as np

# Load your time series data
df = pd.read_csv('stock_prices.csv')

# 20-day rolling standard deviation
df['rolling_std_20'] = df['returns'].rolling(window=20).std()

# Annualized volatility (assuming daily returns)
df['annualized_vol'] = df['rolling_std_20'] * np.sqrt(252)

# Multiple windows for comparison
df['rolling_std_10'] = df['returns'].rolling(window=10).std()
df['rolling_std_50'] = df['returns'].rolling(window=50).std()

Observe que os primeiros (janela-1) valores serão NaN, pois você precisa de pelo menos n observações para calcular. Na prática, você pode usar o parâmetro min_periods para começar a calcular mais cedo com menos observações.

Escolhendo o Tamanho da Janela

O tamanho da janela cria um trade-off entre responsividade e estabilidade:

  • Janelas curtas (5-10 dias):Reagem rapidamente a mudanças de volatilidade, mas são ruidosas e podem gerar sinais falsos
  • Janelas médias (20-30 dias):Equilibram responsividade com estabilidade; 20 dias é o padrão da indústria para Bandas de Bollinger
  • Janelas longas (50-100 dias):Suaves e estáveis, mas lentas para detectar mudanças de regime; boas para análise de tendências

Dica

Use múltiplos tamanhos de janela juntos. Compare DPs móveis de 10, 20 e 50 dias para entender tanto flutuações de curto prazo quanto tendências de volatilidade de longo prazo. Divergência entre eles pode sinalizar mudanças de regime.

Aplicações no Mundo Real

O desvio padrão móvel é amplamente utilizado em finanças e ciência de dados:

  • Gestão de Risco:Calcular Value at Risk (VaR) usando volatilidade recente em vez de médias históricas
  • Precificação de Opções:Estimar parâmetros de volatilidade implícita para Black-Scholes e outros modelos
  • Gestão de Portfólio:Ajustar tamanhos de posição com base na volatilidade atual; reduzir exposição quando a volatilidade dispara
  • Detecção de Anomalias:Identificar períodos incomuns quando a volatilidade atual desvia significativamente da média móvel
  • Análise Técnica:Bandas de Bollinger, Canais de Keltner e outros indicadores baseados em volatilidade

Bandas de Bollinger

As Bandas de Bollinger são a aplicação mais famosa do desvio padrão móvel. Desenvolvidas por John Bollinger nos anos 1980, elas criam um envelope dinâmico ao redor do preço que se adapta à volatilidade.

Bandas de Bollinger

Upper Band = SMA(20) + 2 × Moving SD(20) Lower Band = SMA(20) - 2 × Moving SD(20)

As bandas se alargam durante períodos voláteis e se estreitam durante períodos calmos. Traders usam isso para:

  • Identificar condições de sobrecompra/sobrevenda quando o preço toca as bandas
  • Detectar “squeezes” (baixa volatilidade) que frequentemente precedem rompimentos
  • Definir stop-losses dinâmicos baseados nas condições atuais do mercado

Agrupamento de Volatilidade

Um dos fatos empíricos mais importantes em finanças é que a volatilidade se agrupa — alta volatilidade tende a ser seguida por alta volatilidade, e baixa por baixa. Isso foi formalizado por Robert Engle (Prêmio Nobel 2003) no modelo ARCH.

O DP móvel revela esse agrupamento visualmente. Quando você plota a volatilidade rolling ao longo do tempo, verá regimes claros de alta e baixa volatilidade em vez de flutuações aleatórias. Isso tem implicações profundas:

  • Previsibilidade:A volatilidade de amanhã provavelmente será similar à de hoje — você pode antecipar o risco
  • Orçamento de Risco:Reduzir posições ao entrar em regimes de alta volatilidade
  • Seleção de Estratégia:Diferentes estratégias de trading funcionam melhor em diferentes ambientes de volatilidade

Ressalva Importante

Embora a volatilidade se agrupe, mudanças de regime podem ser súbitas e dramáticas. Grandes eventos noticiosos, crashes de mercado ou mudanças de política podem alterar o regime de volatilidade instantaneamente. O DP móvel sempre terá um atraso em relação a essas mudanças — quando ele refletir a nova realidade, o regime pode já ter mudado novamente.