HistoricVolatility
HistoricVolatility[N](price) en ProBuilder renvoie la volatilité historique annualisée, la variabilité réalisée des variations logarithmiques de prix sur les N derniers bars.
Syntaxe
HistoricVolatility[N](price)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
N | entier | aucun | Nombre de bars dans la fenêtre de mesure, couramment 10, 20 ou 100. |
price | source de prix | close | Série mesurée, par exemple close, open, high, ou low. |
Formule
r = LOG(price / price[1]) // logarithmic bar-to-bar return
HistoricVolatility = dispersion of r over N bars, annualized, in percentLe calcul prend les variations de bar à bar de la série, applique le logarithme naturel (népérien) pour stabiliser leur variance, mesure leur dispersion sur les N-bar, et ramène le résultat à un pourcentage annualisé.
Comment ça marche
La volatilité historique, ou réalisée, répond à une question simple : à quel point les rendements de cet instrument ont-ils réellement varié sur le passé récent. Les rendements logarithmiques sont utilisés plutôt que les différences brutes car ils rendent les mouvements à la hausse et à la baisse symétriques et comparables d'un niveau de prix à l'autre. Leur dispersion sur la fenêtre est ensuite extrapolée en un chiffre annuel afin que les lectures issues de différentes unités de temps partagent une unité commune, le pourcentage par an.
Le résultat est rétrospectif et factuel, calculé entièrement à partir des prix observés. Cela le distingue de la volatilité implicite, qui est extraite des primes d'options et reflète l'anticipation du marché quant aux mouvements futurs. Les deux divergent souvent, et l'écart entre elles est lui-même tradé sur les marchés d'options.
Au sein des stratégies, la volatilité historique sert de mesure de régime. Comparer la lecture courante à sa propre moyenne de long terme classe le marché comme calme ou turbulent, ce qui peut filtrer les entrées, ajuster les position sizes, ou basculer entre des variantes de stratégie.
Exemples
Exemple 1, Régime de volatilité avec biais directionnel (Indicateur)
// 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, bullishSignale des conditions haussières ou baissières uniquement quand la volatilité à 10 périodes dépasse sa moyenne à 100 périodes, puis utilise le prix face à une moyenne courte pour la direction. Les marchés calmes ne renvoient aucun signal.
Exemple 2, Screener de compression en faible 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")Renvoie les instruments dont la volatilité réalisée à 20 bars est inférieure à la moitié de sa moyenne à 100 bars, une condition de compression qui précède souvent une expansion du range.
Exemple 3, Filtre de volatilité pour un système de 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
ENDIFBloque les nouvelles entrées en breakout dès que la volatilité à 20 bars dépasse le double de sa moyenne de long terme, ce qui évite les entrées dans des conditions désordonnées.
Interprétation
| Lecture | Signification |
|---|---|
| Basse et en baisse | Régime calme, les ranges se compressent. Les traders de breakout guettent l'expansion, les vendeurs d'options voient un mouvement bon marché. |
| En hausse | Le mouvement s'accélère, souvent autour de news, de breakouts ou d'accélérations de tendance. |
| Haute et élevée | Régime turbulent, des stops plus larges et des positions plus petites sont des ajustements typiques. |
La volatilité est neutre en direction : un krach et un rallye vertical l'augmentent tous les deux. Elle se regroupe aussi en grappes, les périodes volatiles tendent à suivre les périodes volatiles, et revient vers sa moyenne sur des horizons plus longs, les extrêmes dans un sens comme dans l'autre tendent à se normaliser. Comparer la valeur courante avec l'historique propre à l'instrument est plus instructif que n'importe quel seuil fixe, car les niveaux normaux diffèrent largement d'un marché à l'autre.
Erreurs et pièges courants
- Confondre volatilité historique et volatilité implicite.
HistoricVolatilityrapporte ce qui s'est déjà produit dans la série de prix. Les anticipations de mouvement futur dérivées des options sont une grandeur différente et peuvent diverger fortement. - Lire une direction dans la valeur. Une volatilité élevée ne signifie pas des prix en baisse, même si les deux coïncident souvent sur les actions. La mesure est symétrique par rapport à la direction.
- Seuils fixes d'un instrument à l'autre. Un taux annualisé de 20 pour cent est calme pour une cryptomonnaie et extrême pour un future obligataire. Normalisez par rapport à l'historique de volatilité propre à l'instrument, comme dans les exemples.
- Fenêtre trop courte. Très petites
Nvaleurs rendent l'estimation instable et dominée par des bars isolés. La stabilité s'améliore nettement à partir d'environ 20 bars.
Instructions liées
Volatility, mesure de volatilité intégrée apparentée.STD, écart type d'une série sur N bars.AverageTrueRange, volatilité basée sur le range, en unités de prix.BollingerBandWidth, largeur de bande comme approximation de la volatilité.TR, true range d'un seul bar.LOG, logarithme népérien appliqué aux variations de prix.Average, utilisé pour construire des références de volatilité de la volatilité.MassIndex, indicateur d'expansion du range.