用Python编写的选项价格计算器棒极了,但是很轻

option-price的Python项目详细描述


期权价格

option-price是一个基于Python的功能强大但简单的期权价格计算器。它使用矢量化,这使得它非常快。在

GUI版本可用here。在

文档可用here。在

安装

pip install option-price

快速入门

^{pr2}$

选项可以通过以下方式初始化:

some_option=Option(european=True,kind='put',s0=100,k=120,t=45,sigma=0.01,r=0.05,dv=0)

或者

some_option=Option(european=False,kind='call',s0=120,k=100,sigma=0.01,r=0.05,start='2008-2-14'end='2008-3-14'dv=0)

你可以通过

print(some_option)

它将打印出选项的信息。在

Type:           European
Kind:           call
Price initial:  80
Price strike:   120
Volatility:     1.0%
Risk free rate: 5.0%
Start Date:     2020-03-24
Expire Date:    2020-04-24
Time span:      31.0 days

属性

NameTypeDefinition
europeanbooleanTrue if the option is an European option and False if it's an American one.
kindstr‘call’ for call option while ‘put’ for put option. Other strs are not valid.
s0numberinitial price
kintstrike price
sigmafloatvolatility of stock
rfloatrisk free interest rate per annum
[optional] dvfloatdividend rate. 0 for non-stock option, which is also the default
[optional] tintlength of option in days
[optional] startstrbeginning date of the option, string like '2008-02-14',default today
[optional] endstrend date of the option, string like '2008-02-14',default today plus param t

注意,如果start、end和t都给定,那么t将选择end和start之间的差

而且,要么是t要么是(start and end)

计算

option-price有三种计算期权价格的方法。是的

  • B-S-M公司
  • 蒙特卡洛
  • 二叉树

默认情况下,option-price将选择B-S-M算法。价格可以简单地用

price=some_option.getPrice()

其他计算方法可通过添加一些参数来实现。例如

price=some_option.getPrice(method='MC',iteration=500000)

或者

price=some_option.getPrice(method='BT',iteration=1000)

MC代表蒙特卡罗,BT代表二叉树。在

迭代有一个默认值。请注意,值越大,价格越慢、越精确。在

默认值是速度和精度的平衡。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?