← Back to Blog

Improving Our Exposure Model With Implied Volatility Surfaces - Estimation and Smoothing

Chris
optionsexposurevolatilityblack-scholes

If you’re interested in the more technical (code-based) breakdown of this change, check out the post on Day 2 of Full Stack Craft’s 12 Days of Full Stack Dev series.

This builds upon the success of our viral post on Gamma, Vanna, and Charm exposures, which spurred the creation of this entire tool. Essentially, the formulas written in that post were — until today — the key underlying formulas used for our exposure calculations here on VannaCharm.

This new IV estimation and smoothing method is now live and baked into the values you see on the dashboard.

However, back when I wrote that post, I failed to recognize at the time that, under the hood, I was using a fixed volatility (the volatility of the underlying itself) for the Greek calculations at all strikes. This is the default assumption made by the Black-Scholes model, but it is not the case in reality. In reality, both put and call options have an implied volatility (IV) smile or smirk — higher IV as you get further away from the underlying spot price.

Updating our exposures to use per expiry / per strike IVs most directly affects the vanna exposure since IV is a key component of that calculation; however, we also benefit from the fact that gamma and charm are products of the Black Scholes model itself and therefore also are somewhat affected by a dynamic IV at each strike.

Let’s get into how we can include an entire volatility surface into our dealer exposure calculations, including a smoothing function.

Implied Volatility Surface

As many know, the IV of a given options chain typically has a volatility ‘smirk’ or ‘smile’, with the lowest part of the smile right at the current underlying spot — strikes above and below have a higher IV than strikes directly at the money.

To back-calculate the IV of a given option contract, we essentially provide every value into the Black Scholes formula except volatility. For VannaCharm, we use a bisection search to tweak volatility until the price produced by Black-Scholes matches its current market-reported price.

Smoothing Algorithm

Now, to improve our IV estimate even further, and especially since exposures look at a range of strikes near the money, we can use a smoothing algorithm to smooth the IVs into a nice smooth IV curve, since instantaneous option chain data is never perfect — bid-ask spreads, stale quotes, and illiquid strikes all introduce artifacts in a potentially “perfect” IV surface. To get a cleaner surface, we currently apply smoothing based on total variance rather than directly on IV.

Why Total Variance?

Total variance w = σ² * T has better mathematical properties for smoothing:

  • It’s directly related to option value
  • Smoother across strikes (in theory)
  • Ensures convexity (important for no-arbitrage)

The Smoothing Process

With a bit of iteration and testing, we’ve settled on the following process currently, which seems to provide decent results:

  1. Convert to total variance as mentioned above
  2. Use a cubic spline interpolation to fit a curve through all the variance points
  3. Enforce convexity with the convex hull algorithm
  4. Convert these values back to IV space

Thanks for Reading!

I hope you found this interesting and useful! Until next time, good luck out there in these crazy markets!

-Chris & The VannaCharm Team