Implementation:Avhz RustQuant BlackScholes73 Model
| Knowledge Sources | |
|---|---|
| Domains | Option_Pricing, Equity_Options, Quantitative_Finance |
| Last Updated | 2026-02-07 19:00 GMT |
Overview
Concrete tool for Black-Scholes (1973) stock option pricing provided by the RustQuant library.
Description
The BlackScholes73 struct defines the parameter set for the original Black-Scholes (1973) stock option pricing model. This is the foundational case of the Generalized Black-Scholes-Merton framework where the cost of carry b equals the risk-free rate r, corresponding to a non-dividend-paying stock.
Under this model, the underlying stock price follows geometric Brownian motion with constant drift equal to the risk-free rate (under the risk-neutral measure) and constant volatility. The cost of carry equals the risk-free rate because holding a stock requires financing at rate r with no offsetting dividend income.
The struct stores three parameters:
s-- The current stock price.r-- The risk-free interest rate.v-- The volatility of the stock price.
The actual option pricing, Greeks, and implied volatility computations are provided by the shared Generalized Black-Scholes-Merton engine, which dispatches based on the s(), r(), and b() accessor methods.
Usage
Use the Black-Scholes 1973 model for pricing European options on non-dividend-paying stocks. It is the simplest and most well-known option pricing model, serving as a baseline for more complex models. For dividend-paying stocks, use the Merton73 model instead.
Code Reference
Source Location
- Repository: RustQuant
- File: crates/RustQuant_models/src/blackscholes73.rs
- Lines: 1-31
Signature
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BlackScholes73 {
s: f64, // Stock price
r: f64, // Risk-free rate
v: f64, // Volatility
}
impl BlackScholes73 {
pub fn new(s: f64, r: f64, v: f64) -> Self;
fn s(&self) -> f64; // Returns s (stock price)
fn r(&self) -> f64; // Returns r (risk-free rate)
fn b(&self) -> f64; // Returns r (cost of carry = risk-free rate)
}
Import
use RustQuant::models::BlackScholes73;
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| s | f64 |
Yes | Current stock price. |
| r | f64 |
Yes | Risk-free interest rate. |
| v | f64 |
Yes | Volatility of the stock price. |
Outputs
| Name | Type | Description |
|---|---|---|
| s() | f64 |
Returns the stock price s. |
| r() | f64 |
Returns the risk-free rate r. |
| b() | f64 |
Returns r (cost of carry equals risk-free rate for non-dividend stocks). |
Usage Examples
use RustQuant::models::BlackScholes73;
use RustQuant::instruments::{BlackScholesMerton, TypeFlag};
// Create Black-Scholes 1973 model for a stock option
let model = BlackScholes73::new(
100.0, // stock price
0.05, // risk-free rate
0.20, // volatility (20%)
);
// The BlackScholes73 model parameters feed into the Generalized BSM pricer:
// s = 100.0, r = 0.05, b = 0.05 (b = r for non-dividend stocks)
// These are used by the shared GBS option pricing engine.