创新方案
开发或验证交易策略回测时:用 point-in-time…
在开发交易算法、验证策略或搭建回测基础设施时,构建可靠回测并规避前视、幸存者、过拟合、选择与交易成本偏差。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
开发或验证交易策略回测时:用 point通用
解决思路
- 针对 look-ahead bias,使用 point-in-time 数据,避免使用未来信息。
- 针对 survivorship bias,纳入已退市证券,而不是只测试存活下来的证券。
- 针对 overfitting,进行 out-of-sample 测试,避免对历史数据曲线拟合。
- 针对 selection bias,采用 pre-registration,避免事后挑选策略。
- 针对 transaction bias,使用现实成本模型,计入交易成本。
- 将历史数据按顺序划分为训练集(策略开发与优化)、验证集(参数选择,不得偷看)、测试集(最终性能评估)。
- 使用 walk-forward analysis:用滚动前移窗口反复执行 [Train][Test],而不是只做一次训练/测试划分。
- 当上方导航摘要不足时,阅读 references/details.md 获取详细实现示例和模式。
- 应做:使用 point-in-time 数据,避免 look-ahead bias。
- 应做:包含交易成本,使用现实估计。
- 应做:做 out-of-sample 测试,始终保留数据。
- 应做:使用 walk-forward,而不仅是 train/test。
- 应做:进行 Monte Carlo analysis,以理解不确定性。
- 不应做:不要过拟合,限制参数数量。
- 不应做:不要忽略 survivorship bias,纳入退市证券。
- 不应做:不要粗心使用 adjusted data,要理解数据调整方式。
- 不应做:不要在全历史数据上优化,保留测试集。
- 不应做:不要忽略容量,市场冲击很重要。
适用边界 · 注意事项
- 不适用于没有足够历史数据、无法获取 point-in-time 数据或退市证券数据的场景。
- 不适用于无法建模交易成本、市场冲击或容量的场景。
- 不适用于只做实时交易执行,而非历史回测与策略验证的场景。