VBA BS Option函数语法错误

时间:2016-07-18 06:20:10

标签: excel vba options

我正在尝试使用VBA编写BS选项调用值函数:

Function BSCallValue(S, K, r, q, tyr, Sigma)
' returns black-scholes call value (allowing for q=div yld)
Dim ert, qrt
Dim DOne, DTwo, NDOne, NDTwo
ert = Exp(-r * tyr)
qrt = Exp(-q * tyr)

DOne = (Log(S / K) + (r - q + 0.5 * Sigma^2) * tyr) / (Sigma * Sqr(tyr))
DTwo = (Log(S / K) + (r - q - 0.5 * Sigma^2) * tyr) / (Sigma * Sqr(tyr))
NDOne = Application.Norm_S_Dist(DOne)
NDTwo = Application.Norm_S_Dist(DTwo)

BSCallValue = (S * qrt * NDOne - K * ert * NDTwo)


End Function

然而,DOne和DTwo一直给我提供语法错误'。

这有什么不对吗?

1 个答案:

答案 0 :(得分:0)

Norm_S_Dist需要两个参数。使用,

NDOne = Application.Norm_S_Dist(DOne, true)
NDTwo = Application.Norm_S_Dist(DTwo, false)
  

NORM.S.DIST(Z,累计)   

  NORM.S.DIST函数语法具有以下参数:   

  Z(必填)您想要分配的值   累积(必需)累积是确定函数形式的逻辑值。如果cumulative为TRUE,则NORMS.DIST返回累积分布函数;如果为FALSE,则返回概率质量函数。