By searching online, I have found three methods to compute the expected move of a stock based on option prices and implied volatilities:

Method 1: Extract the price of a Straddle ATM of the front month
--> Exp_Move = (call ATM + put ATM)

Method 2: Take the price of a Straddle ATM of the front month and multiply it by 0.85
--> Exp_Move = (call ATM + put ATM)*0.85

Method 3: Compute the expected move by scaling the implied volatility of the nearest expiration
--> Exp_Move = Stock_Price * IV/100 * SQRT(n/365)

DOUBT NO. 1: Which one is the most accurate one between method 1 and method 2? Where does the "0.85" come from?

DOUBT NO. 2: To compute the Exp_Move with Method 3 I need the IV... I still do not understand how I can compute the IVx of the front month expiration based on the implied volatility of the options with that expiration. Is that a sort of weighted average of the implied volatilities? I noticed on tastyworks's website this description:

Implied Volatility (IVx): The implied volatility (IVx) metric displayed in the option chain is calculated using the VIX-style calculation described at the following link.

However, this seems something almost impossible to reproduce based on historical option data provided by OptionMetrics. Is there a way to reach very accurate estimation of the IVx based on the implied volatilities or the prices of the options of that precise expiration?

I attach a couple of pictures of the same option chain where I explain what I am trying to compute... (By the way... I have no idea why two different brokers platforms provide slightly different IVx values...).

Image 1 - Option chain on tastyworks IVx:

Image 1 - Option chain on tastyworks IVx

Image 2 - Option chain on thinkorswim IVx:

Image 2 - Option chain on thinkorswim IVx

  • Note that all of these give you a range of expected moves either up or down. i.e. if the "excepted move" based on IV is $3, that means that there's a 68% (1 sd) chance that the stock will move between +/- $3.
    – D Stanley
    Feb 18, 2020 at 20:36

4 Answers 4


Each option has its own implied volatility. There are a number of option pricing models so I would assume that it's possible that there may be mild variance in the calculation via each one. I've used Black Scholes for about 30 years so I don't know to what degree it varies from model to model.

There are also a number of ways to calculate the average implied volatility for each expiration as well as the average implied volatility for all of the options of a stock. One well known option author/service weights each individual option's implied volatility by its trading volume and its distance in or out-of-the-money. Another popular service calculates it by weighting delta and vega of each option. Therefore, the Composite Volatility number may vary somewhat from one method of calculation to another. That's not critical because the variance should be small and decisions should be made from the comparison of all numbers calculated via the same model.

I can't tell you which method of expected move calculation is most accurate. Even if I could, I think that it's a subjective as well as unreliable number because implied volatility varies day to day, sometimes significantly. If it increases, your expected move increases and vice versa. In addition, I wouldn't put much credence in such a number because options are derivatives that for the most part follow the price of the underlying (secondary changes due to time decay, change in implied volatility, pending dividends, etc.). The underlying isn't going to move "X" percent because the option market is suggesting that it will.

  • I am performing a backtest on how reliable are the different expected moves formulas around earnings announcements. In particular, if you look at the weekly options that are near to expiration just before the earnings announcements, you can retrieve some interesting information about the magnitude of the stock price movement after the news. You mentioned "One well known option author/service weights each individual option's implied volatility by its trading volume and its distance in or out-of-the-money"... Do you have a practical/empirical example or reference in R, Python, Excel,...?
    – jack
    Feb 17, 2020 at 17:58
  • I have no references. Here's some add'l generic info Feb 17, 2020 at 18:10

If you assume that IV is a forward looking measure of the annual standard deviation of the stock, method 3 (and method 2 if you use 1.25, not 0.85) is correct.

TL;DR (explanation)

Straddles follow the following relationship (going from IV to price and vice versa - derivation below):

  • Straddle Price = 0.8 * Implied Vol * √(DTE/365) * Stock Price
  • Implied Volatility = 1.25 * (Straddle Price/Stock Price) * √(DTE/365) * Stock Price

