市场微观结构观察

交易是否正在涌向少数股票或少数行业?

导语

在阅读广发证券关于市场微观结构的三篇系列研报之后,我整理了一篇《市场微观结构:三篇广发研报读书纪要》。其中有一个问题颇有意思:我们经常说某个赛道“太拥挤了”,某种风格“抱团严重”,但所谓拥挤,究竟只是市场情绪上的一种感觉,还是可以被数据观察和刻画?

作为这篇读书笔记的一个副产品,我们沿着研报提供的思路,尝试把“拥挤”这件事做成几张可以持续观察的图表。从成交集中度、换手与波动、资金行为以及价格结构等不同角度,看看资金是否正在越来越集中于少数资产,以及这种集中有没有开始变得脆弱。

这里尤其值得留意的是:拥挤本身并不等于下跌,更不等于卖出信号。一个强势行业完全可能在很长时间里保持高拥挤、高估值和高景气,甚至越拥挤越上涨。真正值得警惕的,往往不是“大家都在一条船上”,而是船已经坐得很满,而风向开始变了。

因此,这组图表想观察的并不是“市场什么时候见顶”——如此艰巨的任务,几张图恐怕还承担不起——而是试着回答一个稍微朴素些的问题:现在的交易有多拥挤?拥挤正在继续强化,还是已经开始松动?如果松动,它究竟只是一次正常的风格切换,还是正在演变为更剧烈的筹码出清?

指标的选择和参数设置仍有不少可以继续推敲之处,也尚未构成经过独立验证的交易策略。姑且把它看作一组观察市场微观结构的“仪表盘”:平日看看水温和转速,真到了仪表盘集体亮红灯的时候,至少知道哪里可能有点不对劲。

至于它能不能提前告诉我们下一次抱团什么时候瓦解——这个要求,就暂且不要为难它了。

市场 Top 5% 的股票成交额占比

资金拥挤度

将每日 A 股按当日成交额从高到低排序,把排名前 5% 股票的成交额相加,再除以全部 A 股成交额。数值越高,说明市场交易越集中在少数股票上。

这个指标用于观察拥挤交易:当市场对热门方向的预期趋同,价格可能对利好钝化、对利空敏感,随后出现调整或风格转换。45% 与 50% 为历史研究参考线,并非独立的见顶信号。详细研究论述请阅读《微观结构研报》三篇读书纪要 ↗

━ 低于45%━ 45%~50%━ 超过50%┄ 45%警戒参考┄ 50%历史极值参照
移动鼠标或轻触曲线,查看对应交易日。

行业轮动 · 申万一级

行业强度热力图

下载行业数据

把相对市场的表现、行业自身波动和成交活跃度合成 0–100 分。红色越深,相对强势越明显;青色越深,相对弱势越明显。横着看持续性,竖着看当日强弱分化。

权重依次对应 1、5、20 日;两种模式共用数据与色标,仅调整权重。

相对弱势0255075100相对强势

正在加载行业数据…

悬停、点击或用键盘聚焦色块,查看对应行业的表现。

50 分表示相对中性;得分反映相对强弱,不等于上涨概率或资金净流入。行业即使下跌,也可能因跑赢市场而呈现强势。

综合分怎么算 · 使用说明书

它要回答什么问题

综合分用于观察一个行业相对全市场有多强、这种强势是否超出它平常的波动,以及成交是否活跃。它把方向、波动和量能合在一张热力表里:横向看强弱是否延续,纵向看同一天不同的行业表现。

直接比较涨幅,会让波动大的行业更容易显眼。先减去市场收益,可以区分行业走强与大盘普涨;再按行业自身波动调整,让低波行业的明显上涨也能被识别;最后用量能确认强弱程度。这里的“强”指相对表现,不代表有多少资金净流入。

输入与符号

使用申万一级行业指数收盘点位和成交额,市场基准为万得全 A。t 表示当前交易日,h 取 1、5、20 个交易日;P 为行业收盘点位,B 为基准收盘点位,A 为行业当日成交额。公式里的收益率与波动率使用小数,例如 2% 写成 0.02。

第一步:算相对市场的收益

R(h,t) = P(t) / P(t−h) − 1
M(h,t) = B(t) / B(t−h) − 1
E(h,t) = R(h,t) − M(h,t)

R 为行业累计涨幅,M 为同一窗口内的市场累计涨幅,E 为超额涨幅。例如行业涨 2%、市场涨 1%,超额为 +1 个百分点。行业跌 1%、市场跌 3%,超额仍为 +2 个百分点,因此下跌的行业也可能呈现相对强势。

