Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

HistoricVolatility

HistoricVolatility[N](price) in ProBuilder restituisce la volatilità storica annualizzata, la variabilità realizzata delle variazioni logaritmiche di prezzo sugli ultimi N bar.

Sintassi

probuilder
HistoricVolatility[N](price)

Parametri

NomeTipoPredefinitoDescrizione
NinteronessunoNumero di bar nella finestra di misurazione, comunemente 10, 20 o 100.
pricefonte di prezzochiusuraSerie misurata, per esempio close, open, high, o low.

Formula

codice
r = LOG(price / price[1])          // logarithmic bar-to-bar return
HistoricVolatility = dispersion of r over N bars, annualized, in percent

Il calcolo prende le variazioni della serie da barra a barra, applica il logaritmo naturale (neperiano) per stabilizzarne la varianza, misura la loro dispersione sulle N-bar, e scala il risultato a una percentuale annualizzata.

Come funziona

La volatilità storica, o realizzata, risponde a una domanda semplice: quanto sono stati effettivamente variabili i rendimenti di questo strumento nel recente passato. Si usano i rendimenti logaritmici invece delle differenze grezze perché rendono i movimenti al rialzo e al ribasso simmetrici e confrontabili tra livelli di prezzo diversi. La loro dispersione sulla finestra viene poi estrapolata a un dato annuale, così che le letture provenienti da timeframe diversi condividano un'unità comune, percento per anno.

Il risultato è retrospettivo e fattuale, calcolato interamente dai prezzi osservati. Questo lo distingue dalla volatilità implicita, che viene estratta dai premi delle opzioni e riflette l'aspettativa del mercato sul movimento futuro. Le due spesso divergono, e il divario tra loro è esso stesso oggetto di trading nei mercati delle opzioni.

All'interno delle strategie, la volatilità storica funge da misura di regime. Confrontare la lettura corrente con la sua media di lungo periodo classifica il mercato come tranquillo o turbolento, cosa che può filtrare gli ingressi, scalare le position size o commutare tra varianti della strategia.

Esempi

Esempio 1, Regime di volatilità con bias direzionale (Indicatore)

probuilder
// 10-period historical volatility of the close
i1 = HistoricVolatility[10](close)

// Long-term average of the volatility itself
i2 = average[100](i1)

// Short-term price average for direction
i3 = average[10](close)

// Signals: elevated volatility plus price position give the bias
IF (i1 > i2 AND Close < i3) THEN
  bearish = -1
  bullish = 0
ELSIF (i1 > i2 AND Close > i3) THEN
  bearish = 0
  bullish = 1
ELSE
  bearish = 0
  bullish = 0
ENDIF

RETURN bearish, bullish

Segnala condizioni rialziste o ribassiste solo quando la volatilità a 10 periodi supera la sua media a 100 periodi, poi usa il prezzo rispetto a una media breve per la direzione. I mercati tranquilli non restituiscono alcun segnale.

Esempio 2, Screener di compressione a bassa volatilità (ProScreener)

probuilder
hv    = HistoricVolatility[20](close)
hvAvg = Average[100](hv)
// Current volatility well below its own long-term norm
SCREENER[hv < hvAvg * 0.5](hv AS "Hist Vol 20")

Restituisce gli strumenti la cui volatilità realizzata a 20 bar è inferiore alla metà della sua media a 100 bar, una condizione di compressione che spesso precede l'espansione del range.

Esempio 3, Filtro di volatilità per un sistema breakout (ProBacktest)

probuilder
// Trade breakouts only while realized volatility is not extreme
hv     = HistoricVolatility[20](close)
hvCap  = Average[100](hv) * 2
level  = Highest[20](high)[1]

IF NOT LongOnMarket THEN
  IF hv < hvCap AND close > level THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ELSE
  IF close < Average[20](close) THEN
    SELL AT MARKET
  ENDIF
ENDIF

Blocca i nuovi ingressi in breakout ogni volta che la volatilità a 20 bar supera il doppio della sua media di lungo periodo, evitando ingressi in condizioni disordinate.

Interpretazione

LetturaSignificato
Bassa e in caloRegime tranquillo, i range si comprimono. I trader di breakout attendono l'espansione, i venditori di opzioni vedono movimento a basso prezzo.
In aumentoIl movimento sta aumentando, spesso in prossimità di notizie, breakout o accelerazioni di trend.
Alta ed elevataRegime turbolento, stop più ampi e posizioni più piccole sono gli aggiustamenti tipici.

La volatilità è neutrale rispetto alla direzione: sia un crollo sia un rally verticale la fanno aumentare. Tende anche a formare cluster, i periodi volatili tendono a seguire periodi volatili, e torna verso la media su orizzonti più lunghi, gli estremi in entrambe le direzioni tendono a normalizzarsi. Confrontare il valore corrente con lo storico dello strumento stesso è più informativo di qualsiasi soglia fissa, perché i livelli normali differiscono ampiamente tra i mercati.

Errori e insidie comuni

  • Confondere la volatilità storica con quella implicita. HistoricVolatility riporta ciò che è già avvenuto nella serie dei prezzi. Le aspettative di movimento futuro derivate dalle opzioni sono una quantità diversa e possono divergere in modo sostanziale.
  • Leggere una direzione nel valore. Una volatilità elevata non significa prezzi in calo, anche se le due cose spesso coincidono nelle azioni. La misura è simmetrica rispetto alla direzione.
  • Soglie fisse su strumenti diversi. Un 20 percento annualizzato è tranquillo per una criptovaluta ed estremo per un future obbligazionario. Normalizza rispetto allo storico di volatilità dello strumento stesso, come negli esempi.
  • Finestra troppo breve. Molto piccolo N rendono la stima irregolare e dominata da singoli bar. La stabilità migliora notevolmente da circa 20 bar in su.
  • Volatility, misura di volatilità integrata correlata.
  • STD, deviazione standard di una serie su N bar.
  • AverageTrueRange, volatilità basata sul range in unità di prezzo.
  • BollingerBandWidth, ampiezza delle bande come proxy della volatilità.
  • TR, true range di una singola bar.
  • LOG, logaritmo naturale usato sulle variazioni di prezzo.
  • Average, usato per costruire baseline di volatilità della volatilità.
  • MassIndex, indicatore di espansione del range.