转载来自于https://eareview.freshdesk.com/support/solutions/articles/19000122960
为什么要倒退28年复盘?
一些 EA 代码里面有屏蔽时间代码。有很多方法可以实现这样的结果,最常用的方法是这段时间出现很大的亏损,用一段代码屏蔽掉这段时间的亏损,从而实现良好的复盘结果。
例如,EA 可能会在其大部分活动导致亏损的时间间隔内停止交易;趋势跟踪 EA 可能具有硬编码的趋势开始日期和这些日期的未平仓头寸;另一个 EA 可能会将某些特定日期列入黑名单。
上述所有示例都有相同的结果:回测结果更改为有利于 EA。
然而,当 EA 有正当理由跳过一些硬编码的日期和时间时,有一种特殊情况:如果 EA 在其实时交易中避免了某种新闻事件(例如,它通过 FFCal 指标避免了非农就业数据),它还可能使用在实时交易中本应避免的新闻事件对过去的日期进行硬编码。另一种方法是在回测中使用新闻数据库,这当然是可能的,但实现起来并不容易,不幸 的是,它超出了大多数 EA 开发人员的技能范围。
回到过去的28年
唯一实际可能的Tick data 转移是过去 28 年。主要原因是按此值移动将导致日期和星期几之间 100% 匹配。
如果我们改变一个不同的值——例如一年——我们会在周末有分时数据,而在一周的某些日子里它会丢失,三重掉期将在错误的日子收费,依此类推。
当然,理论上可以将数据转移到 28 年后的未来,它仍然会导致 100% 的日期与星期几匹配,但我们会遇到 y2k38 问题。你们中的一些人可能还记得 y2k 问题;y2k38(也称为Epochalypse)将是类似的东西——也许更糟。长话短说,在 2038 年的某个时间, unix 纪元时间戳 将超过 32 位整数变量的范围,这将以各种方式影响各种系统。
程序,流程
如果您有 Tick Data Suite v2.2.37 或更高版本,您只需在Tick 数据 设置对话框的专家选项卡中启用将数据转移到过去 28 年,您需要做的就是启用将数据转移到过去复选框。
有些事情必须考虑:
- 为了防止意外忘记长时间启用此复选框,它被配置为一次性。
换句话说,一旦您在启用数据移位设置的情况下运行回测,它就会自动禁用自身。 - 如果您希望在 MT4 策略测试器窗格中启用使用日期功能,您还必须将开始和结束日期移至过去 28 年。
例如,如果您希望在启用数据移位的情况下对 2010.01.01 到 2020.01.01 进行回测,则应配置的时间间隔为 1982.01.01-1992.01.01。
结果
如果 EA 根本没有屏蔽日期,那么如果您在启用或禁用 28 年轮班的情况下运行相同的 EA,回测结果应该接近相同。也就是说,当然,假设所有其他设置保持不变。
重要的是要记住,如上所述,一些 EA 可能有正当理由对日期进行硬编码以避免新闻事件。但鉴于这仅适用于在实时交易中也有新闻回避的 EA,因此很容易判断 EA 是否试图作弊
评论(0)