业务侧的公司行动(《分红送配与除权除息》那篇讲过)解决"投资者拿到什么",清算侧要回答的是另一个问题:这批权益变更的账务怎么落地,每一分钱和谁对账。公司行动清算最大的特点是它不由行情或委托驱动,而由中国结算下发的登记数据驱动——券商只是执行方,算账的权力在登记公司手里。这篇讲这个批量变更的完整链路。
登记数据驱动:三个日期切开时间线
公司行动的时间线被三个日期切成三段:
- 股权登记日(R 日):确定"谁是股东"。这天收盘后仍持有证券的投资者享受本次权益。中国结算在 R 日当晚生成股东名册数据,次日凌晨下发。
- 除权除息日(R+1):这天起买入的投资者不再享受权益,理论上价格要扣除权益价值。交易所发布的除权除息参考价只是参考,实际开盘价由集合竞价产生。
- 红利发放日:现金红利或红股正式到账的日期,通常在 R+1 之后若干交易日。
清算系统在这个时间线上的位置很明确:R 日收到登记数据后启动变更登记任务,把"应发多少"计算出来并挂账等待;红利发放日执行实际入账。两段分开的原因是要留出对账窗口——发放前必须和结算公司下发的资金清算数据核对,发现差异还能拦住。
除权参考价:总市值不变原则
除权除息参考价不是拍脑袋的政策价,而是从"除权前后公司总市值不变"推出来的。设前收盘价 $P_0$,每股派息 $D$,每股送股/转增比例为 $r$(10 送 3 则 $r=0.3$)。除权前市值 $P_0 \times N$($N$ 为总股本),除权后股本变为 $N(1+r)$,公司拿出现金 $D \times N$ 分红,于是:
$$ P_0 \cdot N = P_{XR} \cdot N(1+r) + D \cdot N \quad\Longrightarrow\quad P_{XR} = \frac{P_0 - D}{1 + r} $$
系统和投资者的角度不同:投资者盯着"我的持仓数量变了、参考价跌了,总资产没变";清算系统盯着的是成本处理——红股到账后每股成本要摊薄(成本总额不变、数量变多),否则卖出时的盈亏就全错了。拆细则反过来:数量变多、成本摊薄、参考价按比例除。送股和转增虽然投资者感受一样(白得股票),会计上科目不同(送股出自盈余公积/未分配利润,转增出自资本公积),清算流水要按结算公司的权益类别分别入账,不能混在一起。
差别化红利税:为什么持仓台账必须记住买入日期
2015 年 9 月起 A 股红利税实行差别化征收:持股 1 个月以内 20%、1 个月至 1 年 10%、超过 1 年免征。关键设计是卖出时补扣:派发红利先全额发放,等投资者卖出时按"先进先出"推算这部分股票的持有期限,不够一年的再补扣税款。这给了系统一个硬要求:持仓台账不能只记数量和成本,每批持仓的取得日期都要保留。
清算的落点是卖出清算里的补扣分支:卖出某只近期有分红的股票时,按 FIFO 算出本次卖出覆盖的购入批次,对持有期在一年以内的部分计算应补扣税额。如果投资者的可用资金不够扣,差额形成欠税挂账,下次卖出或入金时追缴。这块是整个公司行动清算里最容易出错的点,因为补扣发生在未来的某笔卖出时,和当初的发放动作在时间上完全解耦——测试时专门有一类用例就是"分红后部分卖出、跨期限批次混合卖出"的组合。
批量变更的执行与对账
变更登记任务的处理顺序:先挂账权益数据(应收红利、应收红股),再执行实际入账(资金入账、股份变更),最后做对账。红股入账有个细节——零碎股。10 送 3 时持有 100 股的投资者拿到 30 股整数没问题,持有 101 股则拿到 30.3 股,其中 0.3 股按零碎股规则处理:要么按现金替代(按参考价折算),要么累计到下次。结算公司的清算数据里会明确零碎股的处理方式,券商照抄执行,不能自己发明规则。
对账核对两组数字:应收红利合计对结算公司下发的权益资金清算数据、应收红股数量对证券变动数据。不平的常见原因有三个:登记数据解析错位(定长字段切错列,公司行动代码和比例字段混了)、零碎股处理口径不一致、以及 R 日当天买入在途的持仓归属争议。前两个是代码 bug,第三个要和结算公司的口径文件(业务规则文档)逐字核对——"收盘后持有"在融资融券担保证券、回购质押券上的口径都有专门条款。