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:

```js // Import opcalc as a webassembly module

const option = opcalc .createoption() .withassetprice(100) .withstrike(105) .withvolatility(0.2) .withinterest(0.005) .withcurrenttime(1606780800) // timestamp in seconds: 2020/12/01 00:00:00 .withmaturitytime(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:

js const call = option.call_value(); const delta = option.call_delta(); // ...

Examples

There are multiple examples for using this library in the /examples folder.

Using the library in Rust

Using the library in Rust is similar to the experience in JavaScript.

```rust use opcalc::option::builder::BSOptionBuilder;

let option = BSOptionBuilder::new() .withassetprice(100.0) .withstrike(105.0) .withinterest(0.008) .withvolatility(0.23) .withcurrenttime(1606780800) // timestamp in seconds: 2020/12/01 00:00:00 .withmaturitytime(1610668_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.