Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Workflow:Avhz RustQuant Analytic Option Pricing

From Leeroopedia


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

Execution Diagram

GitHub URL

Workflow Repository