根不括号/美国期权隐含波动率/ R.

时间:2017-12-08 14:48:08

标签: r options quantlib volatility

当我以下列格式应用americanoptionimpliedvolatility函数时:

 impliedvol_test_v1$IV <- NA
 impliedvol_test_v1$`risk free rate` <- as.numeric(impliedvol_test_v1$`risk 
 free rate`)

 for(iRow in seq(1,nrow(impliedvol_test_v1),1)){

 typeTMP <- impliedvol_test_v1$type[iRow]  
 valueTMP <- impliedvol_test_v1$value[iRow]
 strikeTMP <- impliedvol_test_v1$strike[iRow]
 underlyingTMP <- impliedvol_test_v1$underlying[iRow]
 dividendyieldTMP <- impliedvol_test_v1$`Dividend yield`[iRow]
 riskfreerateTMP <- impliedvol_test_v1$`risk free rate`[iRow]
 maturityTMP <- impliedvol_test_v1$maturity[iRow]
 volatilityTMP <- impliedvol_test_v1$volatility[iRow]

 impliedvol_test_v1$IV[iRow] <- AmericanOptionImpliedVolatility(typeTMP, 
 valueTMP,strikeTMP, underlyingTMP, dividendyieldTMP, riskfreerateTMP, 
 maturityTMP, volatilityTMP)

}

我收到以下错误:americanOptionImpliedVolatilityEngine中的错误(类型,值,底层,:

../../../ QuantLib-1.6.2 / ql / math / solver1d.hpp:202:在函数`QuantLib :: Real QuantLib :: Solver1D :: solve(const F&amp;,QuantLib :: Real,QuantLib :: Real,QuantLib :: Real,QuantLib :: Real)const [with F = QuantLib :: {anonymous} :: PriceError; Impl = QuantLib :: Brent; QuantLib :: Real = double]':root不括号:f [1e-007,4] - &gt; [2.230734e + 000,2.306800e + 001]

这很奇怪,因为我手动插入时会收到IV值。

数据集如下所示:

enter image description here

当我手动插入值时,我会收到每行的值。

感谢您的帮助!本

1 个答案:

答案 0 :(得分:1)

自从我开始RQuantLib十五年(!!)之前,我回答了这个问题了六次。问题真的纯粹是数字的,你几乎无能为力。基础QuantLib库无法解决为您提供的定价参数找到隐含波动率的一维问题。不多也不少。

我建议您了解R try()tryCatch()来编写应对错误的代码。