|
quant-pricer-cpp
|
Analytic Black–Scholes European option pricing and Greeks. More...
Classes | |
| struct | Params |
Functions | |
| double | call_price (const Params &p) |
| double | call_price (double S, double K, double r, double q, double sigma, double T) |
| Price a European call option under Black–Scholes (present value). | |
| double | d1 (double S, double K, double r, double q, double sigma, double T) |
| double | d2 (double d1_value, double sigma, double T) |
| double | delta_call (double S, double K, double r, double q, double sigma, double T) |
| double | delta_put (double S, double K, double r, double q, double sigma, double T) |
| double | gamma (double S, double K, double r, double q, double sigma, double T) |
| double | implied_vol_call (double S, double K, double r, double q, double T, double price) |
| double | implied_vol_put (double S, double K, double r, double q, double T, double price) |
| double | normal_cdf (double x) |
| double | normal_pdf (double x) |
| double | put_price (const Params &p) |
| double | put_price (double S, double K, double r, double q, double sigma, double T) |
| Price a European put option under Black–Scholes (present value). | |
| double | reiner_rubinstein_price (OptionType opt, const BarrierSpec &barrier, double S, double K, double r, double q, double sigma, double T) |
| double | rho_call (double S, double K, double r, double q, double sigma, double T) |
| double | rho_put (double S, double K, double r, double q, double sigma, double T) |
| double | theta_call (double S, double K, double r, double q, double sigma, double T) |
| double | theta_put (double S, double K, double r, double q, double sigma, double T) |
| double | vega (double S, double K, double r, double q, double sigma, double T) |
Analytic Black–Scholes European option pricing and Greeks.
Reiner–Rubinstein closed-form barrier option pricer.
|
inline |
| double quant::bs::call_price | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
Price a European call option under Black–Scholes (present value).
| S | spot price |
| K | strike |
| r | risk-free rate (cont.) |
| q | dividend yield (cont.) |
| sigma | volatility (per annum) |
| T | time to expiry (years) |
|
inline |
Helper: d1.
| S | spot price |
| K | strike |
| r | risk-free rate (cont.) |
| q | dividend yield (cont.) |
| sigma | volatility (per annum) |
| T | time to expiry (years) |
|
inline |
Helper: d2 = d1 - sigma * sqrt(T).
| d1_value | the value of d1 |
| sigma | volatility (per annum) |
| T | time to expiry (years) |
| double quant::bs::delta_call | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
Greeks (per 1.0 change in inputs; vega per 1.0 vol unit). All Greeks returned are present-value sensitivities.
| double quant::bs::delta_put | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::gamma | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::implied_vol_call | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | T, | ||
| double | price | ||
| ) |
Implied volatility from price using a robust bracketed solver. Returns NaN if no solution is found within [1e-6, 5.0].
| double quant::bs::implied_vol_put | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | T, | ||
| double | price | ||
| ) |
|
inline |
Standard normal CDF (via erfc for tail stability).
| x | input real value |

|
inline |
Standard normal PDF.
| x | input real value |

|
inline |
| double quant::bs::put_price | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
Price a European put option under Black–Scholes (present value).
| S | spot price |
| K | strike |
| r | risk-free rate (cont.) |
| q | dividend yield (cont.) |
| sigma | volatility (per annum) |
| T | time to expiry (years) |
| double quant::bs::reiner_rubinstein_price | ( | OptionType | opt, |
| const BarrierSpec & | barrier, | ||
| double | S, | ||
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::rho_call | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::rho_put | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::theta_call | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::theta_put | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |
| double quant::bs::vega | ( | double | S, |
| double | K, | ||
| double | r, | ||
| double | q, | ||
| double | sigma, | ||
| double | T | ||
| ) |