从期权链中找到与当前股价最接近的价格。

时间:2019-01-04 21:51:02

标签: r finance quantmod performanceanalytics

目标是从期权链中找到最接近的行使价。据我所知。

str1 = "3158 is a great number"
print(int("".join(filter(str.isdigit, str1))))
#3158

但是,我不确定如何将其放入lapply或是否有更好的选择。价格是数据框,呼叫是列表。预先感谢

1 个答案:

答案 0 :(得分:2)

要获取相应的行,我们可以使用

Map(function(cl, p) cl[which.min(abs(p - cl$Strike)), ], calls, price$Last)
# [[1]]
#                     Strike Last  Chg  Bid  Ask   Vol   OI
# AAPL190104C00148000    148  0.3 0.21 0.24 0.42 43235 4344
#
# [[2]]
#                     Strike Last Chg  Bid  Ask  Vol   OI
# MSFT190104C00102000    102 0.04   0 0.02 0.09 6397 3250
#
# [[3]]
#                   Strike Last  Chg Bid  Ask  Vol  OI
# GS190104C00175000    175 0.25 0.13   0 0.25 2624 678

其中

price$Last
# [1] 148.26 101.93 175.05

在这种情况下,lapply不是最佳选择,因为我们必须同时处理两个对象:pricecalls。在这种情况下,mapplyMap可以完成工作,其中MapmapplySIMPLIFY = FALSE相同。

因此,我们同时浏览callsprice$Last并应用

function(cl, p) cl[which.min(abs(p - cl$Strike)), ]