楼主: hexixing
1238 3

[程序分享] black_scholes models using sympy [推广有奖]

  • 1关注
  • 2粉丝

已卖:1350份资源

博士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
451 个
通用积分
0.5347
学术水平
0 点
热心指数
6 点
信用等级
0 点
经验
207 点
帖子
100
精华
0
在线时间
371 小时
注册时间
2009-3-8
最后登录
2026-1-21

楼主
hexixing 发表于 2020-3-8 17:00:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用python sympy写的基础版本black-scholes期权公式以及相关希腊字母的程序,可用于求具体的期权价值和希腊字母值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


black-scholes option models.rar
下载链接: https://bbs.pinggu.org/a-3089902.html

42.6 KB

用sympy写的black-scholes 期权公式,可用于求值

本附件包括:

  • bsm models.html
  • bsm models.ipynb

已有 2 人评分经验 收起 理由
cheetahfly + 100 精彩帖子
yunnandlg + 100 精彩帖子

总评分: 经验 + 200   查看全部评分

沙发
hexixing 发表于 2020-3-9 17:08:29
附件将以上程序包装成了python class,用起来更方便.
附件是txt,自己改成.py文件

%run BSM.py
myoption=BSM().calculate()

vardict={S:1,X:2,r:0.05,sigma:0.29,T:1}
# 注意字典中的S:1不要写成"S":1,因为用的是sympy中的符号,不用引号

计算看涨期权
myoption.call(vardict)
0.0184
计算希腊值
myoption.Delta(vardict,tp='put')
-0.981
部分希腊值(Theta)定义不对,算出来是错误的.


BSM.txt

3.1 KB

藤椅
hexixing 发表于 2020-3-10 10:00:43
实践证明,用sympy直接对变量求导的方法求希腊字母太不准了,比如Delta,直接算的话看涨期权Delta为N(d1),
假设{S:10,X:12,r:0.05,sigma:0.3,T:0.5},带入求得N(d1)=0.375
但是用c对S求导算得0.313
其他希腊字母简直差得太远,有的符号都反了,看来用求导的方式算希腊字母行不通,还得使用有限差分等办法.
程序中给出的希腊字母值可能连参考指标都算不上,顶多作为对概念理解的一个帮助吧. 慎用!!!

板凳
hexixing 发表于 2020-3-10 10:06:02
由此可以看出,sympy真的只是符号方式,用于数值求解误差似乎大的难以接受

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-13 13:12