1 unstable release
0.2.1 | Jan 6, 2021 |
---|
#1209 in WebAssembly
235KB
861 lines
opcalc
An easy-to-use black-scholes option calculator. Made for JS, built in Rust.
Getting started
Using the library in JavaScript
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();
// ...
Examples
There are multiple examples for using this library in the /examples
folder.
- React
- Angular (coming soon)
- Vue.js (coming soon)
Using the library in Rust
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();
Contributing
Want to contribute? See our guide to contributing.
Dependencies
~12MB
~207K SLoC