Charts See the terminal

Historical Volatility

The standard deviation of recent bar-to-bar returns, scaled up to a yearly figure in percent, showing how much price has been moving regardless of direction.

Volatility Add to chart

Live Historical Volatility preview · BTC/USDT · Binance

What is Historical Volatility?

Historical Volatility measures how widely the close has been moving from bar to bar over the last 10 bars. It takes the percentage change between consecutive closes, measures how spread out those changes are, and scales the result to a yearly percentage. It is drawn as a single line in its own pane below the chart. A rising line means bigger moves, in either direction; a falling one means price has gone quiet.

Historical Volatility describes how much price has moved. It does not say which way price is going, it does not predict how much it will move next, and on intraday charts the yearly scaling is a convention rather than a true annual figure.

How to use Historical Volatility

  • Rising and falling. A rising line means recent closes have been moving further from bar to bar. A falling line means moves have been shrinking.
  • Low readings. Volatility tends to alternate between quiet and active periods, so a reading near the bottom of its recent range is often read as a market building up to a larger move. It does not say when or in which direction.
  • Compare like with like. Readings are only comparable on the same timeframe. A 1H chart and a 1D chart of the same market give very different numbers.
  • Period length. Shorter reacts to the latest moves and is jumpy; longer is steadier and slower to register a change.

These are ways to read the line, not entry signals on their own.

Settings

SettingDefaultWhat it changes
Length10 Number of returns the standard deviation is measured over. Lower reacts faster and is noisier; higher is steadier and later. Minimum 1.

The indicator always uses the close. Adjust the length in the indicator settings.

Calculation

Each bar's return is the natural log of its close divided by the previous close. The indicator takes the standard deviation of the last 10 of those returns and scales it to a yearly percentage:

r   = ln(close / previous close)
per = 1 if bars are a day apart or less, 7 if they are further apart
HV  = 100 * stdev(r, 10) * sqrt(365 / per)

Daily chart:          HV = 100 * stdev(r, 10) * sqrt(365)   (about 19.1)
Weekly and above:     HV = 100 * stdev(r, 10) * sqrt(365 / 7)  (about 7.2)

Log returns are used so that a rise and the fall that undoes it count as equal and opposite. The scaling uses 365 rather than a count of trading days, because crypto markets trade every day.

The scaling factor depends on how much time one bar covers, measured from the gap between each bar and the one before it, not on the number of bars in a day. Any timeframe of a day or less uses the daily factor, so on a 1H chart each hourly return is scaled as if it were a daily one. That makes intraday readings much lower than daily readings and not true annual volatility. Weekly and coarser charts, including monthly, use the weekly factor. A gap in the data larger than a day on a daily chart makes that single reading use the weekly factor.

The first bar has no previous close, so it has no return. The standard deviation needs 10 returns, so the first value appears on bar 11 with the default length.

Limitations

  • Intraday values are not annual volatility. Hourly and minute charts are scaled with the daily factor, so their readings show relative volatility on that timeframe, not a yearly figure for the market.
  • It has no direction. A sharp rally and a sharp sell-off raise the reading in the same way.
  • It looks backwards. The reading describes the last 10 returns. It does not forecast the next move's size.
  • Gaps and missing bars. A missing bar enlarges one return and, on a daily chart, can switch that one reading to the weekly factor.
  • It is not a strategy. On its own it carries no risk management, sizing or exit.

Frequently asked questions

Historical Volatility is the standard deviation of a market's recent log returns, scaled to a yearly percentage. In Altrady Charts it uses the last 10 closes by default and is drawn in its own pane.

Higher means price has been moving more from bar to bar, lower means it has been quieter. Compare a reading with its own recent history on the same timeframe; the absolute number differs a lot between timeframes.

The yearly scaling depends on how long a bar is, not how many bars there are in a day. Any timeframe of a day or less uses the same factor, the square root of 365, so hourly returns are scaled as if each were a daily return. The line still shows when the market is more or less volatile on that timeframe, but the number is not the market's annual volatility.

Yes, the length. The indicator has one input, Length, default 10 with a minimum of 1. Open the indicator's settings on the chart to change it. There is no source input: returns are always measured on the close.

No. Each value depends only on the closes in its window, so values on closed bars are not revised. The current candle's value moves while that candle is live and settles when it closes.

Use the Add to chart button at the top of this page. It opens BTC/USDT on Binance in the Altrady Charts terminal with the built-in Historical Volatility already applied. On any other market, open the indicator picker on the chart and choose Historical Volatility from the Volatility group.

Add to chart