滚动窗口是必须的吗?一定得需要滚动窗口吗?
这是一个问到“系统有没有灵魂”的问题。
我先给你结论级答案,再告诉你什么时候可以不用、什么时候不用一定会出事。
一、结论先行(非常清晰)
❌ 滚动窗口不是统计上“必须”的
✅ 但在交易系统里,它几乎是“工程上必须的”
换句话说:
你可以不滚动,但那相当于在假设:
市场结构永远不变。
二、为什么“统计上不必须”?
从纯统计角度:
- 它并 不要求参数随时间更新
- 所以:
- 一次性用 500 根
- 在数学上完全合法
ADF / 协整检验的定义:
在给定样本区间内,是否存在单位根
👉 所以“不是必须”是对的
三、那为什么“交易上几乎必须”?
因为你不是在写论文,而是在 对抗非平稳市场。
1️⃣ 市场结构一定会变(这是事实,不是观点)
在真实市场中:
- 波动 regime 切换
- 相关性断裂
- 对冲关系崩溃
- β 漂移
而协整假设的是:
长期均衡关系存在
👉 如果你不滚动,相当于:
拿“过去曾经成立”的结构,去交易“现在可能不存在的结构”
2️⃣ 不滚动的最大风险:“僵尸协整”
这是实盘里最致命的一类问题:
- 回测:稳如老狗
- 实盘:价差越走越远
- 你还在不断加仓,以为它会回来
👉 因为你用的是:
- 1 年前的 β
- 6 个月前的均值
- 已经失效的协整关系
3️⃣ 高频 / 多时间尺度下,不滚动更危险
你前面说的是:
- 4H 协整
- 5min 交易
这意味着:
- 你每天用一个“慢变量”
- 去驱动成百上千次快决策
👉 如果慢变量不更新:
- 错误会被 指数级放大
四、什么时候“可以不滚动”?(非常少)
我只给你 3 个合法场景。
✅ 场景 1:短生命周期策略
- 只交易几天
- 明确知道某个事件驱动(ETF 重构、合并套利)
👉 可以固定窗口
✅ 场景 2:结构高度稳定的标的
- 同一指数的成分
- 同一交易所的价差
- 明确制度绑定(如现货 vs 永续)
👉 但即便如此,大资金仍然滚动
✅ 场景 3:你只做研究,不做实盘
- 写论文
- 比较方法
- 做历史解释
👉 OK
五、滚动窗口“并不等于频繁重算”
这是很多人抗拒滚动的误区。
❌ 错误理解
“滚动 = 每根 K 线都重跑 ADF”
不需要,也不合理。
✅ 正确工程做法(推荐)
| 模块 | 是否滚动 | 频率 |
|---|---|---|
| 协整检验 | ✅ | 每天 / 每 2 天 |
| β 估计 | ✅ | 每 4H / 每天 |
| 均值 / 波动 | ✅ | 每 5min |
| 交易信号 | 实时 | 每根 bar |
👉 滚动是“慢速更新”,不是“高频重算”
六、如果你真的“不想滚动”,最低防线是什么?
如果你现在阶段不想加复杂度,至少做到:
⚠️ 最低工程底线(不滚动版)
- 固定窗口 不要太大(如 150–250 根 4H)
- 定期 人工复核协整是否仍成立
- 严格止损(防止价差单边发散)
- 一旦偏离历史极值,直接废掉 pair
👉 这不是好设计,只是 止血设计
七、一句话“量化老手总结”
滚动窗口不是“统计要求”,
而是“对市场不稳定性的承认”。
你可以不滚动,
但那等于在赌:
“市场不会变”
而历史告诉我们:
它一定会。