收藏 分销(赏)

股票期权二叉树定价excelVBA程序.docx

上传人:精**** 文档编号:4817523 上传时间:2024-10-13 格式:DOCX 页数:5 大小:40.17KB 下载积分:6 金币
下载 相关 举报
股票期权二叉树定价excelVBA程序.docx_第1页
第1页 / 共5页
股票期权二叉树定价excelVBA程序.docx_第2页
第2页 / 共5页


点击查看更多>>
资源描述
Sub 期权定价() Dim i As Long '将输入的参数的值赋给相应的变量 s0 = Worksheets(1).Cells(1, 2) x = Worksheets(1).Cells(2, 2) r = Worksheets(1).Cells(3, 2) s = Worksheets(1).Cells(4, 2) t = Worksheets(1).Cells(5, 2) n = Worksheets(1).Cells(6, 2) '生成表格 Worksheets(1).Cells(1, 4) = "期数" Worksheets(1).Cells(2, 4) = "时间(年)" Worksheets(1).Cells(3, 4) = "上行乘数" Worksheets(1).Cells(4, 4) = "下行乘数" Worksheets(1).Cells(5, 4) = "股票价格" Worksheets(1).Cells(n + 6, 4) = "执行价格" Worksheets(1).Cells(n + 7, 4) = "上行概率" Worksheets(1).Cells(n + 8, 4) = "下行概率" Worksheets(1).Cells(n + 9, 4) = "买入期权价格" '合并相应单元格 Set rr1 = Range("D5") For i = 1 To n Set rr1 = Union(Range("D" & (5 + i)), rr1) Next rr1.Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With '设置格式 居中 With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With '合并相应单元格 Set rr2 = Range("D" & (n + 9)) For i = 1 To n Set rr2 = Union(Range("D" & (n + 9 + i)), rr2) Next rr2.Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With '设置格式 居中 With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With '计算表格相应内容 '期数 Worksheets(1).Cells(1, 5) = 0 For i = 1 To n Worksheets(1).Cells(1, 5 + i) = i Next '时间(年) Worksheets(1).Cells(2, 5) = 0 For i = 1 To n Worksheets(1).Cells(2, 5 + i) = t / (12 * n) * i Next '上行乘数 u = Exp(s * (t / (12 * n)) ^ 0.5) Worksheets(1).Cells(3, 5) = u '下行乘数 d = 1 / u Worksheets(1).Cells(4, 5) = d '股票价格 For i = 1 To n + 1 Worksheets(1).Cells(4 + i, 4 + i) = 50 * d ^ (i - 1) Next For i = 1 To n For j = i To n Worksheets(1).Cells(4 + i, 5 + j) = Worksheets(1).Cells(4 + i, 4 + j) * u Next Next '执行价格 Worksheets(1).Cells(n + 6, 5 + n) = x '上行概率、下行概率 p = ((r * t) / (12 * n) + 1 - d) / (u - d) Worksheets(1).Cells(n + 7, 5 + n) = p Worksheets(1).Cells(n + 8, 5 + n) = 1 - p '买入期权价格 '最后一期的期权价值 For i = 1 To n + 1 q = Worksheets(1).Cells(4 + i, 5 + n) - x If q > 0 Then Worksheets(1).Cells(n + 8 + i, 5 + n) = q Else Worksheets(1).Cells(n + 8 + i, 5 + n) = 0 End If Next '由后往前推各期的价值 For ii = n To 1 Step -1 '列 For jj = 1 To ii '行 If Worksheets(1).Cells(n + 8 + jj, 4 + ii + 1) > 0 Or Worksheets(1).Cells(n + 8 + jj + 1, 4 + ii + 1) > 0 Then Worksheets(1).Cells(n + 8 + jj, 4 + ii) = (p * Worksheets(1).Cells(n + 8 + jj, 4 + ii + 1) + (1 - p) * Worksheets(1).Cells(n + 8 + jj + 1, 4 + ii + 1)) / (1 + (r / 12) * (t / n)) Else Worksheets(1).Cells(n + 8 + jj, 4 + ii) = 0 End If Next Next End Sub 效果如下:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服