发布 2026-10-14 · 更新 2026-10-25
回测一个组合,而不只是一只股票
单只股票的回测几乎会美化一切。组合回测加上了决定策略能否活下去的那几件事:相关性、调仓,以及只有多个持仓同时交易时才会出现的成本。
为什么一只不够
单只股票的回测回答的是:「这条规则在这一只上会不会有效?」
这几乎从来不是你真正要问的问题。你跑的是一个组合,而组合引入了三件单只标的会藏起来的事。
组合加上的三件事
一、相关性
两只各自看起来很好的股票,可能是同一个赌注。
| 如果持仓 | 那么 |
|---|---|
| 不相关 | 涨跌部分抵消 —— 路径更平滑 |
| 高度相关 | 亏损同时到来 —— 回撤是叠加的 |
十只相关标的组成的组合,是多绕了几步的单个仓位。 相关性在单只回测里看不见,而它正是多数「看起来的分散」消失的地方。
二、调仓
组合必须重新配权。多久调一次、调到什么目标,会改变结果:
| 方式 | 取舍 |
|---|---|
| 固定周期 | 可预期,但可能什么都没变也在交易 |
| 阈值触发 | 只在权重漂移到足够远时才交易 |
| 从不调 | 权重漂向赢家 —— 常常变成一个意外的赌注 |
每次调仓都是交易,每笔交易都带着成本。
三、同时成本
单只回测假设一次一笔交易。组合调仓可能一次性交易多只标的 —— 在同一个时刻,吃同一份流动性。
这里正是回测的成本假设从「一个细节」变成关键的地方。 十只标的同时调仓,不会每只都拿到单只成交价。
组合回测必须写明什么
| 必须写明 | 否则 |
|---|---|
| 股票池 | 你不知道哪些实际可交易 |
| 权重规则 | 半条策略缺失 |
| 调仓规则 | 换手率 —— 及其成本 —— 未知 |
| 相关性假设 | 分散是声称的,不是测量的 |
| 成本模型 | 结果是费前的,而费用可能终结它 |
一个这些都没写的组合回测,是一个塞了更多名字的单只回测。
可复现地搭起来
每一块都需要一次你能重跑的取数:股票池、价格、因子、窗口。
# 可复现的输入,是检查组合结果的唯一方式。
curl "https://api.ashareapi.com/v1/kline?code=sh600519&period=day&count=250"
如果成分序列无法复现,组合结果就无法被检查 —— 而一个没被检查的组合结果,是一个关于组合的故事。
随之而来的检查
组合搭好之后,前面那篇教程的三个检查依然适用:
组合让这三条都更难、更重要,而不是更简单。
下一步
- 验证一条规则,而不骗自己 → 三个检查的细节
- 仓位管理 → 权重规则是怎么选的