对策略进行回溯测试

From FxCodeBaseWiki
(Redirected from Backtesting Strategy/zh)
Jump to: navigation, search

什么是回溯测试?

回溯测试是指对历史数据执行策略或信号。您“假设”历史价格是“现在”市场上的价格,并观察在这种市场情况下策略将如何起作用。要执行回溯测试,您必须选择要观察的策略以及测试策略时要采用的历史时间范围。通常对一段较长时期(如数月甚至数年)执行策略的回溯测试是比较有意义的。

例如,以下是对 EUR/CHF 的 2010 年历史数据执行标准 MA_ADVISOR 策略得到的净值和余额曲线(350 万个分笔成交点,每分钟 8 个分笔成交点),时间框架为 15 分钟,短期/长期移动平均线 (MA) 参数为 15/55,没有止损和限价,显示在 1 小时图中。您可以看到以移动平均为基础的所有“经典”策略存在的问题:它在市场不活跃时较为不精确,只有在充分形成趋势时,才能很好地发挥作用。

Backtest1.png

回溯测试非常类似于策略调试。您可以看到完全相同的数据(分笔成交点日志、统计、图表)。唯一的区别在于,您执行策略而不进行任何调试,目的只是为了观察最终结果。因为未使用调试功能,执行回溯测试的速度可与执行策略的速度一样快。如果策略写得较好,不到一分钟就可以完成对全年的回溯测试。

回溯测试配置

要对策略进行回溯测试,请使用策略调试器 (Strategy Debugger) 的 Check Performance/Backtest(检查性能/回溯测试)命令(Tools[工具]->Check Performance/Backtest[检查性能/回溯测试])。将会显示策略列表。请注意,用户策略和标准策略都可以进行回溯测试。选择策略后,将显示其参数。

配置回溯测试与配置调试会话参数相同,因此,请阅读调试策略全文以了解详细信息。

几点注意事项:

  • 强烈建议在回溯测试期间使用 1 分钟数据来模拟市场。
  • SDK 未包含全年价格数据文件。汇图宝也不能用于保存超过 1 周的 1 分钟数据。要获得价格数据,请参阅 CodeBase 价格存档,或通过 SDK 使用报价管理器下载数据。
  • 请勿忘记允许在策略中进行交易。大多数策略仅在您明确允许的情况下才会进行交易。

运行回溯测试器

在策略参数中单击 OK(确定)后,就会开始执行回溯测试。您可以通过模拟的分笔成交点数量和经过的时间了解测试进度。全年的 1 分钟历史数据会产生 350 万(每周 5 个交易日)至 500 万(每周 7 个交易日)个分笔成交点。如果策略写得较好,在 3GHz 处理器上执行时,执行时间一定不会超过 1 分钟。处理器是几核并不重要,回溯测试器始终只使用单核,这一点与策略优化器不同。如果执行时间过长,您可以随时中断回溯测试过程,然后选择较短的时期。

如果您是开发人员,并且您的策略在回溯测试模式下运行时间过长,请阅读策略优化,这将有助于改善策略性能。

回溯测试结果

回溯测试完成时,会显示以下数据:

  • 执行回溯测试耗用的时间、模拟的分笔成交点数量以及策略性能(每秒的分笔成交点数)(显示在 Output[输出]选项卡上)。
  • 回溯测试的完整分笔成交点日志(显示在 Streams[流]选项卡上)
  • 总体交易表现(显示在 Statistics[统计]选项卡上)
  • 以图表显示的策略结果(显示在 Chart[图表]选项卡上)

要了解如何阅读和使用显示在这些选项卡上的数据,请参阅调试策略

与表格相关的选项卡和与优化器相关的选项卡为空。

关于回溯测试报告的特别说明

假设或模拟的表现结果存在某些局限性。与实际表现记录不同,模拟的结果并不代表实际交易表现。并且,由于未执行交易,如果存在某些市场因素(如缺少流动性)的影响,测试结果可能会对这种影响进行过少或过多的补偿。此外,模拟的交易程序一般是从事后分析的角度设计的,并不表示任何帐户将来或目前可能发生与所示情况类似的盈亏。

另请参阅

使用 SDK 2.0 优化策略参数(逐步说明)

本文的其他语言版本

Language: English  • español • français • русский • 中文 • 中文(繁體)‎