Σ
SDCalc
IntermédioAplicações·12 min

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

Aprende 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 Python e aplicações reais em finanças.

O que é o Desvio-Padrão Móvel?

O desvio-padrão móvel (também chamado DP rolling ou volatilidade histórica) calcula o desvio-padrão sobre uma janela deslizante de tempo. Ao contrário do desvio-padrão estático que utiliza todos os dados históricos, o DP móvel concentra-se nas observações recentes, sendo essencial para detetar alterações na volatilidade ao longo do tempo.

Esta técnica é fundamental nos mercados financeiros, onde a volatilidade não é constante mas muda ao longo do tempo. Uma ação pode estar calma durante meses e depois tornar-se subitamente muito volátil durante anúncios de resultados ou crises de mercado. O DP móvel capta estas dinâmicas em tempo real.

Porquê 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 a história distante. O DP móvel fornece-te uma medida de risco atual e acionável que se adapta às condições de mercado em mudança.

Como Calcular o Desvio-Padrão Móvel

Para cada ponto no tempo, calcula o desvio-padrão dos n pontos de dados anteriores. À medida que avanças, a janela desliza, utilizando sempre os n valores mais recentes. Isto cria uma série temporal de estimativas de volatilidade.

1

Definir a Janela

Escolhe quantos períodos (e.g., 20 dias) incluir em cada cálculo.
2

Calcular o Primeiro DP

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

Deslizar a Janela

Avança um período, retira o valor mais antigo, adiciona o mais recente.
4

Repetir

Continua até ao final da 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()

Repara que os primeiros (janela-1) valores serão NaN uma vez que precisas de pelo menos n observações para calcular. Na prática, podes utilizar o parâmetro min_periods para começar a calcular mais cedo com menos observações.

Escolher a Dimensão Certa da Janela

A dimensão da janela cria um compromisso entre reatividade e estabilidade:

  • Janelas curtas (5-10 dias):Reagem rapidamente a alterações de volatilidade mas são ruidosas e podem produzir sinais falsos
  • Janelas médias (20-30 dias):Equilibram reatividade 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 a detetar mudanças de regime; boas para análise de tendências

Dica Profissional

Utiliza múltiplas janelas em simultâneo. Compara DPs móveis de 10, 20 e 50 dias para compreender tanto as flutuações de curto prazo como as tendências de volatilidade de longo prazo. A divergência entre eles pode sinalizar mudanças de regime.

Aplicações no Mundo Real

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

  • Gestão de Risco:Calcular o Value at Risk (VaR) utilizando volatilidade recente em vez de médias históricas
  • Avaliação de Opções:Estimar parâmetros de volatilidade implícita para o modelo Black-Scholes e outros
  • Gestão de Carteiras:Ajustar dimensões de posições com base na volatilidade atual; reduzir exposição quando a volatilidade aumenta
  • Deteção de Anomalias:Identificar períodos invulgares quando a volatilidade atual se 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 Explicadas

As Bandas de Bollinger são a aplicação mais famosa do desvio-padrão móvel. Desenvolvidas por John Bollinger na década de 1980, criam um envelope dinâmico em torno 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 alargam durante períodos voláteis e contraem durante períodos calmos. Os traders utilizam-nas para:

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

Agrupamento de Volatilidade

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

O DP móvel revela este agrupamento visualmente. Quando traças a volatilidade rolling ao longo do tempo, verás regimes claros de alta e baixa volatilidade em vez de flutuações aleatórias. Isto tem implicações profundas:

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

Ressalva Importante

Embora a volatilidade se agrupe, as mudanças de regime podem ser súbitas e dramáticas. Notícias importantes, crashes de mercado ou anúncios de políticas podem alterar regimes de volatilidade instantaneamente. O DP móvel ficará sempre atrasado nestas mudanças — quando refletir a nova realidade, o regime pode já ter mudado novamente.