Master the SVI volatility smile — understand the five parameters, compute implied variance, derive binary option prices via d2 and the normal CDF, and implement range and directional pricing.
Implied volatility (IV) measures how much the market expects an asset's price to move before expiry. It is not a single number — IV varies by strike price, forming a curve called the "volatility smile." Strikes far from the forward price (deep ITM or OTM) tend to have higher IV, creating the characteristic U-shape. For binary options, IV at each strike determines the fair price: higher IV means more uncertainty, which pushes prices closer to 0.50.
The SVI (Stochastic Volatility Inspired) model defines implied total variance as a function of log-moneyness k using five parameters. These parameters are calibrated by Block Scholes and published on-chain via the OracleSVI object. All values are encoded with FLOAT_SCALING (1e9).
Each SVI parameter has a distinct visual effect on the volatility smile curve. Understanding these effects helps you interpret oracle data and debug pricing issues.
The core SVI formula computes total implied variance w(k) from log-moneyness k. This is the heart of the pricing model — every binary option price starts here.
Once we have total variance w(k), the binary option price comes from the Black-Scholes framework. The key quantity is d2 — a standardized measure of how likely the asset is to finish above the strike. The price is simply the normal CDF evaluated at d2.
Since there is no closed-form for the normal CDF, DeepBook uses the Abramowitz & Stegun approximation of the error function (erf). This polynomial approximation is accurate to ~1e-7 and efficient to compute both on-chain and off-chain.
A binary option price is a direct probability estimate. Understanding how to interpret prices — and how UP, DOWN, and RANGE prices relate to each other — is essential for building trading interfaces and risk displays.
Here is the complete computeSviPrice function that the YOSUKU codebase uses. It takes SVI parameters (already decoded from FLOAT_SCALING), a strike, and a forward price, and returns the binary UP price as a number between 0 and 1.
A RANGE binary option pays 1 if the settlement price falls between a lower and higher strike. Its price is computed by subtracting two UP prices — the probability of being above the lower strike minus the probability of being above the higher strike.