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

如何使用yahoo_fin获取所有平值(ATM)期权合约?

用yahoo_fin识别平值(ATM)期权合约的方法

方法一:通过行权价与标的股价匹配

标的股价很少会刚好等于期权行权价,所以我们可以找最接近当前标的价格的行权价对应的期权合约,具体步骤如下:

  1. 获取标的当前实时价格
  2. 拉取看涨/看跌期权的全部合约数据
  3. 计算每个行权价与当前股价的差值绝对值,筛选出差值最小的行权价对应的合约(同一行权价可能对应多个到期日,也可以指定到期日缩小范围)

代码示例:

from yahoo_fin import options as ops
from yahoo_fin import stock_info as si
import pandas as pd

# 标的代码
ticker = "aapl"

# 获取当前标的实时价格
current_price = si.get_live_price(ticker)

# 获取所有看涨期权合约(可传入expiration_date指定到期日)
calls_df = ops.get_calls(ticker)
# 获取所有看跌期权合约
puts_df = ops.get_puts(ticker)

# 筛选看涨平值期权:找与当前价格差值最小的行权价
calls_df["price_diff"] = abs(calls_df["Strike"] - current_price)
atm_call_row = calls_df[calls_df["price_diff"] == calls_df["price_diff"].min()]

# 筛选看跌平值期权
puts_df["price_diff"] = abs(puts_df["Strike"] - current_price)
atm_put_row = puts_df[puts_df["price_diff"] == puts_df["price_diff"].min()]

# 合并平值看涨和看跌期权
atm_options = pd.concat([atm_call_row, atm_put_row])
print(atm_options)

方法二:通过Delta指标筛选

平值期权的核心特性是Delta值:看涨期权Delta接近0.5,看跌期权Delta接近-0.5。我们可以设置合理阈值(比如0.45-0.55区间的看涨期权、-0.55到-0.45区间的看跌期权)来筛选近似平值的合约。

代码示例:

from yahoo_fin import options as ops
import pandas as pd

ticker = "aapl"

# 获取期权合约数据
calls_df = ops.get_calls(ticker)
puts_df = ops.get_puts(ticker)

# 转换Delta列为数值类型(yahoo_fin返回的Delta可能带正负号前缀)
calls_df["Delta"] = calls_df["Delta"].astype(float)
puts_df["Delta"] = puts_df["Delta"].astype(float)

# 筛选看涨平值期权
atm_calls = calls_df[(calls_df["Delta"] >= 0.45) & (calls_df["Delta"] <= 0.55)]

# 筛选看跌平值期权
atm_puts = puts_df[(puts_df["Delta"] >= -0.55) & (puts_df["Delta"] <= -0.45)]

# 合并结果
atm_options = pd.concat([atm_calls, atm_puts])
print(atm_options)

可行性说明

这两种方法都完全可行:

  • 行权价法逻辑简单、计算快,适合快速定位「名义上的平值期权」,但如果标的价格波动快,需要重新获取价格校准
  • Delta法更贴合期权的实际对冲属性,能筛选出真正具备平值期权特性的合约,但要注意yahoo_fin返回的Delta值基于当前市场数据,可能受流动性、到期时间等因素影响,阈值可根据需求灵活调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:01:35