← 文档库
📄 文档learn/截面选基-理解手册/02-验证系统.md
🌱 创建于2026-05-26 01:23
✏️ 修改于2026-05-26 01:23
👁️ 浏览量—
🔗 短链接/~learn/s/60eeaff9
🔐 可见性

验证截面选基系统 — 用数据建立信任

> 这篇文章的目的:让你不是「相信」系统,而是「验证」系统。用真实数据告诉你这个系统在历史上表现如何,并且给你工具自己去验证。

---

一、历史回测结果

系统已用真实数据在两个完全不同行情的区间回测过:

熊市区间:2021-01 ~ 2023-12(沪深300 跌了 34%)

指标 防御型选基 纯动量 等权全池 沪深300基准
------:---------::------::-------::----------:
总收益 -20.82% -25.63% -24.05% -33.82%
年化 -7.49% -9.53% -8.85% -13.27%
最大回撤 -37.15% -37.17% -35.47% -37.17%
超额收益 +13.00% +8.18% +9.77% —
胜率 47.03% 47.03% 50.00% —

结论:在 A 股最惨的两年里,你的系统比基准少亏了 13%。不是不亏,是亏得少。

牛市区间:2024-01 ~ 2026-05(沪深300 涨了 42%)

指标 防御型选基 纯动量 等权全池 沪深300基准
------:---------::------::-------::----------:
总收益 +38.85% +56.33% +52.25% +41.84%
年化 +14.91% +20.83% +19.48% +15.95%
最大回撤 -13.17% -11.27% -9.55% -12.19%
超额收益 -2.99% +14.49% +10.41% —

结论:牛市里纯动量跑赢基准 14%。防御型略微跑输基准(因为它牛市中过度防御),但这也是它熊市中能保命的原因。

核心结论

熊市 → 防御型跑赢基准 13%(少亏)
牛市 → 纯动量跑赢基准 14%(多赚)
震荡 → 防御型表现稳定

系统做对了一件事:在不同市况下表现不同,但始终不是最差的。

---

二、回测规则说明(免得你不信任它)

回测模拟了真实交易,规则如下:

调仓频率:每周五收盘后调仓(与推送频率一致) 持仓方式:等权持有 Top 8 只(每只 1/8 = 12.5%),全仓换 净值计算:每周计算一次(周五收盘价 vs 上周五收盘价) 交易成本:当前未包含(已知局限) 数据源:tushare 真实数据接口 ETF 池:73 只(与你现在使用的一致)

代码位置:cross_section_backtester.py

回测不包含交易成本,这是需要注意的。 每周换 3 只 ETF(平均换手率约 28%),如果每笔交易成本万 0.5 + 冲击成本,实际收益会比回测低一些。但 ETF 流动性好、手续费低,影响有限。

---

三、你自己怎么跑回测验证

跑一次完整回测(推荐第一次验证时跑)

cd /Users/aohan/PycharmProjects/adata
PYTHONPATH=$(pwd) .venv/bin/python adata/aohan/quant/selection/backtest/historical_backtest.py

这个脚本会跑 4 个策略(防御型、纯动量、等权全池、沪深300基准)在双区间上对比。

只跑选基(不跑回测)

./run_selection.sh

只跑选基 + 指定日期

./run_selection.sh -d 2026-01-01

---

四、如何验证系统今天的推荐是合理的

每次收到推送后,问自己这 3 个问题:

1. 市场状态判断对不对?

打开推送看第一行:

📈 🟢 强势牛市 | 仓位上限 96%
   价格vs年线:+6.2%  波动率比:1.12x

2. 排名有没有明显的异常?

看 Top 10 的因子分解明细。以今天为例:

515050 5GETF: 动量1.00 夏普0.97 反追高0.05 稳定性0.97
511220 城投债: 动量0.59 夏普0.99 反追高0.12 稳定性0.99

3. 因子权重在当前市场下对不对?

当前是牛市 → 权重应该是 45:25:10:20(动量 45%、夏普 25%、反追高 10%、稳定性 20%)。

看推送中权重那行:

因子权重: 动量 32%  夏普 20%  反追高 24%  稳定性 24%

等等——这个是 32:20:24:24,不是 45:25:10:20。这是因为当前使用的是 adaptive 模式,AdaptiveWeightEngine 在离散权重基础上做了波动率和趋势的微调。系统认为当前波动率 1.12x 接近正常,趋势仍需确认,所以没有把动量拉到满格 45%。

> 这说明系统比简单的「牛市→45%动量」更精细。 即使同是牛市,波动率上升时它会自动缩小动量权重。

---

五、如果你还是不信——做一次「回溯验证」

选一个你知道的历史日期,让系统跑出当时的推荐,然后看后续几周的真实走势。

例如:

# 跑 2026-04-01 的选基(你记得那天之后发生了什么)
./run_selection.sh -d 2026-04-01

然后对着 K 线图看系统推荐的品种后续表现如何。

---

六、系统的自我纠错机制

你担心「回测数据滞后、信号是滞后的」——系统有以下机制来应对:

机制 做了什么 代码
----------------------
反追高因子 RSI > 72 的品种大幅降分 mean_reversion_factor.py:L89-L92
趋势质量过滤 震荡上涨的品种动量打三折 momentum_factor.py:L56-L73
距高点回撤惩罚 已从高点跌超 15% 的品种动量打三折 momentum_factor.py:L75-L89
仓位上限自动调节 高波动时仓位从 100% 自动降到 40% regime.py:L60-L77
分散化去重 同指数/同大类最多 4 只 diversification.py:L44-L71
信号时效追踪 新上榜标「🆕」,连续 4 周标「🔥」 signal_tracker.py:L76-L89
数据新鲜度检查 数据超 7 天标黄色、超 30 天标红色 engine.py:L344-L367

> 你在交易中的直觉担忧(太高了、太热了、会不会暴跌)——系统已经用 6 个机制帮你量化处理过了。 它不是盲目追涨。

---

TODO:建立对系统的信任

▶ 📜 变更历史(1 次提交)

dda9cd12026-05-26 01:23feat: 文档,补充对现有系统的理解,加深对这个系统的信赖度,并且牺牲自己遵守纪律的性格。
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...