news 2026/9/17 3:45:54

Vibe-Trading Tushare stk_auction 开盘竞价成交接口实战:从 9:25 全市场快照到竞价抢筹选股

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vibe-Trading Tushare stk_auction 开盘竞价成交接口实战:从 9:25 全市场快照到竞价抢筹选股

Vibe-Trading Tushare stk_auction 开盘竞价成交接口实战:从 9:25 全市场快照到竞价抢筹选股

【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading

Vibe-Trading 仓库内置的 Tushare 数据源技能里,stk_auction接口(打板专题)提供当日个股与 ETF 的集合竞价成交截面,单次最大 8000 行,覆盖量比、换手率、竞价金额等字段,可支撑盘前竞价抢筹扫描与打板晋级预判的完整研究链路。

9:25 开盘价出炉,你只有 4 分钟窗口

早盘集合竞价 9:15 开始申报,9:25 交易所按最大成交量原则撮合出开盘价。做竞价抢筹或打板研究的人,通常就在 9:25–9:29 这 4 分钟里拉全市场竞价快照:谁在竞价阶段放量、高开多少、成交金额多大,直接决定盘中第一笔下单的方向。

这正是 Vibe-Trading 仓库 Tushare 技能中"打板专题数据"分类下的stk_auction接口要解决的:每日 9:25–9:29 之间获取当日集合竞价成交数据(仓库接口文档:开盘竞价成交(当日).md))。注意它和盘后更新的历史竞价接口stk_auction_o(返回 OHLCV + vwap,用于因子回测)不是同一个数据源——stk_auction只服务盘中决策,错过就要等下一个交易日。

三步跑通第一次调用

装依赖、配 Token、发一次请求,三步就能拿到数据。仓库内 Tushare 技能总览 的"快速上手"一节有完整说明,Token 在项目里统一走环境变量TUSHARE_TOKEN(schema 定义于 agent/src/config/env_schema.py,标准初始化写法可参考 stock_data_example.py)。

pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple export TUSHARE_TOKEN=your_token
import os import tushare as ts # 优先读环境变量,本地已记录过 token 时自动回退 token = os.getenv('TUSHARE_TOKEN') or ts.get_token() pro = ts.pro_api(token) # 不传任何参数 = 拉当日全市场;显式指定 fields 减小返回体 df = pro.stk_auction(fields='ts_code,trade_date,vol,price,amount,turnover_rate,volume_ratio') print(df)

返回是 pandas DataFrame,一天约 6500 行,股票和 ETF 混在同一个截面里:

ts_code trade_date vol price amount turnover_rate volume_ratio 0 600071.SH 20250218 8700 23.240 202188.00 0.003090 0.150628 1 300053.SZ 20250218 53300 13.750 732875.00 0.008388 0.230996 2 159558.SZ 20250218 18700 1.211 22645.70 NaN NaN 3 600879.SH 20250218 195900 9.190 1800320.00 0.005938 0.373839 6 300616.SZ 20250218 142700 14.370 2050600.00 0.091494 1.184760 7 836957.BJ 20250218 300 12.310 3693.00 0.000702 0.012952

代码后缀区分市场:.SH沪市、.SZ深市、.BJ北交所,ETF(如159558.SZ)也在其中。

四个入参自由组合,九类字段各管一段

四个入参全部可选,可以任意组合:不传参拉当日全市场;传trade_date拉指定日;start_date+end_date按区间回补(受单次 8000 行上限约束);传ts_code对自选池逐个扫描。

