Expand description
§quantre
crates.io | docs.rs | github | home
Quant wheels reinvented in Rust.
§Installation
cargo add quantre§Examples
§Distributions
// main.rs
use quantre::random;
use quantre::normal;
fn main() {
// A random number from [0, 1)
println!("{}", random::rand1());
// Five random integers from -2 to 7
println!("{:?}", random::randi(5, -2, 7));
// Three random numbers from N(0, 1)
println!("{:?}", random::randn(3, 0., 1.));
// P(X <= 1.96), X ∈ N(0, 1)
println!("{}", normal::cdf(1.96, 0., 1.));
}§Option Pricing
// main.rs
use quantre::instrument::Option;
use quantre::price;
fn main() {
let option = Option {
underlying: 100.,
strike: 95.,
ttm: 1. / 12., // 1-month to maturity
vol: 0.35, // volatility
quote_rate: 0.02, // risk free rate
base_rate: 0.03 // dividend yield
};
// Black-Scholes-Merton (BSM)
let (call, put) = price::bsm(option);
// Black 76 - Options on Futures
// let (call, put) = price::black(option);
// Garman-Kohlhagen - FX options
// let (call, put) = price::fx(option);
println!("{:.4} {:.4} ", call, put);
}§Documentation
Modules§
- instrument
- Financial Instruments like Options
- normal
- Normal Distribution Utility Functions
- price
- Pricing Models
- random
- Pseudorandom Number Generators (P-RNGs)