回测实践的实例演示(含明确假设)
直接回答:什么是回测实践的实例
回测实践的实例逐步展示如何将一个明确定义的规则应用于历史数据,以估算过去可能发生的情况。“回测”是指使用历史观察值模拟决策,而不假设未来结果会与历史一致。“实践”意味着你记录每一个假设,以便其他人可以复现相同的计算并检查结果来源。
机制与定义:在回测中你做了什么
回测实践通常包含五个输入:
- 决策规则:明确何时进场/出场(或如何计算预测/评分)。
- 数据集:具有一致时间戳的历史时间序列。
- 交易模型:订单如何成交(例如,使用下一根K线开盘价)以及如何处理点差。
- 成本模型:佣金、费用和点差假设。
- 衡量指标:你要测量的内容(例如,累计收益、回撤、命中率或每笔交易的平均收益)。
稳定机制:工作流程(定义规则 → 选择数据窗口 → 模拟成交 → 计算指标 → 文档记录)保持不变。
可变条件:市场状态、数据质量、执行细节和成本可能变化,并可能主导最终结果。
实例演示(数值场景)含明确假设
假设目标是出于教育目的评估一个简单规则。这不是投资建议,且使用了类似简化的合成数据以保持假设明确。
规则(“如果-那么”)
每一天,你持有一个为期恰好1天的头寸。头寸为“多头”(有风险敞口)或“空仓”(无风险敞口)。决策规则如下:
- 如果前一日收盘价高于前两日收盘价,则在下一日持有多头头寸。
- 否则,在下一日保持空仓。
数据集(历史观察值)
使用连续六天的日度数据(第0天至第5天)。假设以下收盘价是用于回测的“已知”历史价格:
- 第0天收盘:100
- 第1天收盘:102
- 第2天收盘:101
- 第3天收盘:103
- 第4天收盘:104
- 第5天收盘:102
我们将计算第2–5天的决策,因为该规则需要第t-2天的数据。
执行与成本假设
这些假设决定了模拟收益。
- 入场价:下一日开盘价等于当日收盘价(简化处理)。这消除了日内不确定性。
- 出场价:下一日收盘价等于下一日收盘价(因为持仓期为1天)。
- 点差与佣金:每次持有多头时,总交易成本为名义金额的固定0.1%。若为空仓,则成本为0%。
- 无杠杆限制、无保证金利息,且无超出成本模型的滑点。
指标定义
计算名义金额上的“每日净收益”:
- 若第t日持有多头:净收益 = (收盘价(t) / 收盘价(t-1)) − 1 − 0.001
- 若为空仓:净收益 = 0
分步模拟
决策:
- 第2日决策:比较第1日收盘(102)与第0日收盘(100)。102 > 100 → 第2日持有多头。
- 第3日决策:比较第2日收盘(101)与第1日收盘(102)。101 > 102 不成立 → 第3日空仓。
- 第4日决策:比较第3日收盘(103)与第2日收盘(101)。103 > 101 → 第4日持有多头。
- 第5日决策:比较第4日收盘(104)与第3日收盘(103)。104 > 103 → 第5日持有多头。
计算净收益:
- 第2日(多头):101/102 − 1 − 0.001 ≈ −0.0098039 − 0.001 = −0.0108039(≈ −1.08%)
- 第3日(空仓):净收益 = 0
- 第4日(多头):104/101 − 1 − 0.001 = 0.0297029 − 0.001 ≈ 0.0287029(≈ +2.87%)
- 第5日(多头):102/104 − 1 − 0.001 = −0.0192308 − 0.001 ≈ −0.0202308(≈ −2.02%)
累计简单求和(由于本例使用小数值且仅为示意):评估期内总净收益 ≈ −1.08% + 0% + 2.87% − 2.02% ≈ −0.23%。
该实例所传达的教训:结果是由你的规则、数据以及明确的执行/成本假设机械地产生的。
局限性与失败模式(可能出现的问题)
- 过度拟合:如果规则对历史数据拟合过紧(参数过多、测试次数过多),可能在历史上表现良好但在其他情况下失败。
- 执行现实性:假设完美成交或简化定价可能夸大结果。