HistoricVolatility
HistoricVolatility[N](price) in ProBuilder restituisce la volatilità storica annualizzata, la variabilità realizzata delle variazioni logaritmiche di prezzo sugli ultimi N bar.
Sintassi
HistoricVolatility[N](price)Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
N | intero | nessuno | Numero di bar nella finestra di misurazione, comunemente 10, 20 o 100. |
price | fonte di prezzo | chiusura | Serie misurata, per esempio close, open, high, o low. |
Formula
r = LOG(price / price[1]) // logarithmic bar-to-bar return
HistoricVolatility = dispersion of r over N bars, annualized, in percentIl 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)
// 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, bullishSegnala 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)
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)
// 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
ENDIFBlocca 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
| Lettura | Significato |
|---|---|
| Bassa e in calo | Regime tranquillo, i range si comprimono. I trader di breakout attendono l'espansione, i venditori di opzioni vedono movimento a basso prezzo. |
| In aumento | Il movimento sta aumentando, spesso in prossimità di notizie, breakout o accelerazioni di trend. |
| Alta ed elevata | Regime 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.
HistoricVolatilityriporta 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
Nrendono la stima irregolare e dominata da singoli bar. La stabilità migliora notevolmente da circa 20 bar in su.
Istruzioni correlate
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.