Vibe-Trading 打板量化研究:Tushare stk_auction 当日集合竞价成交数据接口详解与实战
2026/9/12 11:40:26 网站建设 项目流程

Vibe-Trading 打板量化研究:Tushare stk_auction 当日集合竞价成交数据接口详解与实战

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

开盘集合竞价是一天中多空博弈最浓缩的 10 分钟,当日竞价成交数据(stk_auction)是 A 股打板与竞价抢筹研究的核心盘口截面数据。本文以 Vibe-Trading 仓库中 Tushare 技能文档 开盘竞价成交(当日).md) 为主体,结合仓库内 Tushare 技能总览、环境变量配置与市场微观结构技能,完整讲解stk_auction接口的参数、返回字段、调用示例与量化应用,并给出可直接运行的批量采集代码。读完本文,你将掌握如何用 Tushare 在 9:25–9:29 的黄金时间窗口拉取全市场竞价成交快照,并把它接入打板、量比异动等选股策略。

一、集合竞价机制与 stk_auction 的定位

A 股连续竞价之前存在一个集合竞价阶段:9:15–9:20 可申报可撤单,9:20–9:25 可申报不可撤单,9:25 交易所按照"最大成交量"原则撮合出开盘价并生成开盘集合竞价成交。这段时间的成交结果直接决定个股的开盘定位,是打板资金、竞价抢筹策略观察"竞价强度"的第一手数据。

在 Vibe-Trading 仓库中,market-microstructure 技能将中国 A 股的集合竞价机制(call auction / closing auction)列为独有的微观结构特征,用于改善成交成本估计、识别知情交易与优化大单执行。而本接口stk_auction正是获取"当日"(即当天盘前)个股与 ETF 集合竞价成交的专用数据源,与打板专题下的 涨跌停和炸板数据(limit_list_d)、涨停股票连板天梯 等接口互为补充,共同构成打板研究的数据闭环。

二、接口概览

项目说明
接口名stk_auction(Tushare 接口 ID 369)
功能获取当日个股和 ETF 的集合竞价成交情况
数据窗口每天 9:25~29 分之间可获取当日集合竞价成交数据
限量单次最大返回 8000 行,可根据日期或代码循环获取历史
权限单独开权限数据;已开通股票分钟权限的用户自动获得本接口权限

该接口在 Tushare 技能总览 中被归入"股票数据 / 打板专题数据"分类,定位是盘前实时竞价快照,与盘后更新的历史竞价接口(详见后文第六节对比)时效性完全不同。

三、输入参数详解

