What is the historical volatility?
Paste a list of closing prices, oldest first, one per day, week or month. The calculator turns them into returns and gives their standard deviation, the historical volatility, per period and per year.
- Volatility (annualized)
- 31.6%
From these 5 returns, the annualized historical volatility is 31.6%.
- Volatility per period
- 1.99%
- Mean return per period
- 1.165%
- Returns
- 5
Volatility (annualized): 31.6%. From these 5 returns, the annualized historical volatility is 31.6%.
The results are estimates for information only. They are not financial, tax, or legal advice. Check the numbers with your lender or a qualified professional before you decide. Terms of use
How to calculate
Computes the historical volatility of a stock or other asset from typed closing prices: the standard deviation of its log or percent returns, per period and annualized.
Example with the default inputs (Closing prices [100, 102, 101, 104, 103, 106], Returns Log returns, Periods per year 252): From these 5 returns, the annualized historical volatility is 31.6%.
Method: rₜ = ln(Pₜ ÷ Pₜ₋₁) or (Pₜ − Pₜ₋₁) ÷ Pₜ₋₁ for t = 1 to n; s = √(Σ (rₜ − r̄)² ÷ (n − 1)); annual volatility = s × √m, where m is the periods per year.
- Prices are typed, oldest first, one per period at equal spacing; no quote is looked up.
- Annualizing by √(periods per year) assumes the returns of different periods are not correlated.
- Dividends and splits are not adjusted for: type adjusted closes if the series has them.
Worked examples
Each example is checked against the calculator on every build.
- Closing prices 100, 102, 101, 104, 103, 106, Returns Log returns, Periods per year 252 gives Volatility (annualized) 31.595223%, Volatility per period 1.990312%, Mean return per period 1.165378%, Returns 5.Source: NIST/SEMATECH e-Handbook of Statistical Methods, 1.3.5.6 Measures of Scale (s = √(Σ (Yᵢ − Ȳ)² ÷ (N − 1))). https://www.itl.nist.gov/div898/handbook/eda/section3/eda356.htm; William F. Sharpe, "The Sharpe Ratio" (1994), equations 8 and 9: over T periods the variance is T times and the standard deviation √T times that of one period, for returns that are not serially correlated. https://web.stanford.edu/~wfsharpe/art/sr/sr.htm
- Closing prices 100, 102, 101, 104, 103, 106, Returns Percent changes, Periods per year 252 gives Volatility (annualized) 31.880389%, Volatility per period 2.008276%, Mean return per period 1.188198%.Source: OpenStax, Principles of Finance, 15.5 Using Excel to Make Investment Decisions (monthly return = (Pₜ − Pₜ₋₁) ÷ Pₜ₋₁; the standard deviation of the returns as their volatility). https://openstax.org/books/principles-finance/pages/15-5-using-excel-to-make-investment-decisions; NIST/SEMATECH e-Handbook of Statistical Methods, 1.3.5.6 Measures of Scale (s = √(Σ (Yᵢ − Ȳ)² ÷ (N − 1))). https://www.itl.nist.gov/div898/handbook/eda/section3/eda356.htm; William F. Sharpe, "The Sharpe Ratio" (1994), equations 8 and 9: over T periods the variance is T times and the standard deviation √T times that of one period, for returns that are not serially correlated. https://web.stanford.edu/~wfsharpe/art/sr/sr.htm
- Closing prices 50, 52, 49, 51, 55, Returns Percent changes, Periods per year 12 gives Volatility (annualized) 20.166785%, Volatility per period 5.821649%, Mean return per period 2.538885%.Source: OpenStax, Principles of Finance, 15.5 Using Excel to Make Investment Decisions (monthly return = (Pₜ − Pₜ₋₁) ÷ Pₜ₋₁; the standard deviation of the returns as their volatility). https://openstax.org/books/principles-finance/pages/15-5-using-excel-to-make-investment-decisions; NIST/SEMATECH e-Handbook of Statistical Methods, 1.3.5.6 Measures of Scale (s = √(Σ (Yᵢ − Ȳ)² ÷ (N − 1))). https://www.itl.nist.gov/div898/handbook/eda/section3/eda356.htm; William F. Sharpe, "The Sharpe Ratio" (1994), equations 8 and 9: over T periods the variance is T times and the standard deviation √T times that of one period, for returns that are not serially correlated. https://web.stanford.edu/~wfsharpe/art/sr/sr.htm
How it works
With the prices P₀, P₁, …, Pₙ (n + 1 prices, so n returns) and m periods per year:
- Log return rₜ = ln(Pₜ ÷ Pₜ₋₁), or percent change rₜ = (Pₜ − Pₜ₋₁) ÷ Pₜ₋₁, for t = 1 to n
- Mean return r̄ = (r₁ + … + rₙ) ÷ n
- Volatility per period s = √(Σ (rₜ − r̄)² ÷ (n − 1)), the sample standard deviation
- Annualized volatility = s × √m
The page shows each as a percent (× 100).
The log return is the continuously compounded rate over one period: if Pₜ = Pₜ₋₁ × e^r, then r = ln(Pₜ ÷ Pₜ₋₁).
Rules:
- Enter 3 to 1,000 prices, each more than 0, separated by spaces, commas or new lines. A comma inside a number such as 1,200 is refused; type 1200.
- Periods per year are whole numbers from 1 to 366: 252 for daily closes on trading days, 52 for weekly, 12 for monthly.
- If every return is the same (prices that change by the same percent each period), the volatility is 0%.
- The page works in floating point (logs and square roots). The annual volatility shows to 2 decimals and the per-period figures to 3, with halves rounded up (away from 0).
- A result too large for a 64-bit floating-point number gives no answer and a message.
Assumptions
- The prices are equally spaced, one per period, and typed; nothing is looked up.
- Annualizing by √m assumes the returns of different periods are not correlated.
- Dividends and splits are not adjusted for. Use adjusted closes if the series has them.
Worked examples by hand
Six daily closes, log returns. Prices 100, 102, 101, 104, 103, 106. The log returns are ln(1.02) = 1.9803%, ln(101 ÷ 102) = −0.9852%, ln(104 ÷ 101) = 2.9270%, ln(103 ÷ 104) = −0.9662% and ln(106 ÷ 103) = 2.8710%. Their mean is 1.165%, and their sample standard deviation is 1.990% a day. Annualized: 1.9903% × √252 = 1.9903% × 15.875 = 31.60%.
The same closes, percent changes. The returns are 2%, −0.9804%, 2.9703%, −0.9615% and 2.9126%, with mean 1.188% and standard deviation 2.008%. Annualized: 2.0083% × √252 = 31.88%.
Five monthly closes. Prices 50, 52, 49, 51, 55 give percent changes of 4%, −5.7692%, 4.0816% and 7.8431%: mean 2.539%, standard deviation 5.822% a month. Annualized: 5.8216% × √12 = 5.8216% × 3.4641 = 20.17%.
Other questions people ask
What is historical volatility?
Historical volatility is how much an asset’s returns have varied in the past: the standard deviation of its returns over a period. If the returns are roughly normal, about two years in three land within one standard deviation of the average: a stock with a 10% average return and a 30% volatility would return between −20% and +40% in about two years out of three.
How do I calculate volatility from prices?
Turn the prices into returns, one for each period: ln(today ÷ yesterday) for log returns, or (today − yesterday) ÷ yesterday for percent changes. Take the sample standard deviation of the returns (divide by the number of returns minus 1), then multiply by the square root of the periods in a year to annualize it.
Should I use log returns or percent changes?
Log returns are the usual choice for volatility: they are continuously compounded returns, so the returns of several days add up to the return over all of them. For small daily moves the two give almost the same answer; they drift apart for large moves.
Why multiply by the square root of 252?
If returns from different days are not correlated, their variance grows in proportion to time, so the standard deviation grows with its square root. 252 is a common count of trading days in a year (365 days less weekends and market holidays). Use 52 for weekly closes and 12 for monthly closes.
Is this the same as implied volatility?
No. Historical volatility is measured from past prices. Implied volatility is the volatility that makes an option-pricing model match an option’s market price, so it is the market’s estimate of the volatility to come.
How many prices should I use?
Enough to cover the window you care about, such as 21 trading days for about a month or 252 for a year. Few prices give a noisy estimate; very old prices may describe a market that has changed.