【期权计算】基于vollib实现JS的期权计算库

前言

常见期权数值的计算基于BSM公式,通常来讲期权的计算使用Python实现更加方便。这里所说的“期权计算”,一般包括期权的理论价值、波动率、希腊字母等。

但是有些场景下,这些数值的计算需要在Web前端实现。笔者最近发现一个比较好用的库是vollib(Welcome to vollib)。从GitHub上看,这个库已经有很多年没有继续更新了。不过相比于打包Python、C++为webasm,这个库已经将其Python实现的一些期权计算功能封装成了JS库。

打包

从官网下载的官方包确实代码比较旧,到处方法和对象还是使用注册到window对象的方式。我将源码做了些许调整,改为了ES5的export方式导出符号,这样就支持了import直接导入符号。如果有需要可以去我的资源区下载:

修改为ES5风格导出的vollib

使用

vollib主要提供了三种不同的计算方式,分别是black、black_scholes和black_scholes_merton。如果不是为了研究一般使用black_scholes_merton应该足够了。下面仅以使用black_scholes_merton为例进行说明。

将源码改为export导出后,调用库的方式很简单,直接用import即可:

import {black_scholes_merton} from '../libs/js_vollib.js';

black_scholes_merton模块下,分别提供了多个不同的常见方法,包括:

计算理论价值:black_scholes_merton.black_scholes_merton,调用示例:

black_scholes.black_scholes(
            optType,         ///期权类型: c或p
            uPrice,          //标的物价格
            strike,          //行权价
            expireInYear,    //年华剩余天数
            rfir,            //无风险利率
            sigma            //预估的波动率
);

计算波动率:black_scholes_merton.implied_volatility

black_scholes.implied_volatility.implied_volatility(
            oPrice,          //权利金价格
            uPrice,          //标的物价格
            strike,          //行权价
            expireInYear,    //年化剩余天数
            rfir,            //无风险利率
            optType          //期权类型: c或p
);

计算希腊字母:black_scholes_merton.greeks,希腊字母的计算分为解析法和数值法两个API,以delta为例,分别如下调用:

//数值法计算delta
black_scholes.greeks.numerical.delta(
            optType,             //期权类型: c或p
            uPrice,              //标的物价格
            strike,              //行权价
            expireInYear,        //年华剩余天数
            rfir,                //无风险利率
            sigma                //预估的波动率
);

//解析法计算delta
black_scholes.greeks.analytical.delta(
            optType,             //期权类型: c或p
            uPrice,              //标的物价格
            strike,              //行权价
            expireInYear,        //年华剩余天数
            rfir,                //无风险利率
            sigma                //预估的波动率
);

可以看到,vollib的API调用非常简单。通过调用第三方库实现底层计算,也可以简化我们策略计算器的开发复杂度,更专注于上层策略开发的准确性和实用性。专注于期权策略本身。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值