#js #calculator #built #options #black-scholes #timestamp #calculations

opcalc

An easy-to-use black-scholes option calculator. Made for JS, built in Rust.

1 unstable release

0.2.1 Jan 6, 2021

#1209 in WebAssembly

MIT license

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