Nicolas Liebaert Structured products & derivatives

Vanilla options

Greeks, trees and the smile

Three things worth being precise about: what the greeks actually look like as the spot moves, why one binomial tree is far better than another that looks almost identical on paper, and what the market charges for downside protection.

Exhibit 1 European option, Black-Scholes-Merton

Loading the model

Python, NumPy and SciPy are being started in your browser. Around 30 MB the first time, cached afterwards.

Greeks are closed form, not bumped. The tests in the repository check them against central finite differences of the price.
Exhibit 2 What the market charges for the downside
Loading the option chain.
ExpiryDaysStrikesAt-the-money vol
The quotes are a stored snapshot, because a browser cannot call the market data feed directly. The inversion is not stored: every volatility above is solved in your browser, now, by Newton-Raphson with a Brent fallback for the wings where vega collapses.

Reading the smile

Volatility falls as the strike rises. Puts below the forward are bid up because everyone wants protection and few want to sell it, so they trade at a higher implied volatility than calls above the forward. The slope is steepest at a few days and flattens out by a month, which is the term structure of skew.

Only out-of-the-money options are inverted: puts below the forward, calls above. That is what the market quotes, and it is what keeps the picture readable. An in-the-money option has almost no vega, so a one-tick error in its price moves the implied volatility by several points, and inverting the full chain produces a smile that jumps between 20% and 50% for no economic reason.

This is also the gap in the autocall page. That model uses a single flat volatility, while its capital barrier sits far down in the expensive left-hand part of this curve. Flat volatility therefore understates the cost of the downside, and makes the note look better than it is.

Full source and 32 tests at github.com/Nicolas8330/option-pricer.