ClawSkills logoClawSkills

Backtest Expert

用于交易策略系统性回测的专家指导。在开发、测试、压力测试或验证量化交易策略时使用。C

介绍

# 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+ 笔交易才能区分运气。

## 主观交易与系统化交易的差异

此技能专注于**系统化/量化**回测,其中: - 所有规则提前编码 - 执行中没有自由度或“感觉” - 在所有历史示例上进行测试,而非精选案例 - 上下文(新闻、宏观)被有意剔除

主观交易者的研究方式不同——此技能可能不适用于需要主观判断的形态。

更多产品