什么是回溯测试
回测是利用历史数据评估交易策略,以确定其过去的表现的过程。这可以帮助您在将策略应用于实际交易之前评估其可行性。
这可以追溯过去几个月,也可以追溯到10年或20年前。这完全取决于我们的意愿以及我们希望回测的稳健程度。虽然回测可能非常耗时,但相对简单。我们只需要一个可以访问历史数据的交易平台和一个简单的电子表格来记录所有交易。
回测的两种方法
算法(自动化)测试高度精确,消除了手动交易中可能出现的任何偏见或主观判断。虽然编程可能需要一些时间,但它可以让您轻松优化规则并快速运行新的或批量的回测。如果您想了解更多关于算法测试和交易的信息,可以查看freeCodeCamp 提供的课程。
手动回测是一个相当繁琐的过程,很容易耗费数十甚至数百个小时。为了充分利用时间,建议您首先从概念上定义您的策略,然后检查图表上大约20个可能触发交易机会的实例。这项初步探索有助于您了解回测电子表格中应包含的关键要素。另一方面,它还有一个显著的优势,那就是让您的大脑完全投入并相信该策略。通过手动测试,您不仅仅是在计算数字,而是在积极学习识别市场中的视觉线索、模式及其变化。这种亲身实践的方法可以加深您对市场行为的理解,并帮助您增强对策略的信心。随着时间的推移,这个过程不仅会强化您的交易规则,还会磨练您在实时交易中识别盈利机会的能力。
回溯测试需要考虑的变量
我们将在另一节课中介绍优化的具体细节,但这里有一些示例可供参考:
- **风险回报率与胜率:**这涉及在持续的小额盈利与通过把握偶尔带来可观回报的趋势而获得更大收益的潜在机会之间取得平衡。然而,这必须与盈利交易与亏损交易的频率进行对比。较高的风险回报率可能意味着盈利交易较少,从而可能导致亏损周期更长。相反,较低的风险回报率可能意味着盈利频率更高,但利润却更少。了解您的盈利频率并预测可能的盈利和亏损周期,对于管理预期并在交易过程中保持心理韧性至关重要。
- **确认方法及其频率:**尝试不同类型的确认信号对于确定哪种信号在不同的市场条件下最有效至关重要。此外,还可以考虑测试多种确认信号的组合,看看它们是否能提供更强大或更可靠的交易设置。
- **市场波动时机:**分析您的交易触发后市场波动所需的时间。有时,您可以预期市场会立即做出反应。然而,在其他情况下,您可能需要耐心等待。了解市场波动的典型时机和波动性可以帮助您设置更合适的止损和止盈水平。
- **固定风险回报率 vs. 自主目标:**决定是否使用固定风险回报率,例如每笔交易 2:1,或者在预期达到特定水平时应用自主目标。或者,您可以使用追踪止损等技术来锁定利润。
- **扩大和缩小:**考虑逐步增加或减少头寸规模的策略,以管理风险并最大化回报。
记住要保持规则简单,以确保它们易于执行和复制。
以下是有关如何回测交易策略的分步指南:
如何回测交易策略?
选择回测平台或工具
手动回测:
您可以使用 MS Excel 或 Google Sheets 等电子表格进行手动回测。这包括查看历史数据、应用策略规则并记录结果。
- 最简单的方法是打开您的平台,使用所有可视化效果和指标设置您的图表,然后向后滚动。
- 然后逐个蜡烛地向前滚动,以避免任何偏见,不要让你的大脑说服你相信虚构的情况。
- 注释您的图表、突出显示情况并截取屏幕截图。
- 将数据收集到电子表格中,以便最终进行统计。
**自动回溯测试:**使用允许自动回溯测试的软件或交易平台,例如 MetaTrader 和 TradingView,或具有专门回溯测试模块的高级交易平台,如 NinjaTrader、Amibroker 或 Tradestation。
为你的策略设定一些明确的规则
- **时间范围:**指定应用策略的时间范围或其组合(例如,每日、4 小时、15 分钟)。
- **入场和出场规则:**明确规定入场和出场的条件。这些规则应具体且客观可观察,例如“如果市场在1天时间范围内呈上升趋势,且止损位与最近阻力位之间的距离至少为2:1,则当30分钟K线图整体收于关键阻力位上方时买入。”
- **风险管理:**定义每笔交易的风险、在哪里设置止损订单以及如何确定头寸规模。
- 欲了解更多信息,请参阅我们的课程“如何创建交易计划和策略”。
收集历史数据
- **选择市场和时间范围:**选择您想要测试的货币对、股票或其他工具,并确保您拥有适当时间范围的历史数据。
- **查找并下载准确的市场数据:**您需要从可靠的来源获取高质量的历史价格数据,因为差价合约经纪商和自营交易公司在定价、费用和点差方面往往存在差异。根据您需要的回溯时间和感兴趣的时间范围,您可能需要付费购买数据,或者从交易平台或金融网站免费获取。
- 数据集:
- **样本内数据:**这是用于开发、优化和微调交易策略的历史数据部分。在此阶段,您可以调整参数并测试不同的变体,以提升策略的表现。样本内数据的风险在于过度拟合,即策略过于贴近历史数据,而可能无法在新的、未知的数据中表现良好。
- **样本外数据:**这是一组单独的历史数据,在回测和/或优化过程中未使用。它用于在策略开发后进行测试,以确保其在不同的市场条件下表现良好。
运行回测
手动回测步骤:
- **从历史数据开始:**使用图表平台回顾过去并尽可能接近实时交易的模拟交易。
- **应用您的策略:**对于每个交易信号(买入/卖出),记录入场价、止损价、获利水平以及任何其他相关细节。
- **跟踪结果:**逐条移动(一根蜡烛一根蜡烛地移动)并记录每笔交易的结果(盈利/亏损)。
- **记录结果:**在电子表格或其他工具中单独保存每笔交易的详细日志,并记录所有重要的观察结果。
自动回测步骤:
- **输入您的策略:**将您的策略规则输入回溯测试软件。
- **运行回测:**软件将根据您选择的历史时期内的策略模拟交易。
- **分析结果:**软件将生成一份报告,显示您的策略的绩效指标,包括总利润/损失、胜率、亏损和其他关键统计数据。
收集到电子表格或数据库中的基本数据:
- 工具(用于对更多工具进行回测)
- 入境时间和日期
- 按市价单或限价单入场
- 入场价格
- 退出价格
- 进入模式和时间范围(如果适用)
- 退出模式和时间范围(如果适用)
- 您的交易账户的仓位规模和风险百分比
- MAE – 最大不利偏移(以点/刻度、百分比或风险回报率衡量)
- MFE – 最大有利偏移(以点/刻度、百分比或风险回报率衡量)
- 以风险回报率或点数/点差衡量的交易结果
- 交易须知——信念水平、情感方面
如果可以的话,最好把所有交易的截图都添加到回测中。这样,以后就可以轻松地回溯查看。
分析回测结果
- **胜率:**计算盈利交易与亏损交易的百分比。
- **风险回报率:**评估每笔交易相对于平均风险的平均回报。
- **盈利能力:**评估该策略是否能够长期盈利。
- **最大回撤:**查看最大回撤,即回测期间您的投资组合中从峰顶到谷底的最大跌幅。
- **一致性:**检查该策略在不同的市场条件或时间段内是否表现一致。
- **蒙特卡洛分析:**使用蒙特卡洛分析,通过随机化回测中的交易顺序来模拟各种潜在的交易场景。这有助于评估您的策略在不同盈利和亏损交易序列中的稳健性,从而帮助您识别潜在的弱点,并增强策略的整体韧性。
- **股权曲线模拟器:**您还可以使用我们的工具模拟各种可能的结果,该工具将根据您的胜率、风险回报率和初始资本向您显示潜在的股权曲线情景。
- **统计显著性:**有些交易者可能会测试前十笔交易,如果发现策略有效,就认为这已经足够了,然后放弃进一步的回测。这绝对不是一个好方法,因为我们没有一个稳健的数据样本。为了真正确保我们的交易系统稳定稳健,我们需要至少 100-200 笔交易的样本量。这样,我们会对交易更有信心。我们会更加确信我们的策略长期来看具有正向预期收益。
-
统计数据——需要寻找什么
任何交易策略的关键要素都是理解概率和统计指标,例如交易的预期收益或盈亏比。交易者通常会使用历史数据来回测策略,以改进策略。根据收集到的回测数据,您应该查看以下指标:
预期回报
- 预期回报是交易者从交易中预期获得的平均利润或损失金额,通过将每个结果的概率乘以其各自的回报,然后将它们相加来计算。
- 该指标帮助交易者评估某个策略是否可能长期盈利。正的预期收益表明,即使个别交易出现亏损,该策略在长期统计上仍然有利。
利润因素
- 盈利因子是指特定时期或特定交易组合内总盈利与总亏损的比率。盈利因子大于1表示该策略整体盈利。
- 该比率通过比较每损失一美元能获得多少利润,从而洞察交易策略的整体效率。这是一种衡量盈利能力的简单方法。
- 利润系数为 2 意味着该策略每损失 1 美元就会赚取 2 美元的利润。
平均赢/输
- 平均盈亏是盈利交易的平均规模与亏损交易的平均规模之比。
- 此指标可帮助交易者了解盈利与亏损的潜在规模。即使胜率相对较低,平均胜负比较高的策略也能保持盈利。
- 例如,平均胜负比为 3 意味着,平均而言,盈利交易的规模是亏损交易的三倍。
夏普比率
- 夏普比率是一种风险调整后的收益指标,它表明交易者承担的额外波动(风险)带来了多少超额收益。它是金融领域比较不同策略最常用的指标之一。
- 夏普比率可以帮助交易者评估策略的回报是源于精明的交易,还是仅仅源于承担了过多的风险。夏普比率越高,风险调整后的回报就越高。
- 高于 1 的比例通常被认为是好的,而高于 2 的比例则是优秀的。
平均风险回报率(RRR)
- 平均风险回报率 (RRR) 是将交易的潜在风险与潜在回报进行比较。其计算方法是将交易的预期利润除以预期损失。
- 该比率帮助交易者评估一笔交易是否值得进行。即使胜率较低,如果盈利交易的收益远远超过亏损,良好的风险回报率也能带来盈利。
- 例如,风险回报率为 1:2,意味着潜在回报是潜在风险的两倍。
胜率
- 胜率是成功交易占已执行交易总数的百分比。
- 虽然高胜率固然诱人,但它并非盈利的唯一因素。即使胜率较低,但平均盈利额(相对于亏损额)较高的策略,仍然可以盈利。
- 例如,60% 的胜率意味着每 100 笔交易中,有 60 笔是盈利的。
最大回撤
- 最大回撤 (MDD) 是指特定时间段内交易组合价值从峰值到谷底的最大跌幅。它衡量的是投资组合从高点(峰值)到最低点(谷底)直至恢复前的最大百分比损失。最大回撤是评估交易策略下行风险的关键风险指标。
- 最大回撤让交易者能够洞察交易策略中资本损失的最坏情况。较大的回撤可能表明风险敞口较高,而较小的回撤则表明策略较为保守。它在风险管理中尤其有用,因为它可以帮助交易者和投资者在预期复苏之前了解潜在损失。
优化策略
- **重新开始:**保存回测结果非常重要,这样您就可以重新审视和完善它们,而无需从头开始。为了节省时间,建议您先观察市场情况,并评估哪些参数变化适合纳入回测,因为重新开始可能会很耗时。
- **参数调整:**调整策略参数(例如,不同的确认模式、止损水平),看看效果是否提升。注意不要过度优化,例如添加过多条件,这可能会导致曲线拟合——这种策略在历史数据上表现良好,但在实际交易中却表现不佳。
- **多个市场:**在不同的货币对或资产上测试您的策略,以确保其在各个市场中都稳健,或者确定其是否更适合特定市场。
样本外和前向测试
- **样本外测试:**评估回测过程中未使用的数据的表现。这有助于确保您的策略不会过度拟合历史数据,并且能够在实际市场条件下表现良好。该流程与回测相同。
- **纸上交易:**回溯测试后,考虑纸上交易(使用模拟账户进行模拟交易),以便在投入真钱之前查看该策略在实时条件下的表现。
审查和完善
- **持续分析:**随着数据和经验的积累,定期审查和完善您的策略。市场环境瞬息万变,过去有效的策略可能需要调整才能保持有效性。