SVI Volatility Smile¶
quantflow.options.svi.SVI
pydantic-model
¶
Bases: BaseModel
Gatheral's Stochastic Volatility Inspired (SVI) parametrisation of the implied volatility smile.
The raw SVI parametrisation expresses the total implied variance \(w(k) = \sigma^2(k) \cdot \tau\) as a function of log-strike \(k = \log(K/F)\):
References
Gatheral, J. (2004). A parsimonious arbitrage-free implied volatility parametrization with application to the valuation of volatility derivatives. Global Derivatives, Madrid.
Gatheral, J. and Jacquier, A. (2014). Arbitrage-free SVI volatility surfaces. Quantitative Finance, 14(1), 59-71.
Fields:
a
pydantic-field
¶
Vertical shift of the smile: overall level of total implied variance. Must satisfy \(a + b \theta \sqrt{1 - \rho^2} \geq 0\) to avoid negative variance.
b
pydantic-field
¶
Angle between the left and right asymptotes of the smile. Controls the overall steepness of the wings. Must be non-negative.
rho
pydantic-field
¶
Correlation parameter controlling the skew of the smile. Negative values produce a left-skewed smile (typical for equities), positive values produce a right skew. Must satisfy \(|\rho| < 1\).
m
pydantic-field
¶
Location parameter: the log-moneyness at the vertex of the smile. Shifts the smile horizontally. A value of zero centres the smile at the forward.
theta
pydantic-field
¶
Smoothness parameter controlling the curvature of the smile around the vertex. Larger values produce a flatter region near \(m\). Must be strictly positive.
total_variance
¶
Total implied variance \(w(k)\).
Returns an array of the same shape as \(k\).
| PARAMETER | DESCRIPTION |
|---|---|
k
|
Log-moneyness log(K/F), scalar or array
TYPE:
|
Source code in quantflow/options/svi.py
implied_vol
¶
Implied volatility \(\sigma(k) = \sqrt{w(k) / \tau}\).
Returns an array of the same shape as \(k\). Values are set to zero where total variance is non-positive.
| PARAMETER | DESCRIPTION |
|---|---|
k
|
Log-moneyness log(K/F), scalar or array
TYPE:
|
ttm
|
Time to maturity in years
TYPE:
|
Source code in quantflow/options/svi.py
fit
classmethod
¶
Fit SVI smile to observed implied volatilities via non-linear least squares.
Minimises the sum of squared differences between observed and model total variances.
| PARAMETER | DESCRIPTION |
|---|---|
k
|
Log-moneyness log(K/F) for each option
TYPE:
|
iv
|
Observed implied volatilities
TYPE:
|
ttm
|
Time to maturity in years
TYPE:
|