HistoricVolatility
HistoricVolatility[N](price) in ProBuilder geeft de geannualiseerde historische volatiliteit, de gerealiseerde variabiliteit van logaritmische koersveranderingen over de laatste N bars.
Syntaxis
HistoricVolatility[N](price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | geen | Aantal bars in het meetvenster, gewoonlijk 10, 20 of 100. |
price | prijsbron | close | Gemeten reeks, bijvoorbeeld close, open, high, of low. |
Formule
r = LOG(price / price[1]) // logarithmic bar-to-bar return
HistoricVolatility = dispersion of r over N bars, annualized, in percentDe berekening neemt de veranderingen van bar tot bar in de reeks, past de natuurlijke (Napieriaanse) logaritme toe om hun variantie te stabiliseren, meet hun spreiding over de N-bar venster, en schaalt het resultaat naar een percentage op jaarbasis.
Hoe het werkt
Historische, of gerealiseerde, volatiliteit antwoordt op een eenvoudige vraag: hoe variabel zijn de rendementen van dit instrument in het recente verleden werkelijk geweest. Er wordt met logaritmische rendementen gewerkt in plaats van met ruwe verschillen, omdat die opwaartse en neerwaartse bewegingen symmetrisch en vergelijkbaar maken over koersniveaus heen. Hun spreiding over het venster wordt vervolgens geëxtrapoleerd naar een jaarcijfer, zodat waarden van verschillende tijdframes een gemeenschappelijke eenheid hebben, procent per jaar.
Het resultaat kijkt terug en is feitelijk, volledig berekend uit waargenomen koersen. Dat onderscheidt het van implied volatility, die uit optiepremies wordt gehaald en de verwachting van de markt over toekomstige beweging weergeeft. De twee lopen vaak uiteen, en het verschil tussen beide wordt zelf verhandeld op de optiemarkten.
Binnen strategieën dient historische volatiliteit als regimemaatstaf. De huidige waarde vergelijken met het eigen langetermijngemiddelde classificeert de markt als rustig of turbulent, wat instappen kan filteren, position sizes kan schalen of kan wisselen tussen strategievarianten.
Voorbeelden
Voorbeeld 1, Volatiliteitsregime met richtingsbias (Indicator)
// 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, bullishMarkeert bullish of bearish omstandigheden alleen wanneer de 10-periode volatiliteit boven het 100-periode gemiddelde ligt, en gebruikt daarna de koers tegen een kort gemiddelde voor de richting. Rustige markten geven geen signaal.
Voorbeeld 2, Screener voor compressie bij lage volatiliteit (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")Geeft instrumenten waarvan de gerealiseerde volatiliteit over 20 bars minder is dan de helft van het gemiddelde over 100 bars, een compressieconditie die vaak voorafgaat aan range-expansie.
Voorbeeld 3, Volatiliteitsfilter voor een breakout-systeem (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
ENDIFBlokkeert nieuwe breakout-instappen zodra de volatiliteit over 20 bars meer dan twee keer het langetermijngemiddelde is, zodat instappen in chaotische omstandigheden worden vermeden.
Interpretatie
| Stand | Betekenis |
|---|---|
| Laag en dalend | Rustig regime, ranges comprimeren. Breakout-traders letten op expansie, verkopers van opties zien goedkope beweging. |
| Stijgend | De beweging trekt aan, vaak rond nieuws, breakouts of trendversnellingen. |
| Hoog en verhoogd | Turbulent regime, ruimere stops en kleinere posities zijn typische aanpassingen. |
Volatiliteit is richtingneutraal: zowel een crash als een verticale rally verhoogt die. Ze clustert ook, volatiele periodes volgen doorgaans op volatiele periodes, en ze keert over langere horizonnen terug naar het gemiddelde, extremen in beide richtingen normaliseren doorgaans. De huidige waarde vergelijken met de eigen historie van het instrument is informatiever dan welke vaste drempel ook, omdat normale niveaus sterk verschillen tussen markten.
Veelvoorkomende fouten en valkuilen
- Historische volatiliteit verwarren met implied volatility.
HistoricVolatilityrapporteert wat er al in de koersreeks is gebeurd. Uit opties afgeleide verwachtingen van toekomstige beweging zijn een andere grootheid en kunnen aanzienlijk afwijken. - Richting in de waarde lezen. Hoge volatiliteit betekent niet dat de koersen dalen, ook al gaan die twee in aandelen vaak samen. De maatstaf is symmetrisch ten opzichte van de richting.
- Vaste drempels over instrumenten heen. Een geannualiseerde 20 procent is rustig voor een cryptovaluta en extreem voor een obligatiefuture. Normaliseer tegen de eigen volatiliteitshistorie van het instrument, zoals in de voorbeelden.
- Venster te kort. Zeer kleine
Nwaarden maken de schatting onrustig en laten die door losse bars domineren. De stabiliteit verbetert duidelijk vanaf ongeveer 20 bars.
Gerelateerde instructies
Volatility, verwante ingebouwde maatstaf voor volatiliteit.STD, standaarddeviatie van een reeks over N bars.AverageTrueRange, op de range gebaseerde volatiliteit in koerseenheden.BollingerBandWidth, bandbreedte als proxy voor volatiliteit.TR, true range van een enkele bar.LOG, natuurlijke logaritme toegepast op de koersveranderingen.Average, gebruikt om basislijnen van volatiliteit-van-volatiliteit te bouwen.MassIndex, indicator voor range-expansie.