Procedura Forecast Volatilita

Quick Reference

Procedura standard per calcolare previsioni di volatilita usando blend di stime short-term e long-term.

Overview

Obiettivo: Ottenere stima accurata volatilita futura per position sizing.

Metodo: Combinare EWMA recente con media storica long-term.

Step-by-Step Procedure

Step 1: Calcola EWMA Short-Term

Lambda ottimale: 0.06061 (span 32 giorni)

σ²_recent = λ × (r_t - μ)² + (1 - λ) × σ²_t-1

Input: - Daily returns ultimi 32-64 giorni - Lambda = 0.06061

Output: σ_recent (annualizzato)

Step 2: Calcola Media Long-Term

Lookback: 250-500 giorni (1-2 anni)

σ_long = √[Σ(r_i - μ)² / N]

Input: - Daily returns ultimi 250+ giorni - Standard deviation semplice

Output: σ_long (annualizzato)

Step 3: Blend Estimates

Pesi raccomandati: 70% short-term, 30% long-term

σ_forecast = 0.7 × σ_recent + 0.3 × σ_long

Razionale: - Short-term cattura cambiamenti recenti - Long-term previene over-reaction a spike

Step 4: Floor/Cap (Optional)

Evita estremi irrealistici:

σ_floor = 0.5 × σ_historical_average
σ_cap = 3.0 × σ_historical_average

σ_final = max(σ_floor, min(σ_forecast, σ_cap))

Protezione contro forecast troppo bassi/alti.

Esempio Pratico

Scenario: S&P 500 Future

Date: Oggi Recent volatility: σ_recent = 25% (spike recente) Long-term average: σ_long = 15%

Calcolo:

σ_forecast = 0.7 × 25% + 0.3 × 15%
           = 17.5% + 4.5%
           = 22%

Interpretazione: Volatilita elevata ma non estrema come spike suggerisce.

Position sizing: Usa 22% per calcolare contratti.

Confronto Metodi

Solo recent (25%): Position troppo piccola (over-cautious) Solo long-term (15%): Position troppo grande (risky in clima volatile) Blend (22%): Bilanciato

Frequency di Aggiornamento

Daily Update

Consigliato per active trading: - Calcola σ_recent ogni giorno - Blend con σ_long - Adjust positions se cambio > 10%

Weekly Update

Sufficiente per slower strategies: - Update ogni lunedi - Meno transactions - Slightly delayed reaction

Alternative Approaches

Simple EWMA (No Blend)

Pros: Semplice, responsive Cons: Over-reacts a spike

Usa quando: High-frequency trading, need responsiveness

Pure Historical

Pros: Stabile, smoothed Cons: Slow to adapt

Usa quando: Very long-term investing, stability priority

GARCH Models

Pros: Statistically sophisticated Cons: Complesso, overfitting risk

Usa quando: Professional setup, large data

Volatility Regimes

Low Volatility (σ < 12%)

Caratteristiche: - Mercato calmo - Forecast stabile - Blend weights = 70/30 ok

Normal Volatility (σ = 12-25%)

Caratteristiche: - Mercato standard - Forecast blend funziona bene - Use standard 70/30

High Volatility (σ > 25%)

Caratteristiche: - Crisis/shock - Consider adjusting blend a 80/20 (piu weight su recent) - Ridurre leverage

Validation

Check Forecast Quality

Ogni trimestre, verifica accuracy:

Actual σ vs Forecast σ

Se forecast sistematicamente alto/basso: Adjust blend weights.

Example Analysis

Q1 results: - Forecast medio: 18% - Actual medio: 20% - Underestimating → increase short-term weight a 75%

Common Adjustments

Per Asset Class

Equities: 70/30 blend (standard) FX: 60/40 (piu stable long-term mean) Commodities: 75/25 (piu volatile, responsive) Bonds: 65/35 (mean-reverting)

Per Market Conditions

Trending: 70/30 (standard) Range-bound: 60/40 (piu weight su long-term) Crisis: 80/20 (follow recent spike)

Integration con Position Sizing

Formula finale:

Contratti = (Capital × Risk Target%) / (Price × Multiplier × σ_forecast × FX)

σ_forecast from this procedure.

Data Requirements

Minimum Data

Short-term: 32 giorni (1 span) Long-term: 250 giorni (1 anno) Total minimum: 250 giorni

Optimal Data

Short-term: 64 giorni (2 span) Long-term: 500 giorni (2 anni) Total optimal: 500+ giorni

Automation

Daily Routine

1. Download yesterday's close
2. Calculate return: (Close_t / Close_t-1) - 1
3. Update EWMA: σ²_t = 0.06061 × r² + 0.93939 × σ²_t-1
4. Calculate σ_long from 250-day window
5. Blend: σ = 0.7 × σ_recent + 0.3 × σ_long
6. Update position sizing spreadsheet

Time required: 5-10 minuti manual, seconds automated.

Error Handling

Missing Data

Se gap in price data: - Use last available σ_forecast - Don't trade if gap > 5 giorni - Restart EWMA dopo gap

Outliers

Se return estremo (>5 std dev): - Verify data (error or real?) - If real: Include but monitor - Consider capping impact

Initial Period

First 32 days di trading: - EWMA non stabile yet - Use solo σ_long - Gradualmente increase EWMA weight

Monitoring

Red Flags

  • σ_forecast < 5%: Troppo basso, check data
  • σ_forecast > 100%: Troppo alto, check data
  • Sudden 3× jump: Verify non data error
  • Negative variance: Calculation error

Health Checks

Ogni mese: - Plot σ_forecast time series - Compare vs σ_long - Verify blend weights still appropriate

Errori Comuni

  • 100% weight su EWMA: Over-reacts a spike temporanei
  • 100% weight su long-term: Ignora cambiamenti regime
  • Lambda troppo alto (es. 0.3): Troppo smoothed, non responsive
  • Lambda troppo basso (es. 0.01): Troppo jumpy, instabile
  • No floor/cap: Forecast irrealistici in extremes
  • Update troppo raro: Positions non risk-adjusted correttamente
  • Ignorare regime changes: Blend fisso in tutti i contesti

Concetti Correlati

  • [[EWMA]] - metodo core per short-term estimate
  • [[Lambda Ottimale]] - parametro chiave (0.06061)
  • [[Blend Weights]] - pesi 70/30 per combination
  • [[Volatility Clustering]] - rationale per EWMA
  • [[Standard Deviation]] - base measurement
  • [[Position Sizing]] - usa σ_forecast come input