从一条 stk_auction 代码到 A 股全市场当日竞价快照脚本

从一条 stk_auction 代码到 A 股全市场当日竞价快照脚本 从一条 stk_auction 代码到 A 股全市场当日竞价快照脚本【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-TradingA 股的 9:15–9:25 集合竞价集中收集委托、按单一价格撮合的开盘定价环节用 10 分钟决定了每只股票的开盘定位。Vibe-Trading 仓库的 Tushare 技能收录了stk_auction接口来取 Tushare 当日竞价数据每天 9:25~29 分之间可以拿到全市场个股与 ETF 的竞价成交快照是打板、抢筹类策略判断竞价强度的第一手数据。下面先让一段能跑通的代码出现在你屏幕上。30 秒上手⚡ 前置条件安装 tushare 并配置TUSHARE_TOKEN环境变量变量定义见 agent/src/config/env_schema.py然后直接运行import os import tushare as ts token os.getenv(TUSHARE_TOKEN) or ts.get_token() pro ts.pro_api(token) # 拉某日全市场开盘集合竞价成交 df pro.stk_auction(trade_date20250218, fieldsts_code,trade_date,vol,price,amount, turnover_rate,volume_ratio) print(df.head())输出是一张 pandas DataFrame单日约 6500 行每行是一只标的当日的竞价结果。先别管参数细节看懂返回的数据长什么样才是用好这个接口的关键。数据长什么样每行 9 个字段按作用可以归成三类字段单位作用vol/price/amount股 / 元 / 元竞价成交量、成交均价、成交金额pre_close元昨收价用于计算开盘高开幅度volume_ratio—竞价量相对近期同期的放量倍数判断抢筹的核心指标turnover_rate/float_share% / 万股竞价阶段筹码换手强度、流通股本真实返回样例2025-02-18ts_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重点看两件事。一是换算关系amount ≈ vol × price8700 × 23.24 202188 元(price - pre_close) / pre_close就是高开幅度volume_ratio 1 说明竞价量能相对近期同期异常放大——这三个派生量是后面所有竞价策略的原料。二是数据质量.SH / .SZ / .BJ后缀区分交易所个股与 ETF 混在同一张表里ETF159、123 等开头的代码的 volume_ratio 和 turnover_rate 是 NaN因为基金没有传统换手概念统计前要先按代码前缀过滤或补零像样例里竞价金额只有 2395.54 元的 123039.SZ属于流动性极差的标的做打板研究时设一个金额下限就能滤掉这类噪音。单日快照够人肉扫一眼但要把策略回测起来就需要多日历史数据——循环就派上用场了。从单点到全市场循环由三个硬约束驱动单次请求最多返回 8000 行当日数据只在 9:25~29 分之间能取错过只能按日回补连续请求还要控频避免限流。全市场单日约 6500 行一次请求刚好拉完所以历史数据只需按日循环并让交易日历自动跳过周末import time import os import pandas as pd import tushare as ts pro ts.pro_api(os.getenv(TUSHARE_TOKEN) or ts.get_token()) def fetch_auction(start_date: str, end_date: str, pause: float 0.3): 按日循环抓取集合竞价快照自动跳过非交易日 cal pro.trade_cal(exchangeSSE, start_datestart_date, end_dateend_date, fieldscal_date,is_open) days cal.query(is_open 1)[cal_date] frames [] for day in days: frames.append(pro.stk_auction( trade_dateday, fieldsts_code,trade_date,vol,price,amount, pre_close,turnover_rate,volume_ratio)) time.sleep(pause) return pd.concat(frames, ignore_indexTrue) hist fetch_auction(20250210, 20250218) print(len(hist)) # 7 个交易日 × 约 6500 行多日数据到手后叠一层过滤就是盘前候选池竞价成交额 5000 万、量比 1.5、高开幅度 3%再按量比排序输出snap pro.stk_auction(trade_date20250218, fieldsts_code,vol,price,amount,pre_close,volume_ratio) snap[gap] (snap[price] - snap[pre_close]) / snap[pre_close] hot snap[(snap[amount] 5e7) (snap[volume_ratio] 1.5) (snap[gap] 0.03)] print(hot.sort_values(volume_ratio, ascendingFalse).head(20))如果只维护一个自选股池直接传ts_code逐只取数比每次拉全市场更省。数据攒齐之后还有几个坑和几个近邻接口需要分清再往上写策略。踩坑与延伸⚠️ 四个容易踩的坑当日数据只有 9:25~29 分窗口可取盘前定时任务应锚定 9:25 之后、9:30 连续竞价之前触发单次 8000 行上限数据量逼近上限时按日分批避免静默丢行接口是单独开权限的数据已开通股票分钟权限的用户自动获得无权限会直接报权限错误单位上 vol 是股、price 是元、float_share 是万股做金额聚合前先把单位统一。仓库里还有三个容易混淆的近邻接口按时效挑接口时效核心返回典型用途stk_auction当日 9:25~29vol / price / amount、量比、换手率盘中抢筹决策stk_auction_o每日盘后开盘竞价 OHLCV vwap单日 10000 行盘后因子回测stk_auction_c每日盘后收盘竞价 OHLCV vwap盘后因子回测limit_list_d每日盘后首封时间、炸板次数、连板数、封单金额打板晋级筛选基于这份数据两个可以直接落地的组合方向竞价量比选股volume_ratio 明显放大 1.5且高开幅度可控通常是资金抢筹信号再按 amount 排序看全市场资金进攻方向高开但换手率走弱的标的要警惕竞价出货。打板预筛盘前对昨日涨停池来自limit_list_d扫一遍竞价量比与高开幅度配合连板数 limit_times 做晋级预判形成竞价 打板的完整流水线。接口细节可查仓库文档 开盘竞价成交(当日).md.md)。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考