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 systemsfast(): Balanced speed/accuracy for developmentresearch(): High-precision settings for researchminimal(): 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
ModelParamstrait so that the calibration pipeline can pass arbitrary parameters down to the calibrator in a type-erased fashion. - models
Structs§
- Calibration
Params - 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.