2. 竞价量比的计算方法与数据获取
竞价量比是衡量集合竞价阶段成交活跃程度的核心指标,它把“开盘前这短短几分钟的成交量”与“过去若干日的平均每分钟成交量”放在同一尺度上比较,从而判断当日开盘资金参与度是偏强还是偏弱。理解这个指标,关键要抓住三件事:公式怎么算、分时竞价数据怎么取、原始数据怎么清洗。三者任何一环出错,量比都会失真,甚至给出完全相反的信号。
一、量比公式的拆解
通用量比公式为:量比 = 当日开盘阶段成交量 ÷(过去N日平均每分钟成交量 × 开盘阶段分钟数)。其中“过去N日”通常取5日,也可取10日;开盘阶段分钟数在A股集合竞价场景下,若只统计9:15—9:25的竞价成交,则按1分钟口径折算,若统计到9:30连续竞价开始,则需按实际分钟数调整。分母的本质是“按历史节奏,这段时间本该成交多少”,分子是“实际成交了多少”,两者相除即为相对活跃度。
需要特别说明参照约定:本文所有量比均以“历史同期平均每分钟成交量”为基准,量比大于1表示当日竞价成交高于历史同期节奏,小于1表示低于历史节奏。切换基准(例如改用10日均量或改用昨日单日量)时必须重新声明,不能混用。
举个教学示例(以下为合理假设的示例数据,非实测):某股过去5日全天成交量分别为8.2万手、7.6万手、9.1万手、8.8万手、8.3万手,日均约8.4万手。A股全天交易240分钟,则历史平均每分钟成交量约为8.4万÷240=350手/分钟。若当日9:15—9:25竞价成交量为1050手,按1分钟口径,量比=1050÷(350×1)=3.0,说明竞价阶段资金参与度明显高于历史同期。若把统计口径改为9:15—9:30共15分钟,则分母变为350×15=5250手,量比降为0.2,含义完全不同。可见口径必须与分母分钟数严格对应。
二、分时竞价数据的提取
竞价数据在行情终端里通常以“分时明细”或“逐笔成交”形式存在,字段至少包含成交时间、成交价、成交量(手)、成交方向。提取时要注意三点。第一,时间边界要卡准:9:15—9:20为可撤单阶段,9:20—9:25为不可撤单阶段,9:25产生开盘集合竞价成交价与成交量。若只研究竞价撮合结果,应取9:25那一刻的集合竞价成交量;若研究竞价过程情绪,则需保留9:15—9:25的逐笔快照。第二,成交量单位要统一,有的数据源给“股”,有的给“手”,1手=100股,混用会导致量比放大或缩小100倍。第三,要区分“竞价成交量”与“开盘后第一笔成交量”,后者属于连续竞价,不能计入竞价分子。
实际操作中,常见做法是从终端导出当日分时明细CSV,用时间列筛选出9:15:00至9:25:00的记录,对成交量列求和得到竞价总量;再取过去5个交易日的日成交量列,求均值后除以240得到每分钟均量。若使用脚本处理,可写成如下伪代码逻辑:
# 示例逻辑(假设数据已导出为列表)
auction_vol = sum(v for t, v in ticks if "09:15" <= t <= "09:25") # 竞价成交量,单位:手
avg_daily = sum(daily_vol[-5:]) / 5 # 5日日均量,单位:手
per_min = avg_daily / 240 # 每分钟均量
liangbi = auction_vol / (per_min * 1) # 1分钟口径量比
三、常见数据源与清洗要点
数据源大致分三类:一是行情终端(如同花顺、通达信、东方财富)的分时与历史成交导出,优点是直观、字段齐全,缺点是不同终端对竞价阶段的记录粒度不一致;二是交易所或行情商提供的公开行情文件,规范性强但需要自行解析;三是券商量化接口,适合批量获取但要注意权限与频率限制。无论哪一类,清洗都要围绕“可比性”展开。
清洗要点可归纳为四条。其一,剔除异常日:停牌日、复牌首日、除权除息日、涨跌停一字板日的成交量分布与常态差异极大,若纳入5日均量会污染分母,应跳过或做复权处理。其二,处理缺失与重复:分时明细可能出现同一时间戳重复推送,需按时间去重;竞价阶段若数据缺失,应标记为无效样本而非补零。其三,统一复权口径:历史日成交量若未复权,遇到送转股会导致量能突变,建议统一使用前复权成交量。其四,固定参数:N值(5日或10日)、分钟口径(1分钟或15分钟)、是否含9:25撮合量,一旦确定就在整个对照体系中保持不变,否则量比失去纵向可比性。