The Black ‘76 Model is used to price our options. The model needs strike price, time to expiry, forward price, interest rate and volatility to compute option price. We get forward prices from futures market data, and we compute the interest rate from forward and spot prices.
Updating individual volatilities for vanillas is unfeasible on-chain due to gas constraints. Due to this, we require a model that can capture the volatility curves with fewer parameters which need to be updated less frequently.
We use the SABR stochastic volatility model, which requires 4 parameters to model the volatility smile for each expiry. This model has the advantage of being arbitrage free by construction (except at the extreme wings in exceptional cases) and does not require frequent updates during usual market conditions. Updates will most often be needed when market sentiment changes, impacting the volatility outlook.
During an update, an optimiser is used to fit the SABR volatility curve as closely as possible to market data for each expiry. This is done using a vega weighting, so the curve fits as closely as possible near the money where most options are traded and spreads are tight. The vega weighting also ensures the curve fit is optimal in areas where a poor fit would have the biggest impact.
After fitting, the curve is checked for arbitrage against live, real-world market prices. If arbitrage is detected, then we mark the curve for a refit. It is unlikely for the curve fit to fail unless there are real-world arbitrage opportunities in the market data snapshot against which the curve is fitted. In practice these are very short lived and re-fitting after a short wait would ordinarily resolve this issue.
In the unlikely event that arbitrages persist in the market data, the curves are fitted to mark data.