介绍
# Backtest Expert
基于专业方法的回测交易策略的系统化方法,该方法优先考虑稳健性而非乐观的结果。
## 核心理念
**目标**:寻找“崩溃最少”的策略,而不是在纸面上“获利最多”的策略。
**原则**:增加摩擦,压力测试假设,观察什么能幸存。如果策略在悲观条件下依然有效,那么它在实盘交易中更有可能奏效。
## 何时使用此技能
在以下情况使用此技能: - 开发或验证系统化交易策略 - 评估交易想法是否足够稳健以进行实盘实施 - 故障排查回测为何可能具有误导性 - 学习正确的回测方法论 - 避免常见陷阱(曲线拟合、未来函数、幸存者偏差) - 评估参数敏感性和制度依赖性 - 对滑点和执行成本设定切合实际的预期
## 回测工作流
### 1. 明确假设
用一句话定义优势。
**示例**:“在财报上跳空高开 >3% 并在首小时内回撤至前一交易日收盘价的股票提供均值回归机会。”
如果你无法清楚地阐明优势,请不要继续进行测试。
### 2. 零自由度规则编码
完全具体地定义: - **入场**:确切条件、时机、价格类型 - **出场**:止损、止盈目标、基于时间的出场 - **仓位规模**:固定金额、投资组合百分比、波动率调整 - **筛选条件**:市值、成交量、板块、波动率条件 - **标的范围**:哪些标的符合资格
**关键点**:不允许主观判断。每个决策必须基于规则且明确无误。
### 3. 运行初始回测
在以下范围内测试: - **最少 5 年**(最好 10 年以上) - **多种市场制度**(牛市、熊市、高/低波动率) - **现实成本**:佣金 + 保守的滑点
检查初始结果的基本可行性。如果从根本上存在缺陷,则迭代假设。
### 4. 压力测试策略
这是 80% 的测试时间应该花费的地方。
**参数敏感性**: - 测试基线 50%、75%、100%、125%、150% 的止损 - 测试基线 80%、90%、100%、110%、120% 的止盈目标 - 将入场/出场时机变动 ±15-30 分钟 - 寻找稳定性能的“高原”,而不是狭窄的尖峰
**执行摩擦**: - 将滑点增加到典型估计值的 1.5-2 倍 - 建模最差成交情况(以卖价+1个tick买入,以买价-1个tick卖出) - 添加现实的订单拒绝场景 - 使用悲观的佣金结构进行测试
**时间稳健性**: - 分析逐年表现 - 要求在大多数年份具有正期望值 - 确保策略不依赖于 1-2 个异常时期 - 分别在不同的市场制度中测试
**样本量**: - 绝对最小值:30 笔交易 - 推荐值:100+ 笔交易 - 高置信度:200+ 笔交易
### 5. 样本外验证
**走向前分析**: 1. 在训练期进行优化(例如第 1-3 年) 2. 在验证期进行测试(第 4 年) 3. 向前滚动并重复 4. 比较样本内与样本外表现
**警告信号**: - 样本外表现 < 样本内表现的 50% - 需要频繁的参数重新优化 - 各时期之间参数变化剧烈
### 6. 评估结果
**需要回答的问题**: - 优势在悲观假设下是否依然存在? - 表现在参数变化中是否稳定? - 策略在多种市场制度中是否有效? - 样本量是否足以支持统计置信度? - 结果是否现实,而不是“好得不真实”?
**决策标准**: - ✅ **部署**:在所有压力测试中幸存且表现可接受 - 🔄 **优化**:核心逻辑合理但需要参数调整 - ❌ **放弃**:未通过压力测试或依赖于脆弱的假设
## 关键测试原则
### 惩罚策略
在各处增加摩擦: - 高于现实的佣金 - 1.5-2 倍的典型滑点 - 最差成交情况 - 订单拒绝 - 部分成交
**理由**:在悲观假设下幸存的策略通常在实盘交易中表现更好。
### 寻找高原,而非峰值
寻找表现稳定的参数范围,而不是产生性能尖峰的最佳值。
**好**:止损在 1.5% 到 3.0% 之间的任何值时策略均盈利 **坏**:策略仅在止损恰好为 2.13% 时有效
稳定的表现表明真正的优势;狭窄的最优值暗示曲线拟合。
### 测试所有案例,而非精选示例
**错误方法**:研究奏效的手工挑选的“市场领头羊” - **正确方法**:测试每个符合标准的股票,包括失败的那些
选择性示例会产生幸存者偏差并高估策略质量。
### 将想法生成与验证分离
**直觉**:有助于生成假设
**验证**:必须纯粹由数据驱动
绝不要让对某个想法的依恋影响对测试结果的解读。
## 常见失败模式
尽早识别这些模式以节省时间:
1. **参数敏感性**:仅在确切的参数值下有效 2. **制度特定**:在某些年份表现良好,在其他年份表现糟糕 3. **滑点敏感性**:添加现实成本时无利可图 4. **小样本**:交易太少,缺乏统计置信度 5. **未来函数偏差**:“好得不真实”的结果 6. **过度优化**:参数众多,样本外表现糟糕
详细示例和诊断框架请参见 `references/failed_tests.md`。
## 可用的参考文档
### 方法论参考
**文件**:`references/methodology.md`
**何时阅读**:有关特定测试技术的详细指导。
**内容**: - 压力测试方法 - 参数敏感性分析 - 滑点和摩擦建模 - 样本量要求 - 市场制度分类 - 常见偏差和陷阱(幸存者、未来函数、曲线拟合等)
### 失败测试参考
**文件**:`references/failed_tests.md`
**何时阅读**:当策略未通过测试时,或从过去的错误中学习时。
**内容**: - 为什么失败是有价值的 - 常见失败模式及示例 - 案例研究文档框架 - 评估回测的危险信号清单
## 关键提醒
**时间分配**:花费 20% 的时间生成想法,80% 的时间尝试打破它们。
**无上下文要求**:如果策略需要“完美的上下文”才能奏效,那么它对于系统化交易来说不够稳健。
**危险信号**:如果回测结果看起来太好(>90% 胜率,极小回撤,完美时机),请仔细审计是否存在未来函数偏差或数据问题。
**工具限制**:了解你的回测平台的怪癖(插值方法、低流动性处理、数据对齐问题)。
**统计显著性**:微小的优势需要大样本量来证明。每笔交易 5% 的优势需要 100+ 笔交易才能区分运气。
## 主观交易与系统化交易的差异
此技能专注于**系统化/量化**回测,其中: - 所有规则提前编码 - 执行中没有自由度或“感觉” - 在所有历史示例上进行测试,而非精选案例 - 上下文(新闻、宏观)被有意剔除
主观交易者的研究方式不同——此技能可能不适用于需要主观判断的形态。