实盘跟踪

第 6 轮把因子组合变成每天能跑的东西:记录月末信号、按可执行价格建一个纸面组合、逐月核对纸面与回测的差额来自哪里。这里最重要的一行是结论,不是净值:回测曲线在信号日收盘成交,纸面账户在次一交易日收盘买入,这一个交易日的差别,几乎就是两者全部的距离。全部数字来自 results.json 的 live 段。

跟踪组合
低波动 + 非流动性 + 反转
信号日
2026-10-30
建仓日
2026-11-02
当前持仓
276 只
数据截至
2026-11-06

01 / 当前持仓

这个月买什么

每月最后一个交易日收盘后算分,次一交易日收盘按等权买入。下面是综合分最高的 20 只;完整名单、权重与建仓价在 results.json 的 live.current 段。

持仓与当月表现

5 个交易日
纸面组合 MTD
+1.7%
模型 MTD
+3.8%
创业板指 MTD
+2.1%
票池
1384 只
按综合分降序;权重是建仓时的等权权重,尚未随价格漂移
代码综合分权重建仓收盘价20 日成交额中位
3000910.82450.36%28.85818 万
3015810.82410.36%31.472013 万
3012830.81760.36%35.002145 万
3011730.81440.36%28.482203 万
3008000.80910.36%26.893161 万
3016130.80720.36%45.902539 万
3011130.80090.36%26.932457 万
3012030.79930.36%33.961723 万
3010490.79470.36%16.622227 万
3011700.79370.36%20.572058 万
3012720.79370.36%31.222545 万
3008990.78750.36%25.693094 万
3001260.78530.36%21.453045 万
3013530.78530.36%28.943507 万
3008370.78340.36%20.173154 万
3002050.78310.36%27.40761 万
3012880.78170.36%14.022098 万
3009580.78120.36%10.573079 万
3015050.78070.36%19.633309 万
3011050.78050.36%40.702684 万

纸面组合买入的是股数,权重会随价格漂移;回测每天把持仓拉回等权并且不收再平衡成本。这个差别在归因里单列为「再平衡口径」,每月只有几个基点。

02 / 每日监控

信号会不会天天变

每天用当天收盘重新算一次分,看前 21 个交易日里目标持仓与当前组合的重合度和隐含换手。它回答的是「这个月还没到调仓日,信号有没有已经翻脸」,而不是交易建议。

最近 21 个交易日

最新重合 227 / 276
「月末」列标出真正的信号日;其余日子的重合度只用于观察稳定性
日期票池目标持仓与当前重合隐含换手月末
2026-10-091,37927518233.8%—
2026-10-121,37927518433.1%—
2026-10-131,37927518333.5%—
2026-10-141,37927519130.5%—
2026-10-151,37927519429.5%—
2026-10-161,37927518831.6%—
2026-10-191,38127619230.4%—
2026-10-201,38227619330.1%—
2026-10-211,38227620127.2%—
2026-10-221,38327620725.0%—
2026-10-231,38327621422.5%—
2026-10-261,38427621621.7%—
2026-10-271,38427622917.0%—
2026-10-281,38327623514.9%—
2026-10-291,38327624710.5%—
2026-10-301,3842762760.0%是
2026-11-021,3842762528.7%—
2026-11-031,38427624511.2%—
2026-11-041,38427624112.7%—
2026-11-051,38327623315.6%—
2026-11-061,38427622717.8%—

重合度在月中波动属正常:低波动与非流动性因子每天都在变,反转因子更是逐日翻。回测只认月末收盘那一次,中间的漂移不计入收益,也不产生成本——这是「月度调仓」的代价,不做事后择时。

03 / 回测与纸面

同一条策略,两种成交假说

模型曲线沿用前几轮的回测口径:在信号日收盘成交。纸面曲线按真正可执行的规则:次一交易日收盘买入、按股数持有、跳过当天没有成交的股票。两条曲线的差就是「知易行难」的价格。

逐月重放:模型 vs 纸面

2011-06–2026-09
  • 模型 · 信号日收盘成交
  • 纸面 · 次一交易日收盘成交
01000200030002011.062015.042019.022022.112026.09纸面 919模型 2380

两条线用同样的选股、同样的成本假设,只差一天成交。纸面曲线低于模型,是因为模型把「信号日收盘 → 次日收盘」这一段算进了当月,而按次日收盘买入的账户吃不到。

年化按月度复利换算;差额单位:年化百分点与每月基点(bp)
区间月数模型年化纸面年化累计差建仓时点再平衡口径可成交性残差
全区间184+23.4%+15.9%-96.03 pp-48.2-3.6-0.40.0
样本外 2022 起57+16.0%+4.9%-47.86 pp-76.6-6.2-1.20.0
这一轮最重要的结论

样本外模型年化 +16.0%,可执行的纸面只有 +4.9%;累计差 -47.86 pp,其中建仓时点一项就是 -76.6 bp/月。也就是说,之前几轮公布的个股组合收益,主要依赖一个现实中拿不到的成交价。本站不修改历史数字,但从此把模型口径与可执行口径并列公布;只有纸面口径才配叫「策略收益」。

04 / 归因明细

差额逐月拆开

对数收益按恒等式拆分:纸面 − 模型 = 建仓时点 + 再平衡口径 + 可成交性 + 残差。残差在日频加总口径下应当为零,不为零就是记账错了。

