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

WorldQuant Alpha 101 量价背离因子(Alpha16)选股策略 — 回测与迭代报告

生成日期: 2026-08-03 | 数据与代码全本地 | autoquant.com.cn/intro/
+100.2%
总收益
+8.6%
年化收益
-36.7%
最大回撤
0.49
夏普率

日期:2026-08-03 | 策略文件:strategies/examples/alpha16_select_v1.py(全参数化)| 因子缓存:data/parquet/factors/alpha16/

一、因子与策略定义

Alpha16 = −CORR(RANK(VOLUME), RANK(CLOSE), 6):当日截面内对成交量、收盘价分别升序排名(归一化 0~1),取过去 6 日两个排名序列的相关系数并取负。因子值高 = 量价排名背离(量升价跌/量跌价升),预期价格修复反转。

因子层验证(前序工作,全部成立):

策略形态:每月首个交易日按因子降序取前 K 只等权满仓,次月再调仓;P_K / P_MARGIN / P_MONTHLY / P_NO_FILTER / P_FULL_REBAL / P_MIN_LIST / P_MIN_PRICE 环境变量全参数化。

统一回测口径:2018-01-02→2026-06-05,本金 100 万,佣金万0.5(最低5元/笔)+ 滑点 0.025%/边 + 印花税(仅卖出,2023-08-28 前 0.001、之后 0.0005,rqalpha PIT 口径)。

二、全部回测结果

rqalpha 真实执行(2×3 月频网格 + 周频对照)

变体过滤频率K全窗口年化最大回撤夏普交易笔数总成本
v130+滞后10-40.1%-6.1%-61.7%23,62824.7万
v2a30全换-10.8%-1.4%-51.7%0.0624,11727.0万
v2c30+滞后50-12.1%-1.6%-52.5%0.0523,56726.6万
v2b30+92.5%+8.4%-42.0%0.465,4688.1万
v3a30+78.7%+7.4%-41.7%0.425,4337.9万
v3d20+93.5%+8.5%-35.0%0.463,8037.3万
v3e20+61.6%+6.1%-35.9%0.373,7426.9万
v3c50+100.2%+8.9%-36.7%0.498,7799.7万
v3f50+75.9%+7.2%-37.8%0.428,6999.3万

pandas harness 对照(同窗口,剔.BJ,摩擦简化)

情景全窗口年化回撤
A 原口径(扁平0.0003/边,无印花税)+203.9%+14.2%-39.7%
B +PIT印花税+113.6%+9.5%-42.0%
C +最低5元佣金+97.7%+8.5%-42.6%

冠军 v3c 分年度(月频/无过滤/K=50)

2018 -25.2% | 2019 +33.6% | 2020 +13.0% | 2021 +29.1% | 2022 -7.8% | 2023 +4.6% | 2024 +10.4% | 2025 +27.6% | 2026H1 +1.2%

网页报告:results/alpha16_v3c_报告.html;各变体 pkl/日志/指标在 results/alpha16_v*.{pkl,log,txt}

三、归因:v1 的 -40% 是怎么分解的

第一幕——成本结构(harness A→C):印花税一项把复利砍掉近半(+203.9%→+113.6%),最低佣金再砍到 +97.7%。周频全换的年换手约 52 倍,股票印花税是策略级一阶变量(ETF 策略无此问题)。1M 本金 K=30 时单笔约 3.3 万,比例佣金 1.65 元被最低 5 元抬高到万1.5 有效费率。

第二幕——调仓频率(v2a vs v2b,核心发现):周频全换即使无过滤也 -10.8%,且死因不是成本 alone——v2a 毛 alpha 仅约 +16%(净-10.8%+成本27%),v2b 毛 alpha 约 +100%。机制:alpha 半衰期在多周级(IC(T+5)=0.046 > IC(T+1)=0.033),周频全换是在排名噪音上 churn,每 5 天付一次双边全程成本只收割 5 天 alpha;月频持有一段才进入 alpha 兑现期。排名滞后(margin)完全无效:v2c margin=50 交易笔数几乎不降(23,567 vs 24,117)——因子尾部排名周间完全是噪音,锁不住持仓;月频下 v2b 日志也显示每月"新入30"(全换)。能降换手的只有拉长调仓周期。

