Cuando aplico la función de volatilidad implícita de la opción americana en el siguiente formato:
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)
}
Recibo el siguiente error: Error en americanOptionImpliedVolatilityEngine(type, value, underlying, :
/ / /QuantLib-1.6.2/ql/math/solver1d. hpp:202: En la función `QuantLib::Real QuantLib::Solver1D::solve(const F&, QuantLib::Real, QuantLib::Real, QuantLib::Real, QuantLib::Real) const [con F = QuantLib::{anónimo}::PriceError; Impl = QuantLib::Brent; QuantLib::Real = doble]': root no entre corchetes: f[1e-007,4] -> [2.230734e+000,2.306800e+001]
Lo cual es raro ya que recibo los valores IV cuando los conecto manualmente.
El conjunto de datos parece:
Cuando introduzco los valores manualmente, recibo los valores de cada fila.
¡Gracias por tu ayuda! Ben
0 votos
Hay un foro específico de quantlib donde creo que sería mejor hacer esta pregunta?