Luca Birtas

Option pricing lab

Price vanilla and exotic options, watch the Monte Carlo diffuse, and see how much the model matters once the smile is fixed: Heston, local volatility and a stochastic-local-volatility model, all calibrated to the SPX.

The desk

Spot 100, Black-Scholes pricers with their Greeks. The Monte Carlo below can switch to the Heston dynamics calibrated on SPX. Everything runs in your browser.

Which model for which product

Once the vanillas are fitted, what still differs between models is the dynamics. The product decides how much that matters.

European

Driven by the smile at one expiry.

No model needed: read the arbitrage-free implied surface; a model only interpolates it.

Gatheral (2004); Gatheral and Jacquier (2014). Here: SVI fit within 4 to 10 bp.

American

Driven by early exercise, rates and dividends.

Tree or PDE on local vol for one factor; Longstaff-Schwartz once the model has more.

Cox, Ross and Rubinstein (1979); Longstaff and Schwartz (2001). Here: both, cross-checked.

Asian

Averaging damps the path: mostly the term structure of vol.

Local vol is usually enough; the geometric Asian is a near-perfect control variate.

Kemna and Vorst (1990); Lévy (1992). Here: the four models agree within 1.2 %.

Barrier

Driven by the spot-vol dynamics and the forward skew, not just today's smile.

Stochastic-local vol: the leverage fits the smile, the vol of vol sets the dynamics.

Lipton (2002); Ren, Madan and Qian (2007); Guyon and Henry-Labordère (2012). Here: the up-and-out call ranges from 3.5 to 4.7.

Beyond this lab

Forward-start options and cliquets live on the forward smile; variance swaps on the whole strip.

Stochastic vol or SLV for cliquets; static replication for variance swaps.

Bergomi (2016); Demeterfi, Derman, Kamal and Zou (1999).

Same smile, different exotics

Four models calibrated to the same SPX smile (spot rescaled to 100), one-year products, priced by Monte Carlo in the Python library. Each dot is a model; prices are shown relative to the SLV model.

In the SLV model the mixing fraction moves from pure local vol (0) to the full calibrated Heston vol of vol (1). Each point has its own leverage calibration: the vanillas stay on the market while the barriers move. At 1 the leverage no longer fits the at-the-money vol (44 bp off), so that point is not a valid calibration.

Appendix

Calibration on SPX

Snapshot of 27 October 2026, 13:37 New York, 9 expiries from two weeks to two years, 1,694 out-of-the-money quotes. Discount factors and forwards from put-call parity. Three steps: the implied surface, Heston on the same quotes, then the SLV leverage by particles. Errors in basis points of implied vol; local vol and SLV are repriced by Monte Carlo (300,000 paths, standard error 3 to 4 bp) against the surface they are built on.

SPX implied vol smiles for nine expiries: quotes, SVI surface, Heston and SLV
Quotes with bid-ask, the arbitrage-free SVI surface, Heston (which cannot follow the short-dated skew) and the SLV model repriced by Monte Carlo.
Dupire local volatility and SLV leverage function as heat maps
Dupire local volatility from the surface, and the leverage that turns Heston into the SLV model.

Full calibration report

Methods
  • Implied surface: extended SSVI as an arbitrage-free start, then raw SVI slices by the quasi-explicit method, with Lee's bound and calendar ordering as linear constraints and butterflies penalised; total variance interpolated in the ATM variance between expiries.
  • Heston: Lewis formula with the "little trap" characteristic function; least squares on vega-scaled price errors, weighted by the bid-ask.
  • Local vol: Dupire in total implied variance, every derivative analytic.
  • SLV: L(t, S)² E[v | S] = σloc²(t, S), the conditional expectation estimated by kernel regression on 200,000 particles (Guyon and Henry-Labordère).
  • Monte Carlo: log-Euler in the forward coordinate (forwards matched exactly), graded time grid, antithetic variates, full truncation for the variance; Longstaff-Schwartz with independent paths for the exercise rule in the Python library.
  • In this page: the same closed forms in JavaScript; American options by a Crank-Nicolson PDE on a grid fixed by the strike (projected SOR for early exercise, European as control variate), so that the Greeks are smooth in the spot; Heston paths by Andersen's QE scheme with its martingale correction (the calibrated parameters violate the Feller condition, and a truncated Euler step would leave the variance at zero for weeks, with flat paths); Asian curves and Greeks by Lévy moment matching, the Asian headline price by Monte Carlo with a geometric control variate; the Longstaff-Schwartz here also fits its exercise rule on independent paths; the exercise boundary drawn on the paths comes from the same PDE.
Tests and data
  • 80 tests: put-call parity, Monte Carlo convergence, American at least European and the American call without dividends equal to the European, geometric Asian and barriers against their closed forms, parameter recovery for SSVI, SVI and Heston, vanillas reproduced by local vol and SLV, and the JavaScript of this page against the Python library (to 1e-9).
  • SPX quotes from Yahoo Finance, for calibration only: the raw quotes are not published, only the parameters, curves rescaled to a spot of 100, and charts.
  • Limits: one snapshot, mid prices; Heston misses the short-dated skew by about 50 bp; the SLV reprices the surface within a few bp beyond three months and about 10 bp below one month.