第三幕——过滤器(v2b vs v3a、v3d vs v3e、v3c vs v3f):月频下过滤代价 K=30 时 -14pp、K=20 时 -32pp、K=50 时 -24pp。alpha 有一小部分确实在 ST/低价/次新股里,但过滤器不是 v1 惨败的主凶——有过滤的月频 v3a 仍 +78.7%。v1 之死在"周频 churn",过滤只是从犯。

执行摩擦定性:v2b +92.5% ≈ harness C +97.7%(差距 5pp),月频尺度下 T+1/整手/拒单(v2b 130次、v3c 209次,多为涨跌停日拒单)合计只值个位数百分点——执行层不是主凶。harness 与 rqalpha 剩余差异主要是 harness 对停牌/退市股的"免费退出"假设。

四、结论与定位

  1. 因子真实有效且可收割:月频 topK 等权全窗口 +100.2%/年化 +8.9%(无过滤 K=50),不是纸面富贵。
  2. 唯一活路是月频:周频及以下任何形态(有无过滤、有无滞后)全灭。部署该因子必须用 ≥月度 的调仓周期。
  3. 最优形态 v3c(月频/无过滤/K=50):+100.2%/年化 8.9%/回撤 -36.7%/夏普 0.49。K=50 同时提高收益并降低回撤(对 K=30);K=20(v3d)回撤最低 -35.0% 但过滤敏感。
  4. 实盘可交付形态建议 v3f(月频/有过滤/K=50):+75.9%/年化 7.2%/回撤 -37.8%/夏普 0.42。无过滤版多出的 24pp 是垃圾股风险溢价,实盘中退市/连续跌停尾部比回测(有拒单建模)更凶,是否收这部分溢价由资金性质决定。
  5. 诚实定位:不替代主仓。年化 8.9%/回撤 37%/夏普 0.49,全面弱于双引擎主仓(年化 15.0%/回撤 17.5%/夏普 1.02);且满仓多头不避熊市(2018 -25.2%、2022 -7.8%)。正确用法:①作为 MultiFactorSelector 的得分项(它是平台最强量价因子);②高风偏账户的卫星仓;③其"量价背离"信号可作其他策略的过滤层。
  6. 与既有研究的关系:voldiv20(IC 0.037,测试窗死)与 multifactor(测试窗 -4.5%)之后,Alpha16 是第一个在 2023-2026 窗口仍然走强(2023 +4.6%/2024 +10.4%/2025 +27.6%)的多头选股因子——这是它最稀缺的属性。

五、过程中修复的工程问题(已落地)

  1. .BJ 北交所代码崩溃:因子缓存含北交所代码(831726.BJ 等)但引擎无 instrument,P_NO_FILTER=1 时选股选中即 InstrumentNotFound。修复:无过滤模式也剔除 .BJ(可交易域约束,非 alpha 过滤),harness 同步剔除保持口径一致。
  2. K>33 买入封死 bug:买入触发阈值 tgt_pct - cur > 0.03 在 K=50(tgt 2%)时恒假,v3c 首跑 93 次调仓全部"无需调仓"、净值纹丝不动。修复:> min(0.03, tgt_pct*0.9),K≤33 行为不变(v2b/v3a/v3d/v3e 结果不受污染)。
  3. init 日志硬编码:过滤开关状态不反映在 init 日志里,已改为按 P_NO_FILTER 实际输出(日志规范:日志必须反映真实决策参数)。

六、复现命令

# 冠军 v3c (月频/无过滤/K=50)
P_MONTHLY=1 P_NO_FILTER=1 P_K=50 python runner.py strategies/examples/alpha16_select_v1.py \
  --start 2018-01-02 --end 2026-06-05 --cash 1000000 --freq 1d --commission-bps 0.5 --slippage 2.5 --web

# 实盘交付形态 v3f (月频/有过滤/K=50)
P_MONTHLY=1 P_K=50 python runner.py strategies/examples/alpha16_select_v1.py \
  --start 2018-01-02 --end 2026-06-05 --cash 1000000 --freq 1d --commission-bps 0.5 --slippage 2.5 --web

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