halo 的技术博客

返回

A 股每年有上万亿市值的限售股解禁——首发原股东的三年锁定期到期、定增参与者的一年锁定期到期,这些股票从”不能卖”变成”随时能卖”。直觉上解禁日应该暴跌,但拿真实数据一看会发现一个更微妙的图景:解禁日当天往往波澜不惊,真正的下跌发生在解禁日之前的两三周,而解禁日之后反而常常修复。这不是异象失效,而是市场把一个公开日历事件提前定价了——解禁日期在招股书和定增公告里写得明明白白,等到 T0 才反应的人是最后一个知道消息的人。

这篇文章用 800 个解禁事件的合成面板把这条时间线完整量化:抛压什么时候开始、多大规模的解禁才值得躲、谁在卖决定卖多狠、以及 T0 之后的修复能不能反过来吃。

结论先放这:**在植入”预期性抛压 + 事后修复”机制的 800 事件面板里,大规模解禁组(解禁市值/流通市值 >13%)从 T-20 到 T0 的累计超额收益是 -10.8%,其中近一半(-5.3%)集中在 T-5 到 T0 这最后五天;而 T0 之后 10 个交易日修复 +4.5%。小规模组(<4%)整个事件窗只有 -1.6%,基本可以无视。按股东类型切:定增高浮盈股东(浮盈 >20%)的组在 T0 前砸出 -10.4%,首发原股东组只有 -2.4%——差 4 倍,因为定增股东有明确的成本线和退出纪律,首发股东是实控人和高管,减持受窗口期和公告约束。**两种用法都能落地:日历化规避(组合里的股票进入 [T-20, T0] 窗口就换出)把年化从 12.2% 提到 13.7%;反向吃修复(大规模解禁 T0 买入持有 30 日)平均超额 +6.3%(t=8.3),且入场越早吃得越多。

为什么抛压在解禁日之前#

限售股解禁是极少数日期完全公开、提前数年可知的公司事件。招股书写明首发股东锁定 36 个月,定增公告写明锁定 12 个月,交易所每周发布未来解禁日历。这意味着:

  1. 知情者先动:知道大股东要减持的资金(包括大股东自己的关联盘)会在解禁前降低仓位;
  2. 规避盘先撤:机构风控看到大额解禁临近,主动降低持仓,这本身就是抛压;
  3. 做空替代:融券可行的标的上,解禁预期直接转化为提前的空头压力;
  4. 流动性提供者撤单:做市资金预期到 T0 后供给冲击,提前把买单挂得更低。

四股力量的合成结果是:价格在 T0 之前就把”预期减持量”消化掉了。而 T0 之后的修复来自一个反复被验证的事实——实际减持量往往显著低于市场恐惧的理论上限。首发股东减持要预披露、有比例限制(90 日内集中竞价不超过总股本 1%)、还有窗口期约束;很多解禁股东根本不打算卖。恐惧定价了 100% 的抛售,现实只来了 30%,差额就是修复。

事件面板的构造#

模拟 800 个解禁事件,事件窗 [-30, +30] 个交易日,每个事件有三个属性决定抛压强度:

import numpy as np
rng = np.random.default_rng(42)

N_EVENTS = 800
WIN = np.arange(-30, 31)

# 解禁规模: 解禁市值/流通市值, 对数正态, 截断在 [0.5%, 80%]
size = np.clip(rng.lognormal(np.log(0.08), 1.0, N_EVENTS), 0.005, 0.8)

# 股东类型: 0=首发原股东(锁3年,减持受约束), 1=定增股东(锁1年,退出纪律强)
stype = rng.binomial(1, 0.45, N_EVENTS)

# 定增浮盈: 当前价/定增价-1, 浮盈越厚越想落袋
pi_gain = rng.normal(0.15, 0.35, N_EVENTS)
python

抛压强度是三者的乘积——规模大、定增类、浮盈厚,三个条件叠满就是最重的抛压:

intensity = size * (1.6 if stype == 1 else 0.6) * max(0.3, 1 + 1.2 * pi_gain)

