Skip to content
All library documents

Implied Volatility Failures in Deep In-the-Money Options

Article Quant Q&A · Author: des224

Summary

The document describes problems backing out implied volatility from 30-minute options bars, especially for in-the-money contracts near expiration. The question uses a numerical root-finding approach with a short-term Treasury yield as the risk-free rate proxy, and reports that the solver may return implausibly low volatility or fail when the observed option price is below intrinsic value.

A response suggests that sparse extrinsic value in deep in-the-money options near expiry can leave recorded prices below theoretical intrinsic-value bounds. The proposed workaround is to raise the input price to at least a bound that includes interest before solving for volatility. This is an anecdotal adjustment, not a validated pricing method: the document provides no tests, error estimates, or comparison with quote filtering and alternative models. Bar data, stale or noisy prices, and the rate approximation may all affect the inversion, so the suggested floor should be treated cautiously.

Key ideas

  • Implied-volatility inversion can fail when an observed option price violates intrinsic-value bounds.
  • Deep in-the-money options near expiration may have very little extrinsic value, making inversion numerically sensitive.
  • The response proposes flooring the input price at an interest-adjusted intrinsic-value level.
  • The proposed price adjustment is anecdotal and is not supported by comparative validation in the document.

Tags

Full text
# Issues with calculating IV with options bar data


# Issues with calculating IV with options bar data












I am currently working with some options OHLC data (30 minute bars) from IBKR for a range of strike prices, maturities and for both calls/puts. For each bar, I am trying to back out the IV (crudely using the 3m treasury as a proxy for the risk-free rate and pyvollib/scipy's optimize.brentq method for the actual IV calculation), but however I am running into an issue.

I have noticed that whenever the IV calculation breaks down - it usually breaks down for ITM options and/or options that are close to expiration (1~10 days), by break down I mean it either returns an abnormally small number or throws an exception (something like: The volatility is below the intrinsic value.)

Why is this happening and are there any other methods/approximations I can use to successfully calculate the IV for ITM/deep ITM options, how do options data providers deal with this? This link (https://github.com/vollib/py_vollib/issues/5) provides some insight but I still cannot fully grasp the numerical instability issues, would appreciate any pointers!

## Answer by Julison (score 0)

https://quant.stackexchange.com/a/75571

I noticed this with my data (options on Indexes and Commodities futures). When option is Deep ITM and close to expiration, there is not enough extrinsic value to compensate for the lower intrinsic value and option may have a price below price - strike. As this is not actually true (Dealers can buy below that price but they will always sell above), I believe it's safe to assume the option price must be greater or equal to (price - strike) + interest (or (strike - price) + interest, for DITM Puts).

My solution was to increase the price of the option until further that level and the I didn't have this problem anymore.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.