全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
4916 1
2017-12-01
excel vba 期权BS模型和二叉树模型
附件列表

Excel的应用.pptx

大小:2.18 MB

只需: 3 个论坛币  马上下载

excel

二维码

扫码加我 拉你入群

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

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

全部回复
2018-3-31 10:41:56
要是能把金融建模内容发上来就好了。还有VBA的代码。附BS模型VBA一份:
Function BSOptionPrice(S, K, T, R, Div, Vol, Call_Put)
    d1 = (Application.Ln(S / K) + (R - Div + Vol ^ 2 / 2) * T) / (Vol * T ^ 0.5)
    d2 = d1 - Vol * T ^ 0.5
   
    If Call_Put = "CALL" Then
    x = 1
    ElseIf Call_Put = "PUT" Then
    x = -1
    Else
    BSOptionPrice = "ERROR"
    Exit Function
    End If
   
    Nd1 = Application.NormSDist(x * d1)
    Nd2 = Application.NormSDist(x * d2)
    BSOptionPrice = (S * Exp(-Div * T) * Nd1 - K * Exp(-R * T) * Nd2) * x
   
End Function


Function OptionDelta(S, K, T, R, Div, Vol, Call_Put)
    temp = S * 1E-05
    OptionDelta = (BSOptionPrice(S + temp / 2, K, T, R, Div, Vol, Call_Put) - BSOptionPrice(S - temp / 2, K, T, R, Div, Vol, Call_Put)) / temp
End Function


Function OptionGamma(S, K, T, R, Div, Vol, Call_Put)
    temp = S * 1E-05
    OptionGamma = (OptionDelta(S + temp / 2, K, T, R, Div, Vol, Call_Put) - OptionDelta(S - temp / 2, K, T, R, Div, Vol, Call_Put)) / temp
End Function

Function OptionTheta(S, K, T, R, Div, Vol, Call_Put)
    temp = T * 1E-05
    OptionTheta = (BSOptionPrice(S, K, T + temp / 2, R, Div, Vol, Call_Put) - BSOptionPrice(S, K, T - temp / 2, R, Div, Vol, Call_Put)) / temp
End Function

Function OptionVega(S, K, T, R, Div, Vol, Call_Put)
    temp = Vol * 1E-05
    OptionVega = (BSOptionPrice(S, K, T, R, Div, Vol + temp / 2, Call_Put) - BSOptionPrice(S, K, T, R, Div, Vol - temp / 2, Call_Put)) / temp
End Function

Function OptionRho(S, K, T, R, Div, Vol, Call_Put)
    temp = R * 1E-05
    OptionRho = (BSOptionPrice(S, K, T, R + temp / 2, Div, Vol, Call_Put) - BSOptionPrice(S, K, T, R - temp / 2, Div, Vol, Call_Put)) / temp
End Function
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群