如何负责任地回测平均盈亏?

通过成本偏差和样本外检验来回测平均盈亏。

如何负责任地回测平均盈亏?

将平均盈亏定义为可衡量的概念

平均盈亏是一种用于总结“盈利”规模通常相对于“亏损”规模如何的历史性方法,基于过往交易结果。在负责任的回测中,你首先需要明确定义你要衡量的具体数值,因为“盈利”和“亏损”可以通过多种方式计算。

一个常见的结构是:

  • 制定一条一致的规则,用于确定什么构成交易结果(例如,每笔已完成交易的最终盈亏)。
  • 将结果转换为可比较的单位(如账户货币盈亏,或价格变动单位)。
  • 将“盈利交易”定义为结果为正的交易,“亏损交易”定义为结果为负的交易(或使用绝对值,但必须明确说明)。
  • 计算平均值:平均盈利规模(平均盈利)和平均亏损规模(平均亏损)。

如果你使用比率(例如,平均盈利除以平均亏损),请明确定义符号约定。回测中的许多错误源于将带符号的平均值与绝对平均值混合使用。

机制:输入、假设与成本的作用

一次严谨的平均盈亏回测取决于你选择的数据模型。至少需要以下内容:

  • 按时间排序的交易记录列表(入场/出场时间及相应实现的结果)。
  • 处理边缘情况的规则(部分平仓、盈亏平衡交易、取消的交易以及未完成的交易)。
  • 明确的执行现实性假设。

关键的“成本-特征”原则是:你的历史结果必须基于你希望评估的相同经济假设。成本和摩擦包括点差、佣金和滑点。即使你不知道确切的未来成本,仍可通过以下方式负责任地进行测试:

  1. 保存将价格变动转换为交易盈亏所使用的所有假设。
  2. 进行敏感性检查(例如,在合理范围内改变假设的滑点或成本水平),以查看结论是否依赖于某个乐观设定。

证据与示例计算(含假设)

假设你有一个已完成交易的数据集。你决定:

  • 盈利为实现盈亏 > 0 的交易。
  • 亏损为实现盈亏 < 0 的交易。
  • 对每组使用实现盈亏的均值。
  • 盈亏平衡交易从两个平均值中排除(或作为零值包含——需明确说明)。

示例(仅作说明):

  • 平均盈利 = (正盈亏值之和)/(盈利交易数量)。
  • 平均亏损 = (负盈亏值之和)/(亏损交易数量)。如果你之后使用“绝对平均亏损”,则使用其数值大小。

为验证回测结果,请直接从存储的交易盈亏列表中重新计算这些值。如果你计算的平均值不匹配,则问题出在定义或数据处理上,而非市场表现。

必须测试的局限性与失败模式

平均盈亏是描述性的,而非预测性的。负责任的回测将其视为一种历史总结,当市场状况、执行质量或决策时机发生变化时,其稳定性可能失效。

至少应识别一种重大局限性:

  • 市场状态变化(Regime shift): 一种策略在某一市场环境中可能表现出特定的平均盈利与亏损关系,但随后可能发生变化。
  • 成本不匹配: 如果历史结果忽略点差/佣金或低估滑点,则“平均盈利”与“平均亏损”的比较可能被扭曲。
  • 选择偏差与幸存者偏差: 如果数据集仅包含“通过”审核流程的交易,或你无意中以与盈利能力相关的方式过滤了结果,则平均值可能产生偏差。
  • 对定义的过度拟合: 尝试多种“盈利/亏损”的定义、入场/出场时间或结果衡量方式,可能产生虚假的稳健感。

偏差控制与样本外检验

为降低这些风险,请使用能检验所测关系是否具有泛化能力的程序:

  • 跨时间段的一致定义: 在所有时期使用相同的盈利/亏损规则、盈亏平衡处理方式和盈亏计算方法。
  • 基于时间的划分: 在较早时期估计你的测量方法,并在未用于优化定义的较晚时期进行评估。
  • 样本外报告: 比较样本内与样本外的平均盈利、平均亏损(及任何比率)。
  • 敏感性分析: 在不同合理成本/执行假设下重新计算指标,以检查结论是否依赖单一乐观情景。
外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。