Some people assume IV is using 252 days, but that is only used in a few markets like Brazil. The vast majority of option pricing tools (e.g. Bloomberg), or also the CBOE (check the VIX computations), use ACT/365 as daycount.

Let's compute a straddle price from Black Scholes with some made up inputs.

  • Spot = Strike = 100
  • year fraction = 1 (Black Scholes uses fractions of years, so 1 corresponds to a full calendar year)
  • risk free rate and dividends = 0
  • IV = 30%

In Julia, we can define Black Scholes as follows:

 # input relevant package
using Distributions
# define cdf
N(x) = cdf(Normal(0,1),x)
# define Black Scholes
function BSM(S,K,t,rf,d,σ, cp_flag)
    d1 = ( log(S/K) + (rf - d + 1/2*σ^2)*t ) / (σ*sqrt(t))
    d2 = d1 - σ*sqrt(t)
    value  = cp_flag*exp(-d*t)S*N(cp_flag*d1) - exp(-rf*t)*cp_flag*K*N(cp_flag*d2)
  return value

Compute the price of a straddle (sum of long call and long put).

Stock_Price, Strike, n , r, d, IV = 100, 100, 365, 0, 0, 30 
straddle_price = BSM(Stock_Price,Strike, n/365, r, d,IV/100, 1)+BSM(Stock_Price,Strike, n/365, r, d,IV/100, -1)
println("Value of Straddle = $(round(straddle_price,digits=4))")

The screenshot below has some additional details, including some math that I will explain below. The reason I include the formulas as a screenshot is that money stack exchange unfortunately does not support Latex / mathjax.

enter image description here

  • method 1: The straddle costs $23.8471, suggesting a move of +/- $23.85
  • method 3: Stock_Price * IV/100 * SQRT(n/365), you get a neat solution in our case, which simply corresponds to IV, hence to a +/- $30 range. As you can see, your method 1 cannot be correct, if method 3 were correct.
  • method 2 (modified): However, using 1.25 * Straddle results in +/- $29.81 in our example which is almost identical to method 3.


The price of straddle is not equal to the standard deviation (e.g. volatility) but to the mean absolute deviation (MAD) of the stock price. Since this StackExchange does not support mathjax, I included this in the screenshot above. The proof for the last statement can be found on math.stackexchange.com.

TL;DR #2 (further details)

With regards to IV, there are at least two things to consider:

  • Empirically, IV tends to overestimate RV, commonly referred to as Volatility Risk Premium

  • IV is the only free parameter in the Black-Scholes-Merton (BSM) model. Higher IV is usually a result of compensation for tail risk.

I used an ATM spot straddle (meaning strike equals spot). Technically, you could use all sorts of strikes for structuring a straddle. The problem however is that IV is not constant along moneyness levels (strike relative to spot). You can read lots of details concerning these statements in this answer.

You should not weight the options IVs for this exercise. The best you can use is the ATM IV. The VIX index is the square root of the theoretical variance swap strike and not directly implied vol. With regards to variance swaps, you have a one for one relation to realized vol because realized variance is the squared realized vol; which is exactly how payoffs are defined: N_var(σ^2_realized - σ^2_k) where σ^2_k is the fair strike of a variance swap. This answer shows some details about variance swaps.

Insofar, using the VIX type value is not a bad idea. On the other hand, a generic 1m ATM vol is not very different from VIX (in value, not in how it is computed). Below is a comparison, where the 1m ATM vol comes from an in house vol surface.
enter image description here


Computing a VIX style (or variance swap strike) value is not trivial. VIX itself (white paper) uses filtering (excluding non-Friday expiration, only uses consecutive strike prices where bid prices are not zero,...) uses a constant maturity treasury rate yield curve with cubic spline interpolation to get the yield on the expiration dates (most would use SOFR or equivalent RFR swap curves for this exercise) and so forth.

A fair variance swap can be shown to equal the integral of weighted prices of out-of-the-money options over all strikes. These weights are being inversely proportional to squared strikes, an application of the Black Scholes closed-form formula for gamma, which ensures results in constant dollar gamma. This answer shows a lot of details and a GIF explaining the VIX calculation graphically.

