1 编写一个期权类
“万物皆对象”,既然我们需要针对一个欧式期权进行计算,不妨将期权编写成一个类,在将某个期权实例化为对象时,将其各种属性赋予这个对象。
编写类时,要先给类起一个名字,比如Option.
然后想象一下,一个欧式期权应该具有哪些属性,从而编写一个初始化函数。我们的欧式期权,应该具有以下几个属性。
看涨或看跌(c or p)标的资产现价(S0)期权执行价格(K)期权到期时间(t)适用的无风险利率(rf)适用的波动率(sigma)股利信息(本例中使用连续股利率dv)
也就是说,为了构造一个欧式期权对象(或为了计算期权的价格),我们至少要知道上面的七个信息。换言之,程序的使用者要输入这七个信息,才能构造一个期权对象。因此,我们的初始化函数要从输入端读取七个变量。
初始化函数的名字是有规定的,叫做"__init__",应该是英语initialize的简写。它的参数有8个,第一个叫做self,它代表了对象本身。在编写一个类时,所有的方法(函数)都要有self这个参数,并默认放在第一个位置。在初始化函数中,我们用self.xxx的方式为类的实例规定它们的属性。如定义self.dv = dv * 1.0,即赋予了实例一个名为dv的属性,并赋值为从输入端读取的dv.
参数的读取区中,dv=0表示dv不是一个强制参数,如果我们不输入dv,则它的值为默认的0.
输入期权的看涨和看跌属性时,我们可以自定义一些规则,我在这里使用的规则是,如果输入