Workflow:Avhz RustQuant Analytic Option Pricing
| Knowledge Sources | |
|---|---|
| Domains | Quantitative_Finance, Option_Pricing, Derivatives |
| Last Updated | 2026-02-07 19:00 GMT |
Overview
End-to-end process for pricing European vanilla options analytically using the generalized Black-Scholes-Merton framework and computing option Greeks.
Description
This workflow covers the standard procedure for pricing European-style options using closed-form analytic solutions. RustQuant implements a generalized BSM framework where multiple pricing models (Black-Scholes 1973, Merton 1973, Black 1976, Asay 1982, Garman-Kohlhagen 1983, Heston 1993, Bachelier) share a unified interface through the s()/r()/b() accessor pattern. The workflow produces option prices along with a full suite of first- and second-order Greeks (delta, gamma, vega, theta, rho, vanna, charm, vomma, speed, color, zomma, ultima).
Usage
Execute this workflow when you need to price European vanilla options (calls or puts) and compute their risk sensitivities (Greeks) using closed-form formulas. This is appropriate when you have known market parameters (spot price, strike, volatility, risk-free rate, dividend yield) and need fast, exact pricing without Monte Carlo simulation overhead.
Execution Steps
Step 1: Define the Option Contract
Specify the option parameters: strike price, expiration date, and whether it is a call or put. The contract is constructed using a builder pattern that validates all required fields before producing an immutable option definition.
Key considerations:
- Strike price must be positive
- Expiry date uses the time crate date type
- Type flag distinguishes Call from Put
- The builder pattern ensures all required fields are set
Step 2: Select a Pricing Model
Choose the appropriate pricing model based on the asset class and market context. Each model wraps a different set of parameters (spot price, rates, volatility) into the generalized BSM framework.
Available models:
- BlackScholes73 - Standard equity options (spot, risk-free rate, volatility)
- Merton73 - Options on dividend-paying assets (adds continuous dividend yield)
- Black76 - Options on futures/forwards (forward price, rate, volatility)
- Asay82 - Options on futures with margining (forward price, volatility only)
- GarmanKohlhagen83 - FX options (spot, domestic rate, foreign rate, volatility)
- Heston93 - Stochastic volatility model (adds vol-of-vol, mean reversion, correlation)
- Bachelier - Normal model for rates/spreads (forward, rate, normal volatility)
Step 3: Instantiate the Pricing Engine
Combine the option contract and the pricing model into an AnalyticOptionPricer. This engine pairs the instrument definition with the model parameters, preparing for the pricing computation.
What happens:
- The pricer stores the option and model as a pair
- No computation occurs at this stage; it is purely setup
- Multiple pricers can be created with the same option but different models for comparison
Step 4: Compute Prices and Greeks
Execute the pricing computation to obtain the option price and all available Greeks. The analytic engine evaluates the closed-form formulas for the generalized BSM price and derives sensitivity measures by differentiating the pricing formula with respect to each parameter.
Output includes:
- Price - Theoretical fair value of the option
- Delta - Sensitivity to underlying price
- Gamma - Second-order sensitivity to underlying price
- Vega - Sensitivity to volatility
- Theta - Sensitivity to time decay
- Rho - Sensitivity to interest rate
- Vanna, Charm, Vomma, Speed, Color, Zomma, Ultima - Higher-order cross-Greeks
Step 5: Analyze and Compare Results
Review the pricing output and optionally compare results across different models. The report method outputs a structured summary of all computed values, enabling side-by-side comparison of model outputs.
Key considerations:
- Different models may produce different prices for the same contract due to differing assumptions
- Heston model provides fewer Greeks than BSM-family models (delta, gamma, rho, price)
- Bachelier model uses normal rather than log-normal distribution, producing qualitatively different risk profiles