入参类型必选作用
ts_codestrN股票代码(如600071.SH
trade_datestrN交易日期,YYYYMMDD
start_datestrN开始日期
end_datestrN结束日期

输出字段与它的坑:

字段类型说明
ts_codestr股票代码
trade_datestr数据日期
volint成交量(股)
priceint成交均价(元)
amountfloat成交金额(元)
pre_closefloat昨收价(元)
turnover_ratefloat换手率(%)
volume_ratiofloat量比
float_sharefloat流通股本(万股)

字段之间有三组隐含关系,决定了你拿到截面之后先做什么清洗:

  • amount ≈ vol × price:成交金额是量与均价的乘积,两者对不上时优先怀疑数据异常,不必另行验证。
  • 量比是抢筹核心指标volume_ratio衡量当日竞价成交量相对近期同期均量的放大倍数,数值大于 1 说明竞价阶段资金明显进场;配合(price - pre_close) / pre_close算出的竞价高开幅度,就是盘前第一套筛选逻辑。
  • ETF 缺两个字段:基金类标的的turnover_ratevolume_ratio返回 NaN。全市场快照做聚合统计前,建议直接按代码段过滤掉159/51/56开头的代码,或者用fillna(0)兜底,否则均值类指标会被拉偏。
  • 单位不统一vol是股、price是元、float_share是万股。做市值或换手类聚合计算前先统一单位,否则差 1 万倍的错误很难排查。
  • 金额下限过滤:样例里123039.SZ竞价金额只有 2395 元,这类流动性极差的标的会污染排序,建议设一个最低amount阈值(比如 500 万)再进候选池。

从单日快照到按日回补

单次调用跑通之后,需求自然变成两个:盘前每天自动抓当日快照,盘后按日回补历史。全市场单日约 6500 行,一次能拉完;跨日回补就必须按日循环。

import time import pandas as pd import tushare as ts FIELDS = "ts_code,trade_date,vol,price,amount,pre_close,turnover_rate,volume_ratio,float_share" def fetch_auction_days(pro, days: list[str], fields: str = FIELDS, pause: float = 0.3) -> pd.DataFrame: """days 为 YYYYMMDD 交易日列表;按日循环 + 限速避免触发限流""" frames = [] for day in days: df = pro.stk_auction(trade_date=day, fields=fields) print(f"{day}: {len(df)} rows") frames.append(df) time.sleep(pause) return pd.concat(frames, ignore_index=True) def trading_days(start: str, end: str) -> list[str]: """用 trade_cal 生成交易日序列,自动跳过周末与节假日""" cal = pro.trade_cal(exchange='SSE', start_date=start, end_date=end, is_open='1') return sorted(cal['cal_date'].tolist()) hist = fetch_auction_days(pro, trading_days('20250201', '20250228'))

想更细,可以在循环里对ts_code逐个拉取,同一套函数直接复用于自选池扫描。

交易日历用 Tushare 技能里的 trade_cal 文档 即可,仓库预检逻辑在 agent/src/preflight.py 处理 Token 连通性检查。往打板策略方向走,stk_auction和 涨跌停和炸板数据(limit_list_d,提供封单金额fd_amount、炸板次数open_times)、涨停股票连板天梯(limit_step)天然配套:竞价截面出候选池,昨日涨停统计做晋级筛选;而 股票开盘集合竞价数据(stk_auction_o)与 股票收盘集合竞价数据(stk_auction_c)负责盘后历史回测,三者构成竞价数据的完整闭环。

落地方向与避坑清单

基于字段组合,四个可以直接动手的方向:

  1. 竞价量比选股volume_ratio > 1.5且竞价高开幅度可控(pricepre_close的涨幅落在目标区间),抓资金抢筹信号。
  2. 资金强度排序:按amount降序看全市场竞价成交分布,识别当日主攻方向;turnover_rate高开低走的标的警惕竞价出货。
  3. 打板候选预筛:对昨日涨停股(limit_list_d)在 9:25–9:29 窗口内扫描竞价量比与高开幅度,配合limit_step连板数做晋级预判。
  4. 微结构因子入库:把竞价amount占全日成交比例、竞价均价price与开盘后价位的缺口加工成因子,接入回测框架。

避坑清单:

  • ⚠️ 当日数据只在 9:25–9:29 可取,盘前定时任务应锚定 9:25 之后触发,错过即等下一交易日。
  • 单次最大 8000 行:单日全市场一次拉完没问题,历史回补务必按日拆分,避免静默丢行。
  • 权限独立:本接口是单独开权限的数据,已开通股票分钟权限的账号自动获得,无权限调用会直接返回权限类错误。
  • ETF 的turnover_ratevolume_ratio是 NaN,聚合前先过滤或补齐。
  • 单位:vol为股、price为元、float_share为万股,聚合计算前先统一。
  • 低流动性标的(竞价金额几千元级别)建议用amount下限过滤后再进排序。

下一步很明确:先跑通单日全市场快照,确认返回 6500 行左右的量级,再叠加量比阈值、竞价金额下限和高开幅度过滤;然后按日回补一个月的竞价数据,落成一张可回测的竞价因子表。

【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 3:45:27

三年安卓老机卡顿排查:WorkBuddy四步优化与五倍提速实测

三年前买的这台手机,最近半年的状态基本可以用四个字概括:点啥卡啥。早上闹钟响了想按掉,屏幕得先愣两秒才亮;扫码付款的时候,后面排队的人已经付完了,我这边相机还没打开;最离谱的是相册&#…

作者头像 李华
网站建设 2026/9/17 3:43:36

Qt下FFmpeg+SDL播放器开发:从解码到录像截图完整实践

简介:这份QT环境下基于ffmpeg与SDL开发的音视频播放器工程源码,适合有一定C基础、希望学习多媒体播放器实现原理的开发者。资源完整演示了如何将ffmpeg的解码能力与SDL的渲染能力集成进QT界面,并额外实现录像与截图功能,覆盖YUV转…

作者头像 李华
网站建设 2026/9/17 3:43:23

基于约束差分进化算法的多微电网拓扑设计及Matlab实现

做过多微电网项目的人都有同感:大多数时候瓶颈不在“运行”而在“规划”。哪里架联络线、哪些微电网之间互联、要不要走冗余回路,这些拓扑设计问题一旦规模上来,组合数量是几何级数膨胀。传统的人工推演加启发式规则在小规模场景还能凑合&…

作者头像 李华
网站建设 2026/9/17 3:42:55

AI个性化不是设置,而是人机协作契约

1. 这不是“设置”,而是一场持续的AI关系经营“我的 AI 个性化设置”——看到这个标题,很多人第一反应是点开某个App里的齿轮图标,滑动几下 sliders,勾选几个“更懂我”的选项,然后期待AI突然变得像老朋友一样善解人意…

作者头像 李华
网站建设 2026/9/17 3:35:29

SSM + Vue 资产管理信息系统:后端骨架到部署验证全解析

简介:面向毕业设计、课程设计与工程实训场景,这套资产管理信息系统完整项目基于SSM(SpringSpring MVCMyBatis)与Vue实现前后端分离,使用Java开发,适配JDK1.8、Tomcat7、MySQL5.7环境,适合从入门…

作者头像 李华