第二步:按自身历史波动调整

r(d) = ln[P(d) / P(d−1)]
σ(h,t) = max{前置 60 日 r(d) 的样本标准差, 0.003}
Z(h,t) = clip{ E(h,t) / [σ(h,t) × √h], −3, 3 }

对每个 h,波动样本使用 d=t−h−59 至 t−h 共 60 个日对数收益,完全位于本次收益观察窗口之前;样本标准差分母为 59。三个周期各有自己的波动估计,不共用同一个窗口。√h 将日波动近似换算为 h 日波动,这是一种尺度调整,不是精确的概率模型。

例如,市场涨幅为零,两个行业 5 日都涨 2%:日波动 0.5% 的行业,标准化强度约为 1.79;日波动 2% 的行业约为 0.45。前者的涨幅相对自身日常波动更突出。0.3% 的日波动下限用于避免分母过小;clip(x,a,b) 表示将 x 限制在 a 到 b 之间,±3 的限制防止单次异常支配综合分。

第三步:合成三个周期

S(t) = w₁ × Z(1,t) + w₅ × Z(5,t) + w₂₀ × Z(20,t)

当前选中模式的权重依次为:50%、30%、20%。

模式1 日5 日20 日设计目的
当日敏感50%30%20%突出当天走强或转弱,颜色变化更及时
趋势观察20%50%30%突出一周表现,减少单日波动的影响

1 日反映最新变化,5 日观察短期延续,20 日提供稍长的趋势背景。三个窗口相互重叠,今天的涨跌会同时进入三个周期,所以它们不是三个独立信号,50% 的单日权重也不等于当天信息只影响一半。两套权重目前用于比较,尚未确定最终取舍。

第四步:用成交额确认强弱

MA30(t) = [A(t−1) + … + A(t−30)] / 30
Q(t) = A(t) / MA30(t)
F(t) = clip{ √Q(t), 0.75, 1.25 }
X(t) = S(t) × F(t)

MA30 不包含当天。Q=1 表示成交额与前 30 日均值相当,Q=1.44 表示高出 44%,对应确认系数 F=1.20。比较的是行业自身历史,不拿银行的成交额绝对值与电子等行业直接比较。

平方根使量能影响更温和,0.75–1.25 的限制防止巨量成交压过价格信息。相对强势时放量,分数进一步上升;相对弱势时放量,分数进一步下降;缩量使分数向 50 靠拢;S=0 时无论多活跃都保持中性。行业绝对下跌但跑赢市场,仍可能获得正向量能确认,因为方向取决于相对强弱。

第五步:映射到 0–100 分并标色

Score(t) = 50 + 50 × tanh[X(t) / 2]
tanh(u) = (eᵘ − e⁻ᵘ) / (eᵘ + e⁻ᵘ)

50 分表示综合相对强度为零;越高越强、越低越弱。固定映射让两种模式与不同日期使用同一色标,不会每天强制挑出一批高分行业。tanh 将极端值平滑压缩到 0–100 范围,并不代表上涨概率。表格显示整数,详情显示一位小数;计算使用未四舍五入的中间值。

假设标准化强度 Z(1)=1、Z(5)=0.5、Z(20)=−0.5,成交额倍数 Q=1.44:当日敏感模式 S=0.55,乘以 F=1.20 后 X=0.66,得分约 65.9;趋势观察模式 S=0.30、X=0.36,得分约 58.9。这个例子说明短期刚走强、较长周期仍弱时,两种权重会给出不同强度。以上是演算示例,不是真实行业数据。

如何使用,以及哪些信息它没有包含

先用当日敏感模式观察变化,再切换趋势观察判断是否已有延续。优先在“行业分组”下对比同一行的连续颜色;“最新强度”按当前模式最新一天的分数排列所有行,不逐日重排。鼠标移到色块会显示日期,点击或聚焦后,下方会同时显示同日两套分数与量价明细。详情的“历史日波动”对应 5 日指标使用的波动估计。

量能采用绝对成交额相对自身历史,因此大盘整体放量也可能提高确认系数;它不是行业成交份额或净流入。波动调整也不等于剔除了所有市场风险:这里没有做市场 beta 回归。换手率不参与本版打分。

计算只使用当日及以前数据;最初 80 个交易日用于历史样本准备,样本不足时不评分、不填成零。权重、波动下限、截断值和映射尺度均为首版观察参数,尚未通过预测效果回测;分数不代表估值高低,也不直接给出买卖结论。

数据来源:万得 Wind 金融数据服务。