# 末日期权合约列表

get_option_zero_dte_contract(owner, strike_date_timestamp, chain_info, sort_type=None, is_asc=None, filter_list=None)

  • 介绍

    获取末日期权合约列表,返回指定标的在指定行权日的 0DTE 期权合约详情,包含希腊值、盈亏平衡点及盈利概率等数据。

  • 参数

    参数 类型 说明
    owner str 标的股票代码
    strike_date_timestamp int 行权日期时间戳(Unix 秒)
    chain_info dict 期权链信息
    sort_type ZeroDteContractSortType 排序类型
    is_asc bool 是否升序
    filter_list list[ZeroDteContractFilter] 筛选条件列表
  • 筛选器(ZeroDteContractFilter)

    通过 ZeroDteContractFilter 构造筛选条件,多个条件为 AND 关系。因 owner 已固定,仅支持确切值与范围两种筛选方式(无标的列表筛选)。

    ZeroDteContractFilter(indicator_type, value_list=None, interval_min=None, interval_max=None,
                          min_inclusive=True, max_inclusive=True)
    
    1
    2
    参数 类型 说明
    indicator_type ZeroDteContractIndicatorType 筛选因子类型
    value_list list 确切值列表(枚举值或整数)
    interval_min float 区间下限
    interval_max float 区间上限
    min_inclusive bool 下限是否闭区间,默认 True
    max_inclusive bool 上限是否闭区间,默认 True
    • 筛选因子(完整枚举见 ZeroDteContractIndicatorType),按筛选方式分组:

      筛选方式 用哪个参数 适用因子 语义
      value_list value_list OPTION_TYPE 命中枚举值(1=Call, 2=Put)
      范围 interval_min / interval_max IVDELTAGAMMATHETAVEGARHOVOLUMEOPEN_INTERESTPRICECHANGE_RATIOBREAK_EVEN_POINTTO_BEPBUY_PROFIT_PROBABILITYSELL_PROFIT_PROBABILITY 落在区间内
  • 返回

    参数 类型 说明
    ret RET_CODE 接口调用结果
    data pandas.DataFrame 当 ret == RET_OK,返回合约列表
    str 当 ret != RET_OK,返回错误描述
    • 返回 DataFrame 字段:

      字段 类型 说明
      option str 期权合约代码
      name str 合约名称
      option_type str 期权类型(CALL/PUT)
      option_price float 期权价格
      change_ratio float 涨跌幅(百分比)
      volume int 成交量
      open_interest int 持仓量
      iv float 隐含波动率(百分比)
      delta float Delta
      gamma float Gamma
      vega float Vega
      theta float Theta
      rho float Rho
      buy_break_even_point float 买入盈亏平衡点
      buy_to_bep float 到达盈亏平衡点所需涨跌幅(百分比)
      buy_profit_probability float 买入盈利概率(百分比)
      sell_profit_probability float 卖出盈利概率(百分比)
  • Example

from futu import *

quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)

# 第一步:获取末日期权标的列表
ret, screener_data = quote_ctx.get_option_zero_dte_screener(
    market=OptionMarket.US_SECURITY,
    sort_type=ZeroDteSortType.VOLUME,
    is_asc=False,
    count=1
)
if ret != RET_OK:
    print('error:', screener_data)
    quote_ctx.close()
    exit()

# 第二步:取第一个标的的 chain_info,查询其合约列表
df = screener_data['item_list']
owner = df.iloc[0]['owner']
chain_info = df.iloc[0]['chain_info']
strike_date_timestamp = chain_info['strike_date_timestamp']

# 筛选器用法引导(按需取消注释,构造后传入 filter_list,多条件为 AND 关系):
# # 只要 PUT
# f_type = ZeroDteContractFilter(ZeroDteContractIndicatorType.OPTION_TYPE, value_list=[2])
# # Delta 在 -0.6 ~ -0.1 之间(价外 Put)
# f_delta = ZeroDteContractFilter(ZeroDteContractIndicatorType.DELTA,
#                                 interval_min=-0.6, interval_max=-0.1)

ret, data = quote_ctx.get_option_zero_dte_contract(
    owner=owner,
    strike_date_timestamp=strike_date_timestamp,
    chain_info=chain_info,
    sort_type=ZeroDteContractSortType.VOLUME,
    is_asc=False
    # filter_list=[f_type, f_delta]   # 多条件 AND,传入上方构造的筛选条件
)
if ret == RET_OK:
    print(data)
else:
    print('error:', data)

quote_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  • Output
              option             name option_type  option_price  change_ratio  volume  open_interest    iv   delta   gamma    vega   theta     rho  buy_break_even_point  buy_to_bep  buy_profit_probability  sell_profit_probability
0  US.SPY260612C742000  SPY 260612 C742        CALL          0.58       -67.688  730160           7449  146.5  0.4367  0.2745  0.0039  -455.46  0.000                742.58        0.11                   43.5                    56.5
1  US.SPY260612C745000  SPY 260612 C745        CALL          0.01       -98.958  617981          17013   87.1  0.0244  0.0350  0.0011   -18.52  0.000                745.01        0.44                    2.4                    97.6
...
1
2
3
4

接口限制

  • 30 秒内最多请求 60 次末日期权合约列表接口