B-S模型用excel计算
(2018-03-10 17:47:34)方法一:
借助强大的Excel平台,B-S算法可以轻松解决,具体步骤如下:
1、打开一个空白Excel工作表,打开VBA编辑器(点击菜单:工具 -> 宏 -> Visual Basic编辑器):
2、插入模块(点击VBA编辑器菜单:插入 -> 模块):
3、将以下代码复制/粘贴到代码窗口中:
Function CallOpt(stock, exercise, maturity, rate, volatility) As Double
End Function
Function PutOpt(stock, exercise, maturity, rate, volatility) As Double
End Function
3、关闭“Visual Basic 编辑器”窗口,回到工作表。此时若查看函数列表,可看到在“用户定义”类别中增加了两个函数,CallOpt和PutOpt:
=CallOpt(stock,exercise,maturity,rate,volatility) 用于计算认购权证的理论价格;
=PutOpt(stock,exercise,maturity,rate,volatility) 用于计算认沽权证的理论价格。
两个函数都是需要5个变量,依次为:
stock-正股现价;
exercise-权证行权价;
maturity-权证剩余期限(折算成年,在Excel中=(到期日-当前日)/365);
rate-无风险利率(一般取国债的年收益率);
volatility-波动率(一般取正股最近3个月的历史波动率);
现在只需要在单元格中输入函数名并依顺序输入各变量,就可轻而易举的算出权证理论价格了。若还有不明白的,请将下表复制/粘贴到工作表“A1”单元格中试试看。
|
数据 |
说明 |
|
3.30 |
stock-正股现价(3.30元) |
|
3.50 |
exercise-权证行权价(3.50元) |
|
0.50 |
maturity-权证剩余期限(0.5年) |
|
0.04 |
rate-无风险利率(4%) |
|
0.30 |
volatility-波动率(30%) |
|
公式 |
说明(结果) |
|
=CallOpt(A2,A3,A4,A5,A6) |
上述条件下认购权证的理论价格(0.224元) |
|
=PutOpt(A2,A3,A4,A5,A6) |
上述条件下认沽权证的理论价格(0.354元) |
最后将该Excel文件保存起来。记住,以后每次打开该文件,都会出现以下的安全警告,记得一定要点选“启用宏”,否则自定义函数将不能使用。
方法二:包含分红的模型
EXCEL中BS模型的VBA代码如下
Function BSOptionPrice(S, K, T, R, Div,
Vol, Call_Put)
End Function
S股价, K行权价, T时间, R利率, Div分红, Vol波动率, Call_Put逻辑值、1为call、-1为put
注:VBA的函数log等于excel工作表函数ln

加载中…