名称类型必选描述
ts_codestrN股票代码(如600071.SH300053.SZ
trade_datestrN交易日期(YYYYMMDD 格式,下同)
start_datestrN开始日期
end_datestrN结束日期

四个参数均为可选,可以组合使用:

  • 不传任何参数:返回当日(当前交易日)全市场竞价成交数据,单次最多 8000 行;
  • trade_date:返回指定日期的数据;
  • start_date+end_date:按日期范围拉取,受单次 8000 行上限约束,建议按日循环;
  • ts_code:只取单只标的的数据,适合对自选池逐个扫描。

四、输出参数详解

名称类型默认显示描述
ts_codestrY股票代码
trade_datestrY数据日期
volintY成交量(股)
priceintY成交均价(元)
amountfloatY成交金额(元)
pre_closefloatY昨收价(元)
turnover_ratefloatY换手率(%)
volume_ratiofloatY量比
float_sharefloatY流通股本(万股)

字段之间的换算关系可直接用于策略计算:amount ≈ vol × pricevolume_ratio = 当日竞价成交量均量 / 过去若干日同期均量,竞价量比是判断资金抢筹意愿的核心指标;turnover_rate反映竞价阶段筹码换手强度,对判断竞价抢筹 vs 竞价出货有直接参考价值。注意:ETF 标的(如 159/5 开头代码)不返回turnover_ratevolume_ratio(详见数据示例中的 NaN),因为基金没有传统意义的换手率概念。

五、实战:环境准备与首次调用

5.1 安装与 Token 配置

依据 Tushare 技能总览 的快速上手说明,首先安装依赖并配置 Token:

pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple export TUSHARE_TOKEN=your_token

在 Vibe-Trading 项目中,Token 通过环境变量 schema 统一管理,定义于 agent/src/config/env_schema.py(字段TUSHARE_TOKEN),预检逻辑位于 agent/src/preflight.py;股票数据示例脚本 agent/src/skills/tushare/scripts/stock_data_example.py 展示了标准初始化方式:

import os import tushare as ts # 读取环境变量中的 token,或读取本地记录的 token token = os.getenv('TUSHARE_TOKEN') or ts.get_token() # 初始化 pro 接口实例 pro = ts.pro_api(token)

5.2 获取当日集合竞价成交

沿用原文档示例,获取 2025 年 2 月 18 日开盘集合竞价成交情况,并显式指定字段以减小返回体:

df = pro.stk_auction( trade_date='20250218', fields='ts_code, trade_date, vol, price, amount, turnover_rate, volume_ratio' ) print(df)

返回结果为 pandas DataFrame,样例输出如下(来自原文档数据示例):

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 4 159707.SZ 20250218 160800 0.628 100982.00 NaN NaN ... ... ... ... ... ... ... ... 6507 300616.SZ 20250218 142700 14.370 2050600.00 0.091494 1.184760 6508 836957.BJ 20250218 300 12.310 3693.00 0.000702 0.012952 6509 123039.SZ 20250218 20 119.777 2395.54 NaN NaN 6510 603655.SH 20250218 1400 23.390 32746.00 0.001321 0.107119 6511 300949.SZ 20250218 25600 41.210 1054980.00 0.042667 0.830128

从样例可观察到的关键事实:

  • 代码后缀区分市场.SH上交所、.SZ深交所、.BJ北交所,ETF 也混在同一个 DataFrame 中(如159558.SZ);
  • ETF 字段缺失159558.SZ159707.SZ123039.SZturnover_ratevolume_ratio为 NaN,处理时需按代码段或交易所过滤,或用fillna(0)兜底;
  • 成交金额极小值123039.SZ成交金额仅 2395.54 元,属于流动性极差的标段,在打板研究中可设置金额下限过滤。

六、批量采集:全市场历史与自选池扫描

受单次 8000 行上限限制,全市场单日数据约 6500 行左右时一次可拉完;若需历史回补或未来数据量增大导致超限,可按日期循环。下面给出可直接运行的采集函数:

import time import pandas as pd import tushare as ts pro = ts.pro_api(os.getenv('TUSHARE_TOKEN') or ts.get_token()) def fetch_auction_between(start_date: str, end_date: str, ts_code: str = "", fields: str = "ts_code,trade_date,vol,price,amount," "pre_close,turnover_rate,volume_ratio,float_share", pause: float = 0.3) -> pd.DataFrame: """按日循环抓取日期区间内的集合竞价成交数据""" from tushare.util import dateu frames = [] day = start_date while day <= end_date: df = pro.stk_auction(trade_date=day, ts_code=ts_code, fields=fields) frames.append(df) print(f"{day}: {len(df)} rows") day = dateu.get_next(day) # 切换到下一交易日 time.sleep(pause) # 控制请求频率,避免触发限流 return pd.concat(frames, ignore_index=True) # 示例:抓取单只股票的竞价历史 hist = fetch_auction_between('20250201', '20250228', ts_code='600071.SH') # 示例:按竞价金额过滤出高关注度标的 today = pro.stk_auction(trade_date='20250218', fields='ts_code,vol,price,amount,turnover_rate,volume_ratio') hot = today[today['amount'] > 50_000_000] # 竞价成交额 > 5000 万 print(hot.sort_values('volume_ratio', ascending=False).head(20))

说明:dateu.get_next依赖交易日历自动跳过周末与节假日;若需更精确的交易日历控制,可结合仓库 Tushare 交易日历接口文档(trade_cal)生成交易日序列后循环。

七、接口矩阵:与开盘/收盘历史竞价及打板数据的配合

仓库"打板专题数据"与"特色数据"下共有三套竞价相关接口,容易混淆,此处对照梳理:

接口文档位置时效数据内容权限
stk_auction开盘竞价成交(当日).md)当日 9:25~29 可获取当日个股/ETF 竞价成交(vol、price、amount、量比、换手率)单独权限;股票分钟权限用户自动获得
stk_auction_o股票开盘集合竞价数据每天盘后更新开盘 9:30 集合竞价 OHLCV + vwap开通股票分钟权限后可用
stk_auction_c股票收盘集合竞价数据每天盘后更新收盘 15:00 集合竞价 OHLCV + vwap开通股票分钟权限后可用

