You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的quantmod给期权Put列表添加股价行权价差值百分比列

给仅含看跌期权的列表新增"%Strike-StockPrice"列

实现代码

library(quantmod)
Symbols <- c("AA","AAL","AAOI","ABBV","ABC","ABNB")
Options.20221111 <- lapply(Symbols, getOptionChain)
names(Options.20221111) <- Symbols
only_puts_list <- lapply(Options.20221111, function(x) x$puts)

# 获取股票数据
start_date <- as.Date("2022-06-01")
getSymbols(Symbols, from = start_date)

# 提取每只股票的最新收盘价
latest_prices <- sapply(Symbols, function(sym) {
  # 获取对应股票的收盘价列,取最后一行的数值
  last(get(sym)[, paste0(sym, ".Close")])
})

# 给每个看跌期权数据框新增目标列
only_puts_list <- mapply(function(puts_data, stock_price) {
  # 按你给出的例子计算百分比差值:(收盘价-行权价)/收盘价 *100
  puts_data$`%Strike-StockPrice` <- ((stock_price - puts_data$Strike) / stock_price) * 100
  puts_data
}, only_puts_list, latest_prices, SIMPLIFY = FALSE)

关键说明

  • latest_prices通过sapply遍历所有股票代码,提取每只股票的最新收盘价,存储为命名向量,确保后续与期权数据一一匹配。
  • 使用mapply同时遍历期权列表和收盘价向量,完成每只股票期权数据的列计算与新增,SIMPLIFY = FALSE保证返回结果仍为列表格式。
  • 注:如果你的实际需求是基于行权价计算百分比差值(即((收盘价-行权价)/行权价)*100),只需修改公式部分即可。

内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:55:31