# 时间分布: T-20 起缓慢阴跌, T-5~T0 加速, T0 后修复
for j, d in enumerate(WIN):
    if -20 <= d < -5:
        daily[j] += -intensity * 0.008     # 提前阴跌
    elif -5 <= d <= 0:
        daily[j] += -intensity * 0.030     # 最后五天加速
    elif 0 < d <= 10:
        daily[j] += intensity * 0.014      # 恐惧出清后修复
daily += rng.normal(0, 0.018, len(WIN))    # 日超额噪声 1.8%
python

这个时间形状不是拍脑袋:A 股解禁事件研究文献(以及美股 IPO lockup expiration 的经典结果,如 Field & Hanka 2001)反复呈现同一形态——负超额收益前置、事件日附近最陡、事后部分回补。合成面板的作用是让这条曲线可复现、可分组、可做统计检验,而不受单一样本期牛熊的污染。

规模分组:多大的解禁才值得躲#

把 800 个事件按解禁规模三分组,画平均 CAR 路径:

解禁事件窗CAR:按规模三分组,大规模组跌幅深、且提前发生

三条曲线的分化非常干净:

分组T-20→T0 CAR其中 T-5→T0T0→T+10 修复
小规模(<4%)-1.6%-0.8%+0.7%
中规模-4.9%-2.4%+2.0%
大规模(>13%)-10.8%-5.3%+4.5%

两个可操作的读数:

**第一,4% 是”可以无视”的分界线。**小规模组整个事件窗的 CAR 在日噪声 1.8% 的背景下几乎不可分辨——解禁市值不到流通盘的 4%,市场的日常换手就能吸收,不构成信号。把所有解禁一视同仁地躲,会白白付出大量换手成本。

**第二,抛压的一半浓缩在最后五天。**大规模组 -10.8% 的坑里有 -5.3% 发生在 T-5 到 T0。这对规避策略的含义是:如果换仓成本高,退而求其次只躲最后一周,还能躲掉一半的坑。

谁在卖:股东类型比规模更锋利#

同一批事件按”股东类型 × 浮盈”切开:

按股东类型分组:定增高浮盈组抛压最重,首发原股东组最轻

  • 定增解禁 · 高浮盈(>20%)组:T0 前 CAR -10.4%(n=153)
  • 定增解禁 · 低浮盈/浮亏组:约 -5% 出头
  • 首发原股东解禁组:仅 -2.4%(n=449)

差距的机制值得展开。定增参与者是财务投资人:进场时就有明确的成本价,锁定期一到、浮盈够厚,卖出是纪律而不是选择——尤其结构化定增产品有存续期,到期必须退出。而首发原股东是实控人、高管、创投:实控人卖股要考虑控制权,高管减持有窗口期和预披露约束,很多人根本不卖。市场也知道这一点,所以对定增解禁的恐惧定价远重于首发解禁。

浮盈的作用同样直白:浮亏的定增股东倾向于扛着等回本(处置效应在机构身上照样存在),浮盈 20% 以上的股东落袋意愿最强。把”定增 + 浮盈>20% + 规模>13%“三个条件做成筛选器,就是抛压最重的那撮事件——也是规避和修复交易信号最强的那撮。

用法一:日历化规避#

最朴素的用法:组合里的持仓一旦进入 [T-20, T0] 解禁窗口,就临时换出,T0 之后换回。用 200 只股票、3 年日频的组合模拟(窗口内股票有日均 -15bp 的抛压拖累,对应事件研究的平均强度):

# 全持有基准 vs 规避解禁窗(权重重分配到其余股票)
in_window = rng.random((n_stk, T)) < 0.030      # ~3%天数处于解禁前窗
drag = np.where(in_window, -0.0015, 0.0)         # 窗口内日均拖累15bp
ret_stock = mkt[None, :] + stock_alpha + drag

w = (~in_window).astype(float)
w /= w.sum(axis=0, keepdims=True)
avoid = (ret_stock * w).sum(axis=0)
python

规避策略与基准净值对比:年化提升约1.5个百分点