One obvious problem here is that options markets are composed of a discrete set of option prices for a given maturity. Therefore, it is common to first compute a Vol surface. Practically, it is desired to limit the integration region (strike range) to avoid issues with the weights (especially very small strikes are a concern because of the weighting with squared strikes). Where this truncation is done is probably market dependent and depends on the quality of the available Volsurface (that is also why the VIX white paper explains that they no longer consider strikes of puts below the strikes where two puts with consecutive strike prices are found to have zero bid prices).

The complexity and availability of different methods is why different platforms show different IVx. Which one is more accurate is hard to tell without looking at the exact computations. Either way, you will likely not have access to a Vol surface but you can look at the IV (from your screens) of the options closest to ATM, and compare these IVs to IVx, the IV to use will be somewhere around these values. The whole idea is anyhow just to get a (rough) options implied move of the underlying.


Not fully answering your whole question, but a quick and dirty way to get the expected daily move by using the Implied Vol is to divide the implied vol by 16. (Taken from the Sheldon Natenberg book)

So an implied vol of 80% would imply that a 1 standard deviation move per day of 5%


Doubt #1: Price of straddle vs. 85% straddle price.

Implied volatility tends to trade over realized volatility. That is almost assuredly why you've read to make such an adjustment (the ~85% figure is a very ballpark number and would vary on a case-by-case basis). Look at a data vendor that such as ivolatility.com graphs to get a sense of how much and how often implieds are over realizeds. Do note ivolatility uses its own proprietary one-month implied vol index for each stock.

That being said I've never heard anyone offer 85% of the straddle price as the expected move in the stock. The price of the straddle is the expected move. If you think it would move more you would buy it, and if you think it will move less you would sell it. There are market factors at play that don't make this perfect. (i.e. customers know that realizeds are lower and like to sell front month options. This causes market makers to be consistently long them, paying theta, and deflating the price to equilibrium).

Doubt #2: How to calculate IV for a given time-to-expiration?

To calculate the implied volatility for a single option you need an options pricing model (such as Black Scholes for European options or a Binomial tree for American options). Then you need a numerical method to solve for volatility given all other inputs (such as Newton's method).

When speaking of coming up with some sort of volatility index using all strikes for one or more expirations there are literally infinite ways to do it. The most heavily watched and well known volatility index is CBOE's VIX Index. Traders of the VIX index and its related products know quite well the many idiosyncrasies deriving from its calculation.

Overall: Options are an extremely complex instrument. They have been studied heavily for 50 years now. The wealth of information and literature about them is immense. By nature they are statistical, dynamic and estimated. Do not expect to quickly arrive at any quick or easy truths.

  • I agree with you about the fact that 0.85 is a completely random number. In fact, I am convinced that the most reliable way of estimating the implied move embedded in option prices is to look at the price of the ATM straddle. For the second part of your answer I know how to compute the implied volatility of a single option but I don't understand how brokers computer the implied volatility for a the bundle of options composing a specific expiration. I don't know if you have ever used Thinkorswimm or Tastyworks... these two platform provides an IVx value for each exipration.
    – jack
    Feb 17, 2020 at 17:50
  • Have a look at the attached screenshot to easily understand what I am referring to. Moreover, thinkorsimm provides a MMM (Market Maker Move) estimation, which is based on a proprietary fromula that makes use of time to expiration, stock price and differential of implied volatility in the front and back month. I was working to understand how they compute the MMM but it doesn't seem to be that easy... I think that it might be something related to the formula Exp_move = Stock_price * IV/100 * sqrt(n/365).
    – jack
    Feb 17, 2020 at 17:54
  • 1
    From my answer: "When speaking of coming up with some sort of volatility index using all strikes for one or more expirations there are literally infinite ways to do it." If you want Thinkorswim or Tastyworks per-expiration vol-index formula you will have to ask them. They probably won't tell you. It's likely very similar to the VIX calculation but for one expiration. Vol indices are of limited utility. The VIX has an r-squared with realized near 75-80%. A major criticism of it is the added complexity gains nothing or very little. Feb 17, 2020 at 19:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .