gpt4 book ai didi

R 使用带有 RQuantlib 函数的 apply/plyr

转载 作者:行者123 更新时间:2023-12-04 10:33:23 25 4
gpt4 key购买 nike

我在数据框中有一个数据集,其中包含以下信息:

> 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

有什么建议?

最佳答案

您可以使用 Vectorizemapply .

Vectorize(AmericanOptionImpliedVolatility)(
type="put", value=15:16, underlying=130:131,
strike=115, dividendYield=.02, riskFreeRate=.05, maturity=1,
volatility=.1
)

mapply(
AmericanOptionImpliedVolatility,
type="put", value=15:16, underlying=130:131,
strike=115, dividendYield=.02, riskFreeRate=.05, maturity=1,
volatility=.1
)

如果您想使用 apply ,它的第三个参数应该是一个函数。
此外,它将每一行转换为一个向量,
当某些列包含字符串时,这是有问题的。

您也可以使用 sapply在行号上,
但它只是伪装的循环,比 mapply 可读性差.
sapply(
seq_len(nrows(rs1)),
function(i) AmericanOptionImpliedVolatility(
type="put",
value=rs1$ask[i],
... (add the other arguments)
)
)

关于R 使用带有 RQuantlib 函数的 apply/plyr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com