Vibe-Trading 实战:Tushare 涨停股票连板天梯(limit_step)接口解析与强势热度分析指南
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
Tushare 的「涨停股票连板天梯」(接口名limit_step)是 A 股打板专题数据中的核心接口之一,它逐日返回"连板个数晋级的股票",即每天从首板到高位连板个股的完整梯队名单,用于分析连续涨停的进阶个数、判断市场强势热度。本文以该接口在 Vibe-Trading 项目中的技能文档为骨架,完整讲解其输入输出参数、调用方式与数据样例,并结合同专题的limit_list_d(涨跌停和炸板数据)、limit_cpt_list(涨停最强板块统计)以及项目内的 Tushare 技能接入方式,给出可直接复制运行的实战方案。读完本文,你将掌握如何用limit_step拉取任意交易日或任意个股的连板天梯数据,并据此搭建自己的涨停梯队观察与市场情绪分析流水线。
接口概览:连板天梯解决什么问题
在 A 股"打板"(追涨停板)交易体系中,连板高度(个股连续涨停的天数)是衡量题材强度与市场情绪的核心指标。一只股票能否从首板晋级到二板、三板乃至更高位,直接反映了资金对该方向的持续认可度;而每个交易日处于各连板层级的个股数量分布,则构成了观察市场"强势热度"的晴雨表。
limit_step接口正是为此设计:
- 接口名:
limit_step - 接口 ID:356(见 Tushare 技能主文档 中"数据接口列表")
- 功能:获取每天连板个数晋级的股票,可以分析出每天连续涨停进阶个数,判断强势热度
- 数据范围:覆盖 A 股每日涨停连板梯队(含 ST 个股,如样例中的
ST美谷、ST东时) - 限量:单次最大 2000 行数据,可根据股票代码或者日期循环提取全部
- 积分要求:8000 积分以上每分钟 500 次,每天总量不限制
从数据性质上看,它是"结果型"接口——每天收盘后即可获得当日的连板梯队截面,适合用于复盘、情绪周期定位与次日连板晋级率统计。
数据源与权限准备:Token 与积分门槛
使用任何 Tushare Pro 接口前,都需要先完成环境准备。根据 Tushare 技能主文档 的快速上手章节:
- 安装依赖包(推荐 Python 3.7+,使用清华 PyPI 镜像):
pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple- 注册获取 Token:在 Tushare 官网注册后获取个人 token,并配置环境变量:
export TUSHARE_TOKEN=your_token- 积分门槛:
limit_step属于打板专题数据,接口说明要求8000 积分以上才可享受"每分钟 500 次、每天总量不限制"的配额。积分不足时接口会抛出权限类错误,需要先在 Tushare 平台完成积分升级。
值得注意的是,Vibe-Trading 项目已把 Tushare 接入纳入了自身配置体系:在 环境变量配置模块 中声明了tushare_token: str = Field(alias="TUSHARE_TOKEN", default=""),即通过TUSHARE_TOKEN环境变量注入项目配置。参考 股票数据获取示例脚本,项目内初始化 Pro 接口的推荐写法是:
import tushare as ts from src.config.accessor import get_env_config # 优先读取项目配置中的 token,其次回退到 tushare 本地记录的 token token = get_env_config().data.tushare_token or ts.get_token() # 初始化 pro 接口实例 pro = ts.pro_api(token)输入参数详解
limit_step的全部输入参数均为可选(必选列均为 N),但实际使用时需要至少提供一个查询维度。参数明细如下:
| 名称 | 类型 | 必选 | 描述 |
|---|---|---|---|
| trade_date | str | N | 交易日期(格式:YYYYMMDD,下同) |
| ts_code | str | N | 股票代码 |
| start_date | str | N | 开始日期 |
| end_date | str | N | 结束日期 |
| nums | str | N | 连板次数,支持多个输入,例如nums='2,3' |
各参数的使用要点:
- trade_date:查询单个交易日的全市场连板天梯。这是最常用的查询方式,返回该日所有处于"连板晋级中"状态的股票。注意"晋级"的语义:连板天梯记录的是当日处于连板状态(首板计 1 次连板、二板计 2 次,以此类推)的个股,而非仅指"当天新晋级更高连板"的股票。
- ts_code:按个股查询。可提取某只股票的全部历史连板记录,用于追溯一只票的连板路径,例如判断其是否"断板"后重新晋级。
- start_date / end_date:日期区间查询。配合单次 2000 行的限量,按日期循环是提取全量历史的标准姿势(后文给出可复制的循环代码)。
- nums:连板次数过滤器,支持多值,例如
nums='2,3'表示只保留 2 连板与 3 连板的股票。这在做"连板高度分布统计"时非常高效——可以快速抽取特定高度层级的个股名单,而无需拉全量数据后自行过滤。
输出参数详解
| 名称 | 类型 | 默认显示 | 描述 |
|---|---|---|---|
| ts_code | str | Y | 代码 |
| name | str | Y | 名称 |
| trade_date | str | Y | 交易日期 |
| nums | str | Y | 连板次数 |
输出结构非常精简,仅 4 个字段,每行代表一只"当日处于该连板次数"的股票:
- ts_code:股票代码,格式如
000833.SZ(深市)或600800.SH(沪市),与 Tushare 全局的 ts_code 编码规则一致。 - name:股票名称,含 ST 前缀(如
ST美谷),可直接用于人工核对与榜单展示。 - trade_date:交易日期(YYYYMMDD),多日数据合并提取时用于区分日期。
- nums:连板次数,即该股当日的连续涨停天数。
nums=1代表当日为首次涨停(首板),nums=11代表已连续 11 个涨停。
接口用法:从单日截面到全量历史
基础调用:获取单日连板天梯
文档给出的最简调用方式如下:
pro = ts.pro_api() df = pro.limit_step(trade_date='20241125')执行后返回 pandas DataFrame,直接打印即可查看当日全市场连板梯队。
进阶一:按连板次数过滤(多值)
# 只看二板与三板,用于统计低位晋级梯队 df = pro.limit_step(trade_date='20241125', nums='2,3') # 只看高位连板(5 连板及以上),用于识别市场高度票 df = pro.limit_step(trade_date='20241125', nums='5,6,7,8,9,10,11')进阶二:按日期区间循环提取全量历史
由于单次调用最多返回 2000 行,跨多个交易日提取时必须按日期循环,这与文档"可根据股票代码或者日期循环提取全部"的限制完全对应:
import time import tushare as ts pro = ts.pro_api() start_date, end_date = '20241101', '20241130' frames = [] # 用交易日历确认区间内实际交易日(示例:可先取 trade_cal 过滤 is_open=1) for day in trading_days: # trading_days 为区间内每个交易日(YYYYMMDD) try: df = pro.limit_step(trade_date=day) if df is not None and len(df): frames.append(df) time.sleep(0.15) # 控制请求频率,避免触发限频 except Exception as e: print(f"{day} 获取失败: {e}") import pandas as pd all_data = pd.concat(frames, ignore_index=True) print(all_data.groupby(['trade_date', 'nums']).size().unstack(fill_value=0))输出即为"每个交易日 × 每个连板层级"的矩阵,可直接用于绘制连板高度分布与情绪周期曲线。
进阶三:个股连板路径回溯
# 提取单只股票的全部连板记录 df = pro.limit_step(ts_code='000833.SZ', start_date='20240101', end_date='20241231') print(df.sort_values('trade_date'))数据样例解读:读懂一张连板天梯
以下为文档附带的 2024-11-25 当日连板天梯完整样例(节选首尾,中间行以...省略,原文档共 49 行):
ts_code name trade_date nums 0 000833.SZ 粤桂股份 20241125 11 1 002611.SZ 东方精工 20241125 8 2 600800.SH 渤海化学 20241125 7 3 000801.SZ 四川九洲 20241125 6 4 600889.SH 南京化纤 20241125 6 5 000615.SZ ST美谷 20241125 5 6 001229.SZ 魅视科技 20241125 5 7 002095.SZ 生意宝 20241125 5 8 002403.SZ 爱仕达 20241125 5 9 600470.SH 六国化工 20241125 5 10 603015.SH 弘讯科技 20241125 5 11 603527.SH 众源新材 20241125 5 12 002103.SZ 广博股份 20241125 4 13 002175.SZ 东方智造 20241125 4 14 002467.SZ 二六三 20241125 4 15 002741.SZ 光华科技 20241125 4 16 002862.SZ 实丰文化 20241125 4 17 003036.SZ 泰坦股份 20241125 4 18 603377.SH ST东时 20241125 4 19 000573.SZ 粤宏远A 20241125 3 20 002155.SZ 湖南黄金 20241125 3 21 300822.SZ 贝仕达克 20241125 3 22 600105.SH 永鼎股份 20241125 3 23 600405.SH 动力源 20241125 3 24 600410.SH 华胜天成 20241125 3 25 600979.SH 广安爱众 20241125 3 26 000548.SZ 湖南投资 20241125 2 27 000695.SZ 滨海能源 20241125 2 28 000803.SZ 山高环能 20241125 2 29 002045.SZ 国光电器 20241125 2 30 002054.SZ 德美化工 20241125 2 31 002117.SZ 东港股份 20241125 2 32 002638.SZ 勤上股份 20241125 2 33 002640.SZ 跨境通 20241125 2 34 002658.SZ 雪迪龙 20241125 2 35 002820.SZ 桂发祥 20241125 2 36 002877.SZ 智能自控 20241125 2 37 003005.SZ 竞业达 20241125 2 38 300220.SZ 金运激光 20241125 2 39 600228.SH 返利科技 20241125 2 40 600333.SH 长春燃气 20241125 2 41 600615.SH 丰华股份 20241125 2 42 600775.SH 南京熊猫 20241125 2 43 601133.SH 柏诚股份 20241125 2 44 603026.SH 石大胜华 20241125 2 45 603359.SH 东珠生态 20241125 2 46 603585.SH 苏利股份 20241125 2 47 603655.SH 朗博科技 20241125 2 48 603843.SH 正平股份 20241125 2对这张天梯图的专业解读要点:
- 最高板定情绪:当日最高为粤桂股份的 11 连板,属于"高位空间票";其后是 8 板的东方精工与 7 板的渤海化学,说明市场存在清晰的晋级链条,情绪处于活跃周期。
- 梯队分布看接力:6 板 2 家、5 板 7 家、4 板 7 家、3 板 7 家、2 板 22 家——从 2 板到 5 板呈现"金字塔"结构,晋级梯队完整,低位承接资金充足。
- 连板高度断层:11 板与 8 板之间存在空档,说明中高位缺乏过渡票,一旦最高板断板,市场可能面临高度压缩风险。
- 个股可追踪:
ST美谷、ST东时等 ST 个股同样出现在天梯中,说明该接口未剔除 ST 板块,在做连板统计时需要注意剔除或单独归类。
天梯数据的实战分析方法
拿到limit_step数据后,可围绕四个维度构建分析:
- 连板晋级率:
t日处于 N+1 板的家数 / t-1日处于 N 板的家数,反映各层级接力的成功率,是情绪周期最敏感的指标之一。 - 高度分布矩阵:按
(trade_date, nums)做透视,观察最高板、各层级家数的连续变化,判断情绪处于冰点、修复、主升还是退潮阶段。 - 空间票追踪:对
nums排序取头部(如 5 板以上),配合个股日线数据(Tusharedaily接口)验证其封板强度,建立高位股的持续跟踪名单。 - 与炸板、板块数据交叉验证:连板天梯给出"谁在涨",而炸板数据给出"谁冲高失败",两者结合能更完整地刻画当日市场合力。
与打板专题其他接口的协同
limit_step并非孤立接口,在 打板专题数据目录 中,它与以下接口构成完整的打板分析工具链:
| 接口 | 文档 | 定位 | 关键输出字段 |
|---|---|---|---|
limit_step | 涨停股票连板天梯 | 连板梯队截面 | ts_code、name、trade_date、nums |
limit_list_d | 涨跌停和炸板数据 | 单日涨跌停/炸板明细 | up_stat(N/T 涨停统计)、limit_times(连板数)、open_times(炸板次数)、fd_amount(封单金额) |
limit_cpt_list | 涨停最强板块统计 | 强势板块轮动 | up_stat(连板高度)、cons_nums(连板家数)、up_nums(涨停家数)、rank(热点排名) |
三者组合的典型分析流程:
# 1. 连板天梯:确认当日市场高度与梯队分布 ladder = pro.limit_step(trade_date='20241125') # 2. 炸板明细:用封单金额与炸板次数筛选"最强承接"候选 limit_d = pro.limit_list_d( trade_date='20241125', limit_type='U', fields='ts_code,trade_date,industry,name,close,pct_chg,open_times,up_stat,limit_times' ) # 3. 板块统计:定位涨停家数最多、连板高度最高的方向 cpt = pro.limit_cpt_list(trade_date='20241127') print(cpt.head(10))这一"个股梯队 + 承接强度 + 板块归属"的三层结构,正是从数据层面还原当日市场合力、为后续策略研究提供证据链的标准做法。
在 Vibe-Trading 项目中的接入与使用前提
Vibe-Trading 已将 Tushare 封装为标准化数据源技能,接入方式与前提如下:
- 技能入口:数据接口的完整清单、参数格式约定与安装方式见 tushare 技能主文档,其中
limit_step在"数据接口列表"中对应 ID 356。 - Token 配置:项目通过环境变量
TUSHARE_TOKEN注入配置(见 环境变量配置),脚本内推荐通过get_env_config().data.tushare_token读取(见 股票数据获取示例)。 - 返回格式约定:所有 Tushare 接口统一返回 pandas DataFrame;日期一律使用
YYYYMMDD字符串;股票代码一律使用ts_code格式(如000001.SZ、600000.SH),参见 Tushare 技能主文档的参数格式说明。 - 使用前提:
limit_step为权限分级接口,需 8000 积分以上才能获得每分钟 500 次、每日不限总量的完整配额;单次调用上限 2000 行,全量历史提取须按日期或代码循环。
常见问题与注意事项
- 单次返回超过 2000 行怎么办:多日区间数据请改为按
trade_date逐日循环提取并合并,避免截断。 - 连板次数口径:
nums表示当日处于连板中的天数(首板为 1),并非"当日新晋级的高度增量";做晋级率统计时应与前一日天梯按ts_code对齐。 - ST 个股未剔除:样例中明确包含
ST美谷、ST东时,若统计口径不含 ST,需结合 ST 股票列表 接口自行过滤。 - 当日数据时效:连板天梯属于盘后数据,当日收盘后次日可稳定获取;盘中无实时版本,实时情绪请配合实时行情类接口使用。
- 数据仅供研究:涨停连板数据来源于交易所公开披露,主要用于复盘研究与策略验证,不应作为单一投资决策依据。
总结
limit_step连板天梯接口以极简的 4 字段输出,提供了 A 股市场情绪分析最直接的截面数据:最高连板、层级分布、晋级梯队一目了然。结合其trade_date、ts_code、start_date/end_date、nums(多值)四类查询维度,你可以自由切换"单日全景 / 个股回溯 / 区间循环 / 高度过滤"四种分析视角;再与同专题的limit_list_d、limit_cpt_list交叉配合,即可在 Vibe-Trading 中搭建从"涨停梯队观察"到"板块轮动研判"的完整打板数据流水线。
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考