Crates.io | opcalc |
lib.rs | opcalc |
version | 0.2.1 |
source | src |
created_at | 2021-01-06 21:55:51.608853 |
updated_at | 2021-01-06 21:55:51.608853 |
description | An easy-to-use black-scholes option calculator. Made for JS, built in Rust. |
homepage | |
repository | https://github.com/mfg-nyu/opcalc |
max_upload_size | |
id | 333429 |
size | 588,495 |
An easy-to-use black-scholes option calculator. Made for JS, built in Rust.
You may configure an option calculation instance like so:
// Import opcalc as a webassembly module
const option = opcalc
.create_option()
.with_asset_price(100)
.with_strike(105)
.with_volatility(0.2)
.with_interest(0.005)
.with_current_time(1606780800) // timestamp in seconds: 2020/12/01 00:00:00
.with_maturity_time(1610668800) // timestamp in seconds: 2021/01/15 00:00:00
.finalize();
After the option has been created, you may access its prices (call and put), greeks (delta, gamma, and more) like so:
const call = option.call_value();
const delta = option.call_delta();
// ...
There are multiple examples for using this library in the /examples
folder.
Using the library in Rust is similar to the experience in JavaScript.
use opcalc::option::builder::BSOptionBuilder;
let option = BSOptionBuilder::new()
.with_asset_price(100.0)
.with_strike(105.0)
.with_interest(0.008)
.with_volatility(0.23)
.with_current_time(1_606_780_800) // timestamp in seconds: 2020/12/01 00:00:00
.with_maturity_time(1_610_668_800) // timestamp in seconds: 2021/01/15 00:00:00
.finalize()
.unwrap(); // safely unwrap here because all required builder steps are taken
// then, use this option to obtain calculation results
let gamma = option.call_gamma();
Want to contribute? See our guide to contributing.