Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA BS选项函数语法错误_Excel_Vba_Options - Fatal编程技术网

Excel VBA BS选项函数语法错误

Excel VBA BS选项函数语法错误,excel,vba,options,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 * Sig

我正在尝试使用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行一直给我“语法错误”

这有什么不对?

需要两个参数。使用

NDOne = Application.Norm_S_Dist(DOne, true)
NDTwo = Application.Norm_S_Dist(DTwo, false)
标准S区(z,累积)

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

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

需要两个参数。使用

NDOne = Application.Norm_S_Dist(DOne, true)
NDTwo = Application.Norm_S_Dist(DTwo, false)
标准S区(z,累积)

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

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


什么样的变量是
S、K、r、q、tyr、Sigma
?为什么不声明变量的类型?对于instacne,`Dim ert,qrt为Double`@ShaiRado-这应该是
Dim ert为Double,qrt为Double
。如果没有第二个'as double',ert将是一个变量。
S、K、r、q、tyr、Sigma是什么类型的变量?为什么不声明变量的类型?对于instacne,`Dim ert,qrt为Double`@ShaiRado-这应该是
Dim ert为Double,qrt为Double
。如果没有第二个'as double',ert将是一个变体。