pub struct BsmParams {
pub spot: f64,
pub strike: f64,
pub time_years: f64,
pub rate: f64,
pub dividend_yield: f64,
pub vol: f64,
}Expand description
Black–Scholes–Merton inputs (European, continuous dividend yield q).
§Field meanings (trading)
| Field | Trading meaning |
|---|---|
spot | Underlier mid / last (or your mark) |
strike | Option strike |
time_years | Fraction of year to expiry (day-count is your policy) |
rate | Continuous funding / risk-free input to the model |
dividend_yield | Continuous yield q (dividends, or borrow approximation) |
vol | Annualized σ — model input or implied from market |
§Examples
use finance_solution::derivatives::BsmParams;
let p = BsmParams::atm_one_year(100.0, 0.05, 0.20);
assert_eq!(p.spot, p.strike);
assert_eq!(p.time_years, 1.0);Convert calendar days with an explicit day-count (engine responsibility):
use finance_solution::derivatives::BsmParams;
let days = 21.0;
let p = BsmParams {
spot: 50.0,
strike: 55.0,
time_years: days / 365.25,
rate: 0.04,
dividend_yield: 0.01,
vol: 0.30,
};
assert!(p.time_years < 0.1);Fields§
§spot: f64§strike: f64§time_years: f64Time to expiry in years.
rate: f64Continuous risk-free rate.
dividend_yield: f64Continuous dividend yield (equity) or foreign-rate analog in FX-style setups.
vol: f64Annualized volatility (absolute).
Implementations§
Source§impl BsmParams
impl BsmParams
Sourcepub const fn atm_one_year(spot: f64, rate: f64, vol: f64) -> Self
pub const fn atm_one_year(spot: f64, rate: f64, vol: f64) -> Self
ATM, one year, zero dividend yield — convenient textbook / smoke fixture.
Sourcepub fn with_days_365_25(
spot: f64,
strike: f64,
days: f64,
rate: f64,
dividend_yield: f64,
vol: f64,
) -> Self
pub fn with_days_365_25( spot: f64, strike: f64, days: f64, rate: f64, dividend_yield: f64, vol: f64, ) -> Self
Build from calendar days using Actual/365.25 style (days / 365.25).
Desks differ (business days, 365, 252). Prefer this helper only when that
convention is intentional; otherwise set time_years yourself.
Trait Implementations§
impl Copy for BsmParams
impl StructuralPartialEq for BsmParams
Auto Trait Implementations§
impl Freeze for BsmParams
impl RefUnwindSafe for BsmParams
impl Send for BsmParams
impl Sync for BsmParams
impl Unpin for BsmParams
impl UnsafeUnpin for BsmParams
impl UnwindSafe for BsmParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more