最近 12 个月

单位:% 与 bp
模型与纸面是该月收益;后四列是纸面减模型的分解
月份模型纸面建仓时点再平衡可成交性残差
2025-10+1.70+0.47-117.1-4.70.00.0
2025-11-0.45-0.99-55.3+3.0-1.60.0
2025-12+8.93+6.57-213.6-6.00.00.0
2026-01+4.69+6.18+138.6+1.90.00.0
2026-02-8.56-5.64+318.6-4.80.00.0
2026-03+7.08+5.26-179.4+8.00.00.0
2026-04-8.26-8.92-65.4-7.00.00.0
2026-05-9.45-11.78-267.7+7.60.00.0
2026-06+3.02-0.05-289.4-12.40.00.0
2026-07+12.32+9.00-290.5-9.40.00.0
2026-08-0.19-1.20-95.2-6.50.00.0
2026-09-11.82-11.42+47.8-2.1-0.00.0

「可成交性」指信号日之后第一个交易日没有成交、买不进的股票;它很小(0.16% 的目标名次中出现过 41 次)。

05 / 建仓次日

差的那一天到底值多少

把每个月「信号日收盘 → 次一交易日收盘」这一天的收益单独拎出来,再和创业板指在同一批交易日的涨跌对比:如果指数也涨,那说明它是月末月初的市场共性,而不是策略独有的 alpha。

建仓次日的收益与显著性

均值 · t 值
「同批交易日」指每个月信号日的下一个交易日;「全部交易日」是样本外所有交易日,用于对照
对象月数 / 天数均值 bp中位 bpt正收益占比
策略 · 建仓次日(全区间)184+51.4+85.22.8469.0%
策略 · 建仓次日(样本外)57+78.6+86.73.1773.7%
创业板指 · 同批交易日(全区间)184+42.9+42.42.2659.2%
创业板指 · 同批交易日(样本外)57+40.1+28.11.0954.4%
创业板指 · 样本外全部交易日1172-0.2—-0.04—

样本外策略在这一天平均 +78.6 bp(t=3.17),同期指数是 +40.1 bp(t=1.09);指数在样本外全部交易日的均值只有 -0.2 bp。所以这里一半是月末月初的普涨,一半是选股,但没有一部分是次日收盘才下单的账户能拿到的。这一天占模型样本外对数收益的 57.9%。

逐年的建仓次日收益:信号在多数年份为正,但并非稳定补贴
年份月数均值 bp中位 bpt正收益占比
20117+13.0+83.70.2257.1%
201212+52.3+95.01.1866.7%
201312+63.5+133.60.7175.0%
201412+94.8+150.72.2666.7%
201512-123.5+40.0-0.7750.0%
201612+90.4+64.32.0758.3%
201712+26.8+61.20.5983.3%
201812-44.6-26.7-0.7141.7%
201912+55.4+69.60.6775.0%
202012+82.7+154.30.8683.3%
202112+109.8+123.12.7775.0%
202212+79.5+92.12.0775.0%
202312+52.3+56.02.6083.3%
202412+60.8+42.40.6250.0%
202512+121.9+107.45.6191.7%
20269+78.1+95.61.1166.7%

建仓次日收益 = 信号日收盘到次一交易日收盘的收益,回测把它算进当月,而次日收盘才买入的账户吃不到。它是「建仓时点」归因的来源,本身也是一种会反转的市场暴露(2015、2018 为负)。 2015、2018 年为负,说明它不是可以无条件依赖的固定收益。

06 / 台账与自检

记录先写、收益后算

台账是 append-only 的:每次运行只追加新的信号日,不改写历史。已结算月份的收益用当时记录的开仓价与当前行情价计算,因此后复权价被修订时会以「修订 bp」的形式暴露出来,而不是悄悄改掉历史。

纸面台账

0 条已结算 · 1 条持有中
文件:data/paper/ledger.jsonl
信号日建仓日平仓日只数状态收益
2026-10-302026-11-02持有中276未平仓+1.73

自检:184 个月的最大绝对残差 0.00 bp,平均 0.00 bp,判定 通过。残差是纸面收益与回测收益之差减去三项归因后的余数;日收益加总口径下它应当为零,大于 1bp 说明记账有误,而不是市场有异常。

入选条件:信号日之前 20 个交易日成交额中位数 ≥ 500 万元;每月最后一个交易日收盘形成信号,次一交易日收盘买入。

框架的局限

都会让纸面看起来更好
  • 回测口径按信号日收盘成交计算收益;纸面记账按可执行的次一交易日收盘买入。两者之间差一天,这一天的收益在归因里单列为“建仓时点”。
  • 纸面组合按买入股数持有,权重随价格漂移;回测每日恢复等权且不收再平衡成本。两者之差单列为“再平衡口径”。
  • 纸面组合只买信号日之后第一个交易日有成交的股票;无成交的标的不计入,差额单列为“可成交性”。
  • 台账条目只写一次:后续运行不会改写历史信号,只追加新信号日。已结算月份的收益用当时记录的开仓价与当前行情价计算,因此能暴露后复权价修订的影响。
  • 本框架不产生实盘委托,也不接入券商;纸面收益是收盘价上的模拟,不含税费、滑点与排队。