数据接口实战指南)
基于 Tusharemargin_secs的融资融券标的盘前数据接口实战指南【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading本指南围绕 Vibe-Trading 仓库中 Tushare 技能库的融资融券标的盘前接口文档展开 完整讲解 margin_secs 接口的限量规则、全部输入/输出参数、盘前批量提取方法 并延伸到与之配套的 margin / margin_detail 接口最后结合本仓库的技能加载机制说明其实际落地方式。融资融券标的名单是 A 股两融研究的起点它决定了哪些证券可以融资买入、哪些证券可以融券卖出也是计算个股两融余额覆盖率、构建标的池、规避非标的交易的前提。Tushare 提供的margin_secs接口融资融券标的盘前更新每天开盘前刷新沪深京三大交易所的标的清单含 ETF是 Vibe-Trading 仓库中 tushare 技能库SKILL.md「股票数据 / 两融及转融通」分类下的核心接口之一接口 ID 326。本文将基于仓库内该接口的完整文档融资融券标的(盘前).md.md)逐项拆解其参数、用法与实战扩展。一、接口速览margin_secs接口的定位与基本约束如下表所示内容直接取自原文档项目说明接口名margin_secs描述获取沪深京三大交易所融资融券标的包括 ETF每天盘前更新限量单次最大 6000 行数据可根据股票代码、交易日期、交易所代码循环提取权限2000 积分可调取5000 积分无总量限制积分越高权限越大三点需要特别留意覆盖交易所上交所SSE、深交所SZSE、北交所BSE三大市场全部覆盖且标的类型不仅包括股票还包括 ETF更新时点数据在每个交易日的盘前更新即今日名单在开盘前即可取到适合做盘前标的池过滤与盯盘清单生成积分门槛2000 积分起即可调用5000 积分解锁无限量提取因此若需要全市场全历史标的名单需要 5000 积分权限并按交易所/日期分页循环拉取。二、环境准备Token 初始化与 Pro 接口在调用margin_secs之前需要先完成 Tushare 环境初始化。仓库的 tushare 技能文档SKILL.md给出了标准流程安装 Python 3.7 环境并安装 tushare 依赖包pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple在 Tushare 官网注册获取 token并配置环境变量export TUSHARE_TOKENyour_token初始化 Pro 接口实例import tushare as ts pro ts.pro_api()仓库的示例脚本 stock_data_example.py 展示了更稳健的 token 读取方式——优先从 Vibe-Trading 的配置系统中读取tushare_token缺失时才回退到ts.get_token()import tushare as ts from src.config.accessor import get_env_config token get_env_config().data.tushare_token or ts.get_token() pro ts.pro_api(token)对应的配置字段定义在 env_schema.pytushare_token: str Field(aliasTUSHARE_TOKEN, default)即通过环境变量TUSHARE_TOKEN注入即可被 Vibe-Trading 的配置系统自动识别。这与文档约定的返回格式pandas DataFrame一脉相承所有接口返回DataFrame日期参数统一使用YYYYMMDD格式股票代码统一使用ts_code格式如000001.SZ、600000.SH。三、输入参数详解margin_secs共支持 5 个输入参数全部为可选必选均为 N通过组合不同参数可以灵活裁剪查询范围名称类型必选描述ts_codestrN标的代码trade_datestrN交易日exchangestrN交易所SSE 上交所 / SZSE 深交所 / BSE 北交所start_datestrN开始日期end_datestrN结束日期参数组合的核心逻辑按交易日全量提取trade_date20240417即可拿到当天沪深京全部两融标的按交易所过滤与exchangeSSE组合可只取上交所名单适合按市场分别建池、分片拉取按代码定向查询ts_code510050.SH可查询单只证券是否入选两融标的及其入选日期按区间回溯start_date/end_date组合可查询一段历史区间内的标的变动用于研究标的扩容/缩容事件。四、输出参数详解每次调用返回 4 个字段均为默认显示名称类型默认显示描述trade_datestrY交易日期ts_codestrY标的代码namestrY标的名称exchangestrY交易所该输出结构非常精简只描述谁在什么时间、属于哪个交易所的标的名单不含余额、买入额等交易指标。交易指标需要由同分类下的 margin融资融券交易汇总 和 margin_detail融资融券交易明细 两个接口提供详见第六节。五、接口用法与实战示例5.1 基础调用原文档给出的最小可运行示例pro ts.pro_api() # 获取2024年4月17日上交所融资融券标的 df pro.margin_secs(trade_date20240417, exchangeSSE)得到的DataFrame数据样例节选完整 1786 行如下trade_date ts_code name exchange 0 20240417 510050.SH 50ETF SSE 1 20240417 510100.SH SZ50ETF SSE 2 20240417 510150.SH 消费ETF SSE 3 20240417 510180.SH 180ETF SSE 4 20240417 510210.SH 综指ETF SSE ... ... ... ... ... 1781 20240417 688799.SH 华纳药厂 SSE 1782 20240417 688800.SH 瑞可达 SSE 1783 20240417 688819.SH 天能股份 SSE 1784 20240417 688981.SH 中芯国际 SSE 1785 20240417 689009.SH 九号公司 SSE从样例可以看到上交所标的名单从510050.SH50ETF等 ETF 开始到科创板个股688xxx.SH结束同时覆盖 ETF 与股票两类标的。5.2 单次 6000 行限量下的循环提取限量规则明确指出单次最大 6000 行数据可根据股票代码、交易日期、交易所代码循环提取。全市场单日两融标的规模沪深京股票 ETF通常超过 6000 行因此一次调用拿不全需要按交易所分片循环import time import tushare as ts pro ts.pro_api() def fetch_margin_secs(trade_date): 按交易所分片拉取某交易日全市场两融标的规避单次6000行限量 frames [] for exchange in (SSE, SZSE, BSE): df pro.margin_secs(trade_datetrade_date, exchangeexchange) frames.append(df) time.sleep(0.2) # 适度限速避免触发频率限制 return pd.concat(frames, ignore_indexTrue) # 示例拉取 2024年4月17日 全市场标的名单 all_secs fetch_margin_secs(20240417) print(all_secs[exchange].value_counts())按日期循环则用于回溯历史名单通常与交易日历接口trade_cal配合确定有效交易日序列再逐日调用并做增量合并即可得到完整的标的池变更历史。5.3 标的入选状态查询与标的池构建对单只证券可用ts_code精确查询其入选记录判断其是否在两融标的内、何时入选# 查询某只个股的两融标的入选记录 df pro.margin_secs(ts_code688981.SH, start_date20240101, end_date20241231)更常见的实战场景是构建盘前两融标的池每日盘前拉取当日名单与自有股票池做交集过滤确保策略只在可融资融券的标的上执行或用于统计标的池覆盖率# 过滤出非 ETF 的股票标的并统计各交易所数量 stocks all_secs[~all_secs[ts_code].str.endswith((.SH, .SZ)) is False] stocks all_secs[all_secs[name].str.contains(ETF) False] print(stocks.groupby(exchange).size())说明上述代码基于文档输出结构ts_code/name/exchange三列所做的常规过滤实际生产中建议结合stock_basic股票列表接口交叉核对标的类型。六、与两融交易数据的配套使用margin_secs只解决哪些证券是标的的问题不解决标的余额/交易多少的问题。完整的融资融券研究链路需要与同分类下的另外两个接口联动接口文档作用输出核心字段margin融资融券交易汇总融资融券交易汇总.md沪深京各交易所每日两融总量rzye融资余额、rqye融券余额、rzrqye两融余额、rzmre融资买入额、rqmcl融券卖出量等margin_detail融资融券交易明细融资融券交易明细.md逐只证券的每日两融明细rzye、rqye、rzmre、rqyl融券余量、rzche、rqchl、rqmcl、rzrqye典型的三接口联动模式盘前用margin_secs获取当日标的池盘中/盘后用margin_detail获取个股两融余额计算标的池内的两融覆盖率rzrqye / 流通市值等指标用margin获取全市场两融总量观察杠杆资金整体变化方向。需要注意的是两个配套接口同样有各自的限量margin单次最大 4000 行、margin_detail单次最大 6000 行均需按日期循环拉取全量。此外margin_detail文档还给出了余额口径的官方定义由证券公司报送数据汇总本日融资余额(元) 前日融资余额 本日融资买入 - 本日融资偿还额本日融券余量(股) 前日融券余量 本日融券卖出量 - 本日融券买入量 - 本日现券偿还量本日融券余额(元) 本日融券余量 × 本日收盘价本日融资融券余额(元) 本日融资余额 本日融券余额同时注意单位约定股标的证券为股票、份标的证券为基金、手标的证券为债券自 2014 年 9 月 22 日起融资融券交易总量数据包含调出标的证券名单的证券的两融余额。理解这些口径才能在分析标的池变动时正确解释标的已调出但余额仍存在的现象。七、在 Vibe-Trading Agent 中的使用机制margin_secs接口文档位于 tushare 技能的 references 目录下由 Vibe-Trading 的技能加载体系skills.py统一管理渐进式披露系统提示词中只注入技能的一行摘要完整文档按需加载load_skill工具触发避免上下文被长文档撑爆按目录分节读取加载时按标题结构将文档切成多个 section逐节返回便于 Agent 精准定位到输入参数输出参数接口用法等具体章节而不必一次性读完整篇支持文件按需读取Skill.load_support_file()允许按文件名读取技能目录下的支撑文件如references/...下的接口文档margin_secs文档正是通过这一机制被按需加载的。从接口索引看margin_secs在 SKILL.md 中登记为 ID 326、分类股票数据, 两融及转融通与该分类下的marginID 58、margin_detailID 59、slb_len转融资交易汇总ID 331、slb_sec转融券交易汇总ID 332等接口并列。Agent 在回答两融相关问题、生成盘前交易清单或构建杠杆资金分析时可通过该技能索引快速定位到本文档再按上面的参数表组装调用。八、注意事项与最佳实践限量是循环的动力单次 6000 行上限意味着任何全市场、全历史诉求都必须按交易所 日期双维度分页建议将循环逻辑封装为通用函数并对每次调用做轻量限速如time.sleep。盘前更新语义数据为每日盘前更新当日名单在开盘前即可获取但请以交易所实际披露为准若需与当日行情对齐注意trade_date使用YYYYMMDD且必须为交易日。标的名单会变动标的池并非静态个股可能因规则调整被调入/调出用start_date/end_date回溯时应对齐交易日历可配合trade_cal交易日历接口。积分与权限2000 积分可调取但受总量限制5000 积分解锁无总量限制计划长期全量拉取的用户需要将积分提升到 5000 档。数据口径区分标的名单margin_secs与交易汇总/明细margin/margin_detail是三个独立接口字段语义、限量规则、更新时点各不相同使用时不要混淆。九、总结margin_secs是构建 A 股融资融券研究体系的第一块拼图它用 4 个输出字段、5 个可选输入参数以每天盘前更新的节奏提供了沪深京三大交易所含 ETF的两融标的名单。配合单次 6000 行的限量规则、按交易所/日期/代码的循环提取模式以及与margin、margin_detail的联动使用即可搭建起从标的池到余额明细再到市场总量的完整两融数据链路。本文所依据的接口文档位于 融资融券标的(盘前).md.md)接口索引与积分说明可进一步参考 SKILL.md。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考