У меня есть набор данных в кадре данных со следующей информацией:R с помощью применять/plyr с функцией RQuantlib
> head(rs1)
dater adjStkPrice optSym expire strike bid ask unadjStkPrice daysLeft pnl
1 2011-01-03 127.05 SPY 131221P00115000 2013-12-21 115 14.89 15.40 127.05 1083 319.5
2 2011-01-04 126.98 SPY 131221P00115000 2013-12-21 115 15.00 15.39 126.98 1082 328.4
3 2011-01-05 127.64 SPY 131221P00115000 2013-12-21 115 14.39 14.86 127.64 1081 287.2
4 2011-01-06 127.39 SPY 131221P00115000 2013-12-21 115 14.38 14.80 127.39 1080 278.7
5 2011-01-07 127.14 SPY 131221P00115000 2013-12-21 115 14.67 15.10 127.14 1079 300.2
6 2011-01-10 126.98 SPY 131221P00115000 2013-12-21 115 14.75 15.19 126.98 1076 303.4
Я пытаюсь получить подразумеваемой волатильности с помощью функции AmericanOptionImpliedVolatility
в RQuantLib
пакете. Проблема заключается в том, что он, кажется, принимать только одиночные наборы значений:
> rs1$impVol <- AmericanOptionImpliedVolatility("put", rs1$ask,
+ rs1$adjStkPrice, rs1$strike, .02, .05, rs1$daysLeft/ 365, .4)$impliedVol
Error in AmericanOptionImpliedVolatility.default("put", rs1$ask, rs1$adjStkPrice, :
expecting a single value
Я думаю, что это место для функции apply
, но я не уверен, если я использую это правильно:
> rs1$impVol <- apply(rs1, 1, AmericanOptionImpliedVolatility("put", rs1$ask,
+ rs1$adjStkPrice, rs1$strike, .02, .05, rs1$daysLeft/ 365, .4)$impliedVol)
Error in AmericanOptionImpliedVolatility.default("put", rs1$ask, rs1$adjStkPrice, :
expecting a single value
Любые предложения?
Вы хотите 'rs1 $ daysleft/252', не более 365. –
Спасибо, не был уверен в этом. – screechOwl