A股量化研究平台 · QUANT LAB · 研究报告

聚宽《多因子策略入门》(post/1399) 策略审查报告

生成日期: 2026-08-23 | 数据与代码全本地 | autoquant.com.cn/intro/
+37.2%
总收益
+2.8%
年化收益
-61.8%
最大回撤
0.24
夏普率

> 日期: 2026-08-23 · 审查对象: E:\ZY\多因子\多因子.txt(聚宽量化课堂克隆) > 移植版策略: strategies/mf_jq1399_review.py · 口径: 沪深300成分月末快照(point-in-time) + roe公告日缓存 + circ_mv T-1 + 万0.9佣金/4bps滑点(严于原作零滑点)

一、策略是什么

教学级双因子选股:沪深300成分池内,按"市值越小越好 + ROE越高越好"等权排名打分,每 15 个交易日全换仓到得分前 20 名,等权持有。参数: tc=15 / yb=63 / N=20。

二、核心问题:为什么聚宽截图是 94%/年化433%,本报告全窗只有年化 2.9%?

这是本报告最重要的一节——巨大收益差异与引擎、成本、代码全都无关,差异 100% 来自回测窗口。

聚宽端截图数字:策略收益 94.05%、年化收益 433.37%、夏普 14.16、最大回撤仅 6.1%、胜率 93%。这组"完美"数字的破绽在算术里:年化收益是总收益的 4.6 倍,说明窗口只有几个月——把几个月的收益按复利放大到一年,就是 433% 这种数字。

窗口定位实锤:截图中"基准收益 43.65%",逐日比对沪深300 历史,+43.65% 精确对应 2015-06-05(两位小数级吻合)。即该回测只跑了 2015-01-05 ~ 2015-06-05 这 5 个月——2015 年小盘股疯牛的最顶部段。

同一窗口两台引擎对照(分歧证伪):本平台用更严的成本口径(万0.9佣金+4bps滑点,聚宽为零滑点)在同一窗口跑出 +113.2%(比聚宽的 94% 还高)、回撤同样只有 -5.9%。引擎之间没有任何分歧——同一策略在同一风口,谁都好看。

窗口一拉长,神话立刻崩塌

窗口收益年化最大回撤夏普
聚宽截图窗 2015.01~06(5个月疯牛顶)+113.2%(本平台)/ +94%(聚宽)+537% / +433%-5.9%6.24
延长3个月到 2016.03(进来6月股灾+熔断)+37.0%+32.0%-42.3%0.80
拉长到 11.4 年全周期 2015~2026.06+37.2%+2.9%-61.8%0.16

三个月一倍的"年化433%",十一年看只是"年化2.9%"。 这就是"展示窗数字"与"全周期真相"的标准距离。本策略的收益是 2015 年小市值风格的一次性馈赠——风口在,五个月翻倍;风口走,十年磨损。凡是只给你看短窗口高收益的策略展示,先用这把尺子量一遍。

三、静态审查结论(逐条)

未来函数/口径

  1. get_fundamentals(g.q, 当日) —— 聚宽官方口径按公告可见日处理,基本安全;但其估值字段(market_cap)为查询当市值(盘前=昨收市值),无未来函数。本平台移植版用更严的"公告日+T-1"双保险。
  2. get_index_stocks('000300.XSHG') 不传日期 —— 聚宽回测内取回测当日成分(point-in-time),无生存者偏差,这点是对的。移植版用月末成分快照(同一语义)。
  3. 停牌过滤"近63样本日零停牌" —— 严苛但合理。

逻辑漏洞/工程隐患

  1. 零滑点FixedSlippage(0))——教学简化;15日×20只的调仓频率下,真实滑点是收益的一阶决定项,零滑点直接高估。
  2. 无调仓带宽控制:排名轻微变化也全仓换,换手成本高(实测全窗交易成本 1.2~2.4 万/窗口,200万本金)。
  3. fillNan 均值填充 ROE 缺失值:粗糙(等于给中性分),尚可接受。
  4. 等权买入金额用 portfolio_value/N(含待卖持仓市值),先卖后买同bar——聚宽开盘撮合下成立,但涨停买不进/跌停卖不出时会静默偏离目标。
  5. 手写冒泡排序+手写rank:O(n²) 教学可读性好,并列值处理不稳定,工程上脆弱。
  6. 因子极度单一:小市值+ROE 双因子等权、无行业/风格中性化——策略本质是"沪深300内的小盘暴露",业绩几乎完全由小盘股风格周期决定。
  7. set_slip_fee 只在调仓日调用(佣金持久所以无害,但说明作者对引擎时机的理解是模糊的)。

过拟合风险:参数少+逻辑简单,过拟合风险低——这是教学策略唯一的结构性优点。

四、全窗口回测实证(本平台真实口径:万0.9佣金+4bps滑点,200万本金)

先消除一个误会:聚宽端跑出的"94%收益/433%年化/夏普14"是窗口魔术——其基准收益43.65%精确对应沪深300在 2015-06-05 的涨幅,即该回测只跑了 2015-01-05~2015-06-05 这 5 个月的小盘疯牛顶部段。本平台在同一窗口、更严成本下跑出 +113.2%(比聚宽还高)——引擎之间没有分歧,分歧只在窗口长度。短期收益的复利年化(94%→433%)是最经典的数字幻觉。

窗口策略同期沪深300年化最大回撤夏普评价
聚宽截图窗 2015.01~2015.06+113.2%+43.6%+537%-5.9%6.245个月疯牛段,两边引擎数字同级——但这就是全部真相的5个月
原作展示窗 2015.01~2016.03+37.0%-14.7%+32.0%-42.3%0.80加上6月股灾立刻现形
2015~2018+5.9%-17.3%+1.5%-53.9%0.13跑赢指数23pp但绝对收益≈0,回撤腰斩级
2019~2021+62.3%+66.4%+18.2%-25.5%0.78与指数持平(结构牛市跟得上)
2022~2026.06-11.3%-2.1%-2.8%-47.9%-0.08跑输指数,小盘风格崩塌期挨打
全窗 2015~2026.06+37.2%+32.3%+2.9%-61.8%0.1611.4年年化2.9%≈理财,回撤-62%不可承受

交易成本实测: W1窗口 1306笔/2.41万、W2 946笔/1.80万、W3 936笔/1.26万 —— 印证第5条:换手成本是真实拖累。

五、总评

  1. 收益完全押注"小市值风格"单一暴露,2015年靠风格暴富、2016/2022-2024风格反转期连续重锤(三个窗口两个深亏);
  2. 回撤控制为零(无防御腿/无止损/无仓位管理),最大回撤 -42%~-54%,远超可承受范围;
  3. 原作零滑点口径虚增收益,真实成本下原窗口年化 32% 已是最好成绩;
  4. 沪深300池内做市值因子本身就是"在大象里挑相对瘦的",暴露有限、噪声大。

六、移植过程踩坑(留档)

免责声明:本报告仅为量化技术研究成果展示,不构成任何投资建议;历史回测业绩不代表未来表现,市场有风险,投资需谨慎。
本报告由 tools/make_pdf_report.py 自动生成 | 策略代码/回测日志/过程数据全部本地存档可复现