尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Vibe-Trading 实战:基于 Tushare opt_basic 期权合约信息接口的数据接入指南

Vibe-Trading 实战:基于 Tushare opt_basic 期权合约信息接口的数据接入指南 Vibe-Trading 实战基于 Tushare opt_basic 期权合约信息接口的数据接入指南【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading本篇技术指南围绕 Vibe-Trading 仓库内 Tushare 数据技能中的期权合约信息文档展开系统讲解opt_basic接口的积分权限、输入输出参数、调用示例与返回数据解读并结合仓库源码说明该接口在期权回测引擎与策略研究中的真实落点。读完本文你将掌握如何从交易所期权合约元数据出发构建「合约信息 → 日线/分钟行情 → 期权策略回测」的完整数据链路。一、接口定位期权数据管线的第一环在 Vibe-Trading 的 Tushare 数据技能中期权数据专题共收录三个接口构成完整的期权数据矩阵接口名文档用途opt_basic期权合约信息获取期权合约的基础信息合约代码、行权方式、到期日、挂牌价等opt_daily期权日线行情获取期权合约的日线行情OHLC、结算价、成交量、持仓量opt_mins期权分钟行情获取期权合约分钟行情1min/5min/15min/30min/60min这三个接口在 数据接口列表 中的 ID 分别为 158、159、341。其中opt_basic是期权数据链路的元数据基石只有先通过它拿到合约的ts_code、exercise_type行权方式、maturity_date到期日、exercise_price行权价等字段才能据此筛选出目标合约再进一步调用opt_daily、opt_mins拉取对应行情最后输入期权策略引擎进行定价与回测。从源码结构看Tushare 技能被设计为「SKILL.md 入口 references 参数文档 scripts 示例脚本」三段式结构SKILL.md 负责快速上手与环境配置references/期权数据/期权合约信息.md负责逐接口的参数规格说明二者配合形成可供 Agent 直接检索、引用的标准化数据使用手册。二、权限与前提至少 5000 积分调用opt_basic有一个硬性门槛用户账号需要至少 5000 积分否则无法调取该接口。这是 Tushare 平台按积分分级开放数据权限的机制具体积分获取办法与等级规则以平台官方文档doc_id13为准。在 Vibe-Trading 中使用 Tushare 数据的标准流程是# 1. 安装 tushare推荐 Python 3.7 环境建议使用清华 PyPI 镜像 pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple # 2. 在 Tushare 官网注册并获取 token配置环境变量 export TUSHARE_TOKENyour_token代码侧初始化 pro 接口实例时建议优先读取环境变量这一模式与 SKILL.md 快速上手示例 保持一致import os import tushare as ts token os.getenv(TUSHARE_TOKEN) or ts.get_token() pro ts.pro_api(token)需要说明的是Tushare 各接口的积分要求不同。例如期权数据专题内部opt_daily日线行情要求至少 2000 积分且有流量控制opt_mins分钟行情120 积分可试调 2 次正式权限需按平台权限说明升级而opt_basic的 5000 积分门槛在三个期权接口中最高。从这一点可以推断合约信息属于 Tushare 平台价值较高、开放门槛较严的基础资产数据规划数据预算时应优先确保账号积分满足该接口要求。三、输入参数详解opt_basic的全部输入参数均为可选必选标记均为 N但你至少需要提供一个筛选维度否则会触发平台的风控限制或返回空数据。五个参数的作用域如下名称类型必选描述ts_codestrNTS 期权代码如M1707-C-2400.DCEexchangestrN交易所代码如上交所SSE、大商所DCE等list_datestrN上市交易日格式 YYYYMMDDopt_codestrN标准合约代码OP 期货合约 TS_CODE如棕榈油 2207 合约输入OPP2207.DCEcall_putstrN期权类型3.1 各参数的使用场景exchange最常用的批量筛选维度。证券类期权如上交所SSE、深交所SZSE、中金所CFFEX与商品期权如大商所DCE、上期所SHFE、郑商所CZCE分属不同市场体系通过交易所参数可以一次性拉取某一市场的全部期权合约元数据。这是文档接口示例所采用的方式。ts_code精确锁定单个合约。适合已知合约代码、需要核对该合约完整条款到期日、行权价、挂牌基准价、最后交割日等的场景。opt_code按标的合约反向查询。商品期权以「OP 期货合约代码」标识标的例如棕榈油 2207 合约对应OPP2207.DCE输入该值即可获取以 P2207 为标的的全部期权合约不同行权价、不同 call/put。这一参数与仓库中期货合约信息接口fut_basic的设计思路一致都是先拿到标的合约列表再展开衍生品合约族。call_put结合ts_code或opt_code使用可只取认购C或认沽P方向。list_date按上市日期筛选适合追踪新上市合约。3.2 参数组合建议实操中最常用的两类组合# 组合一按交易所全量拉取推荐用于建立本地合约库 df_all_dce pro.opt_basic(exchangeDCE) # 组合二按标的合约代码 期权类型定向查询 df_m_p pro.opt_basic(opt_codeOPM1707.DCE, call_putP)其中组合一对应文档示例的思路数据量较大但一次即可拿到该市场全部合约组合二数据量小、目标明确适合策略研究中只关心特定标的情形。四、输出参数详解17 个字段构成合约「身份证」opt_basic返回 17 个字段默认全部显示按功能可分为三类4.1 代码与标识类字段类型描述ts_codestrTS 代码全局唯一标识也是调用opt_daily/opt_mins的入参exchangestr交易市场namestr合约名称如「豆粕期权1707认购2400」opt_codestr标的合约代码即 OP 期货合约代码ts_code与opt_code是一对「兄弟字段」前者标识期权合约本身后者标识其标的期货合约。以数据示例中的M1707-C-2400.DCE为例其opt_code为OPM1707.DCE——这也解释了输入参数中opt_code的构造规则「OP 期货合约 TS_CODE」的来历期货豆粕 1707 合约 TS 代码为M1707.DCE加上 OP 前缀即构成标的代码。4.2 合约条款类字段类型描述per_unitstr合约单位每手对应标的数量opt_typestr合约类型call_putstr期权类型认购/认沽exercise_typestr行权方式美式/欧式exercise_pricefloat行权价格s_monthstr结算月maturity_datestr到期日list_pricefloat挂牌基准价这一组字段直接决定期权定价模型的参数输入。仓库中的 options-strategy 技能 在信号引擎的信号结构中就显式要求每个腿leg包含typecall/put、strike行权价、expiry到期日——这些字段与opt_basic输出的call_put、exercise_price、maturity_date一一对应。同时该技能明确说明其定价引擎仅支持欧式期权只在到期行权因此在 A 股/商品期权场景下必须先通过opt_basic的exercise_type字段甄别合约是美式还是欧式避免把美式期权如数据示例中的豆粕期权行权方式均为「美式」交给欧式定价模型产生偏差。4.3 生命周期与交易规则类字段类型描述list_datestr开始交易日期delist_datestr最后交易日期last_edatestr最后行权日期last_ddatestr最后交割日期quote_unitstr报价单位min_price_chgstr最小价格波幅最小变动价位这类字段用于刻画合约的交易生命周期。在回测中list_date与delist_date定义了该合约可交易的时间窗口——只有落在该窗口内的日期才能取到opt_daily行情这在数据示例中体现得很直观豆粕 1707 系列合约list_date为 20170605、delist_date为 20170607而 1803 系列合约则跨越 20170407 至 20180207。窗口之外请求行情会得到空数据这是期权数据与股票数据最大的使用差异之一。4.4 字段选择技巧fields参数可以裁剪返回列。文档示例即演示了这一用法df pro.opt_basic( exchangeDCE, fieldsts_code,name,exercise_type,list_date,delist_date )仅返回研究所需的字段能显著降低响应体积与本地内存占用。当合约库规模达到数万条时这一习惯对批量拉取性能影响明显。五、完整实战从合约信息到回测数据管线将上文内容串成一个可在本地直接运行的完整脚本import os import pandas as pd import tushare as ts # 1. 初始化 pro 接口 token os.getenv(TUSHARE_TOKEN) or ts.get_token() pro ts.pro_api(token) # 2. 拉取大商所全部期权合约信息需至少 5000 积分 df_basic pro.opt_basic( exchangeDCE, fieldsts_code,opt_code,name,opt_type,call_put,exercise_type, exercise_price,s_month,maturity_date,list_price, list_date,delist_date,last_edate,last_ddate, per_unit,quote_unit,min_price_chg ) print(fDCE 期权合约总数: {len(df_basic)}) print(df_basic.head()) # 3. 过滤出仍在交易窗口内的欧式/美式合约示例取到期日不早于今天的合约 df_active df_basic[df_basic[maturity_date] 20241231] print(df_active[[ts_code, exercise_price, maturity_date]].head()) # 4. 对筛选出的合约批量拉取日线行情opt_daily 单次最大 15000 条 # 此处仅演示单合约调用生产环境建议按 trade_date 循环以控制单次数据量 sample_code df_active.iloc[0][ts_code] df_daily pro.opt_daily( ts_codesample_code, start_date20240101, end_date20241231 ) print(df_daily[[ts_code, trade_date, open, close, settle, vol, oi]].head())运行要点opt_daily的积分门槛为 2000 分且单次最大返回 15000 条可通过日线或代码循环取全量opt_mins单次最大 8000 行需通过合约代码与时间窗口循环且start_date/end_date采用2024-08-25 09:00:00形式的 datetime 字符串。所有日期参数格式为YYYYMMDD返回数据为 pandas DataFrame这是 Tushare 技能的统一约定见 SKILL.md 参数格式说明。5.1 数据示例解读豆粕期权家族文档给出的返回数据示例是 2017~2018 年大商所豆粕期权M 系列的合约元数据片段节选如下ts_codenameexercise_typelist_datedelist_dateM1707-C-2400.DCE豆粕期权1707认购2400美式2017060520170607M1707-P-2400.DCE豆粕期权1707认沽2400美式2017060520170607M1803-P-2550.DCE豆粕期权1803认沽2550美式2017040720180207M1808-C-3550.DCE豆粕期权1808认购3550美式2018040920180706从这段数据可以提炼出三个重要规律代码编码规则M1707-C-2400.DCE可拆解为「标的期货代码M1707— 期权方向C认购/P认沽— 行权价2400.交易所DCE」。无需查表即可从ts_code直接解析出行权价与方向便于程序化处理。美式期权是商品期权主流示例中所有合约exercise_type均为「美式」意味着这些合约在到期前任意交易日均可行权回测时需选择支持美式行权路径的引擎或进行保守近似处理。合约生命周期短且滚动发行同一交割月的认购/认沽合约共享list_date与delist_date如 1707 系列均为 20170605 上市、20170607 最后交易且同一标的会在不同时间点滚动挂牌多个到期月合约示例中出现 1707、1711、1712、1801、1803、1808、1809、1811、1812 等多个系列。这正是「先查opt_basic拿全量合约 → 再按生命周期拉行情」的数据管线存在的根本原因。六、在 Vibe-Trading 中的下游应用opt_basic产出的合约元数据在 Vibe-Trading 中有明确的消费场景期权策略回测数据源options-strategy 技能 的config.json中source字段支持tushareengine设为options时由 runner 选择期权回测引擎。该引擎从标的价格出发用 Black-Scholes 模型合成理论期权价格模拟多腿组合的 PnL、Greeks 暴露与到期行权。实际研究中opt_basic提供的真实合约条款行权价、到期日、call/put 方向可作为组合构建如 covered call、straddle、iron condor 等策略的合约筛选依据。期权高级研究技能options-advanced 与期权定价、Greeks 敏感性分析等研究方向相关同样依赖真实合约元数据来刻画交易标的。行情关联查询将opt_basic返回的ts_code作为opt_daily、opt_mins的入参实现「合约筛选 → 行情拉取」的标准化查询链路。七、注意事项与最佳实践积分是硬门槛opt_basic要求至少 5000 积分未达标账号调用会直接失败请以官方积分获取办法为准提前规划。先建合约库再拉行情由于期权合约滚动发行、生命周期短建议定期全量拉取opt_basic建立本地合约快照可加list_date增量更新再基于快照筛选活跃合约拉取行情避免反复调用平台接口。区分美式/欧式exercise_type是定价与回测的关键分叉点。数据示例中的大商所商品期权均为美式而多数指数期权为欧式欧式定价引擎如仓库 options-strategy 中基于 Black-Scholes 的实现处理美式合约时会存在提前行权价值偏差。合理裁剪字段fields参数按需取列返回全部 17 个字段会放大响应体批量任务中应只保留研究所需字段。行情接口限量循环opt_daily单次 15000 条、opt_mins单次 8000 行全量回补历史时务必按trade_date/时间窗口循环并配合交易日历规避非交易日请求。日期格式统一输入输出日期均为YYYYMMDD字符串分钟行情除外其起止时间为 datetime 格式跨接口拼接时注意保持一致避免格式转换引入脏数据。结语opt_basic是 Tushare 期权数据专题中门槛最高也最基础的一个接口它提供的 17 个合约字段代码、条款、生命周期、交易规则是期权量化研究的事实起点。结合 Vibe-Trading 仓库内的文档结构接口说明、技能总览、日线行情、分钟行情与期权策略回测技能你可以搭建一条「合约元数据 → 行情数据 → 策略回测」的完整期权研究管线。掌握本文的积分前提、参数语义与代码解析规律后即可将真实期权合约数据平稳接入你的量化工作流。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表