三者构成完整的"竞价全生命周期"数据:stk_auction用于盘中决策(盘前抢筹、集合竞价异动捕捉),stk_auction_o/stk_auction_c用于盘后复盘(当日开盘与收盘竞价的历史因子回测)。其中历史接口单次最大返回 10000 行,均支持ts_code/trade_date/start_date/end_date四个入参,便于与本文接口共用同一套循环采集框架。

在打板策略中,stk_auction可与打板专题下的 涨跌停和炸板数据(limit_list_d,提供首封时间、炸板次数、连板数limit_times、封单金额fd_amount)联动:例如用竞价量比与竞价金额筛选"竞价抢筹"候选池,再用昨日涨停统计与连板数做晋级筛选,形成"竞价打板"研究流水线。

八、典型量化应用场景

基于原文档字段与仓库技能背景,stk_auction可用于以下策略方向(均为对既有接口字段的组合加工,可按需实现):

  1. 竞价量比选股volume_ratio显著放大(如 > 1.5)且price高开幅度可控的标的,往往是资金抢筹信号;结合pre_close计算竞价高开幅度(price - pre_close) / pre_close
  2. 竞价资金强度排序:以amount排序观察全市场竞价成交额分布,识别当日资金重点进攻方向;turnover_rate高开低走的标的需警惕竞价出货。
  3. 打板候选池预筛:对昨日涨停股(来自limit_list_d)在 9:25–9:29 窗口内扫描竞价量比与高开幅度,配合连板天梯数据做晋级预判。
  4. 微结构因子入库:将竞价成交金额占全日成交比例、竞价价格 vs 开盘后价格缺口等加工为因子,供 Vibe-Trading 的因子回测与策略研究框架使用。

九、注意事项与限制

  • 时间窗口敏感:当日数据仅 9:25~29 分钟段可取,错过需等下一交易日;盘前定时任务(如 cron 或 CI 定时器)应锚定 9:25 之后、9:30 连续竞价开始前触发;
  • 单次限量 8000 行:全市场数据量接近该上限时建议按日或按代码分批循环,避免静默丢行;
  • 权限要求:接口为单独开权限数据,已开通股票分钟权限的用户自动获得;无权限调用会返回权限类错误,需先在 Tushare 平台申请对应权限;
  • ETF 字段缺失turnover_ratevolume_ratio对 ETF 返回 NaN,统计前先按.SH/.SZ股票代码过滤或补齐;
  • 单位注意vol单位为股、price单位为元、float_share单位为万股,金额类聚合计算时注意单位统一;
  • Token 管理:在 Vibe-Trading 中通过TUSHARE_TOKEN环境变量(schema 见 agent/src/config/env_schema.py)注入,示例脚本 agent/src/skills/tushare/scripts/stock_data_example.py 展示了与环境配置对接的完整初始化方式。

十、小结

stk_auction是 A 股打板与竞价研究中唯一的"当日竞价实时截面"数据源,单次 8000 行、四个灵活入参、九类输出字段的设计让它既能支撑盘前全市场快照,也能按代码做自选池扫描。结合 Vibe-Trading 仓库中 Tushare 技能总览 的 token 管理与调用规范、同主题的历史竞价接口与打板数据接口,你可以直接搭建一套从竞价抢筹扫描到打板晋级预判的完整研究链路。建议从第六节的批量采集函数出发,先跑通单日数据,再逐步叠加量比、高开幅度、竞价金额阈值等过滤逻辑,形成可回测的竞价因子。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询