Crate surface_lib

Crate surface_lib 

Source
Expand description

§Surface-Lib: Advanced Option Pricing and Volatility Surface Calibration

surface-lib is a high-performance Rust library designed for quantitative finance applications, specifically focused on option pricing and volatility surface modeling. The library provides robust implementations of industry-standard models with advanced calibration capabilities.

§Core Features

  • SVI Model: Stochastic Volatility Inspired model for volatility surface representation
  • Advanced Calibration: CMA-ES and L-BFGS-B optimization with robust parameter estimation
  • Option Pricing: Black-Scholes pricing with model-derived implied volatilities
  • Production Ready: Optimized for real-time trading and backtesting systems

§Quick Start

use surface_lib::{calibrate_svi, price_with_svi, default_configs, CalibrationParams, MarketDataRow, FixedParameters};
use surface_lib::models::svi::svi_model::SVIParams;

// Load your market data
let market_data: Vec<MarketDataRow> = load_market_data();

// Calibrate SVI model parameters
let config = default_configs::fast();
let calib_params = CalibrationParams::default();
let (objective, params, used_bounds) = calibrate_svi(market_data.clone(), config, calib_params, None)?;

// Create SVI parameters for pricing
let svi_params = SVIParams {
    t: 0.0274, a: params[0], b: params[1],
    rho: params[2], m: params[3], sigma: params[4]
};
let fixed_params = FixedParameters { r: 0.02, q: 0.0 };

// Price options with calibrated model
let pricing_results = price_with_svi(svi_params, market_data, fixed_params);

§Model Support

Currently supported volatility models:

  • SVI (Stochastic Volatility Inspired): Industry-standard single-slice model

§Configuration Presets

The library provides several optimization configuration presets:

  • production(): High accuracy for live trading systems
  • fast(): Balanced speed/accuracy for development
  • research(): High-precision settings for research
  • minimal(): Quick validation settings

Re-exports§

pub use calibration::config::CmaEsConfig;
pub use calibration::config::OptimizationConfig;
pub use calibration::types::FixedParameters;
pub use calibration::types::MarketDataRow;
pub use calibration::types::PricingResult;
pub use models::svi::svi_calibrator::SVIParamBounds;
pub use models::svi::svi_model::SVIParams;
pub use models::linear_iv::build_fixed_time_metrics;
pub use models::linear_iv::build_linear_iv;
pub use models::linear_iv::build_linear_iv_from_market_data;
pub use models::linear_iv::compute_atm_iv;
pub use models::linear_iv::compute_fixed_delta_iv;
pub use models::linear_iv::DeltaIv;
pub use models::linear_iv::DeltaMetrics;
pub use models::linear_iv::FixedTimeMetrics;
pub use models::linear_iv::LinearIvConfig;
pub use models::linear_iv::LinearIvOutput;
pub use models::linear_iv::TemporalConfig;
pub use models::linear_iv::TemporalInterpMethod;
pub use model_params::ModelParams;
pub use model_params::SviModelParams;

Modules§

calibration
default_configs
Pre-configured optimization settings for common use cases.
model_params
Model-specific parameter containers used to tweak calibrators without hard-coding constants in the model implementation. Each model should provide its own struct that implements the ModelParams trait so that the calibration pipeline can pass arbitrary parameters down to the calibrator in a type-erased fashion.
models

Structs§

CalibrationParams
Configuration parameters for SVI model calibration.

Functions§

calibrate_svi
Calibrate SVI model parameters to market option data.
evaluate_svi
Evaluate the SVI calibration objective for a fixed parameter set.
price_with_svi
Price European options using calibrated SVI model parameters.