结果:全持有基准年化 12.2%(Sharpe 0.73),规避解禁窗年化 13.7%(Sharpe 0.80)。年化 +1.5 个百分点,听起来不惊艳,但这是一个纯日历规则、零预测含量的改进——不需要预测任何东西,解禁日期是公开信息,规则是确定性的。对一个已有 alpha 的组合,这属于”捡在地上的钱”:唯一的代价是每年多出的一点换手(3% 的股票·天数处于窗口,对应的额外换手有限)。

实盘里还能更精细:只规避”定增 + 高浮盈 + 大规模”的窗口,把规避集合缩小到抛压最重的 15% 事件,换手成本更低、单位规避收益更高。

用法二:反向吃修复#

激进的用法是反过来:在恐惧最大化的 T0 附近买入,吃事后修复。对大规模解禁组扫描入场日——T0 后第 k 天买入、持有到 T+30:

入场时点扫描:T0当天入场平均超额6.3%,随入场推迟单调衰减

  • T0 当天入场:平均超额 +6.3%(t=8.3)
  • T+5 入场:+4.2%(t=6.7)
  • T+15 之后入场:收益趋近于零

修复收益随入场推迟单调衰减,且大头集中在前 10 个交易日——这与”恐惧出清、实际减持低于预期、价格回补”的机制自洽:修复是对过度定价的纠偏,纠偏完成后就没有了。

但要诚实地说清楚这个 t=8.3 的合成属性:合成面板里修复是被植入的机制,t 值高是因为 800 个事件同质且噪声独立。真实数据里修复的截面异质性大得多——有的解禁真的伴随大股东清仓式减持(修复不会来,坑会更深),有的公司借解禁窗口释放利好护盘(修复提前)。实盘做修复交易必须叠加两个过滤器:一看解禁后的实际减持公告(预披露数据),二看解禁股东类型(首发实控人解禁后的修复远比定增产品到期可靠,因为前者大概率不卖)。

四个实盘会翻车的地方#

**一、解禁日历的数据质量陷阱。**解禁日期虽然公开,但存在变更:大股东主动延长锁定、监管窗口指导、送转股导致解禁数量调整。用静态的招股书日期做回测,会把已延期的事件算成”解禁但没跌”,稀释信号。必须用交易所的滚动解禁日历做时点对齐。

二、规模分母要用自由流通盘。“解禁市值/总市值”和”解禁市值/自由流通市值”是两个量级的指标。一只大股东持股 70% 的公司,解禁 10% 总股本对应的是自由流通盘的 33%——用总市值算会严重低估冲击。文中所有规模均以流通盘为分母,实盘同理。

**三、修复交易的做空腿不存在。**事件研究的负 CAR 会诱惑人去做空 [T-20, T0] 窗口,但 A 股个股融券在这类标的上几乎必然券源枯竭——大额解禁临近时,融券余额早被同一个想法的人占满。提前抛压那一段,对多头组合是规避信号,不是做空机会。

**四、和一致预期减持的重叠计算。**解禁抛压因子与”大股东减持预披露”信号高度相关但不相同——预披露是解禁的子集(已决定卖的那部分)。两个信号都用会双重计数同一份信息。正交化处理:以预披露为主信号(更精确),解禁日历只对”未预披露但规模大”的事件补充覆盖。

总结#

限售股解禁是 A 股少有的日期确定、机制清晰、可日历化的事件因子。核心结论有三条:抛压前置(T-20 开始、T-5 加速,T0 当天往往是恐惧的顶点而非起点);强度三因素(规模 >13%、定增类型、浮盈 >20%,叠满才值得行动,小规模解禁是噪声);修复可交易但需过滤(T0 入场吃前 10 日回补,必须用实际减持披露和股东类型过滤真伪)。防守用法——日历化规避——是零预测含量的组合卫生习惯,值得写进任何 A 股多头组合的风控流程;进攻用法——吃修复——则要求对”谁在卖、卖多少”有比市场恐惧更冷静的判断。

事件日历在手,剩下的只是纪律。

限售股解禁抛压:事件研究框架下的日历化规避与修复交易
https://blog.halo26812.eu.org/blog/share-unlock-selling-pressure
Author halo
Published at 2026年7月26日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