第4章 编写Python程序计算看涨期权价格

期权理论对于许多读者来说就像是高深的火箭科学。为了不让深奥的期权理论成为读者学习的障碍,本章没有详细介绍期权理论及相关的数学公式,而是把重点放在用13行Python代码计算看涨期权的价格。看涨期权的买方支付期权费,以获得在未来某个指定日期买入股票的权利,而期权的卖方收到期权费并承担把股票卖给期权买方的义务。欧式期权只能在期权到期时行使,而美式期权可以在到期日或之前的任意一天行使。

本章将重点讨论以下内容。

  • 计算看涨期权价格的13行Python代码
  • 利用空壳法编写一个复杂的Python程序
  • 使用注释法编写一个复杂的Python程序
  • 如何调试他人写的程序

可以用下面5行Python代码计算欧式看涨期权的价格。

from math import *
def bs_call(S,X,T,r,sigma):
   d1 = (log(S/X)+(r+sigma*sigma/2.)*T)/(sigma*sqrt(T)) 
   d2 = d1-sigma*sqrt(T)
   return S*CND(d1)-X*exp(-r*T)*CND(d2)

程序的第1行导入math模块,使我们可以调用所需的log()sqrt()exp()函数。看涨期权的价格依赖5个参数:S是目前的股票价格,X是执行价格(指定价格),T是到期期限(以年计),r是连续复利的无风险利率,sigma是标的证券(如股票)的波动率。以上代码中的CND函数用来计算累积标准正态分布函数。由于导入的数学模块不包括累积标准正态分布函数,所以必须自己编写一个相应的Python程序。如果可以导入一个包含累积标准正态分布函数的模块,就只用以上的5行代码给看涨期权定价!第6章将展示如何使用一个叫作SciPy的模块来做到这一点。以下是我们编写的CND函数。 ...

Get Python金融实战 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.