前言:本文主要为了筛选出回测性价比最高的方式,不包含对引用文章中参数的主观评价。
基本只要玩EA,都离不开回测两个字,主流观点基本上统一为回测不可尽信,也不可完全不信。一个策略回测牛逼,不代表后续实盘一定牛逼。但一个策略如果回测都很糟糕,那可能也没有实盘的必要了。
而在回测当中,数据精度和回测速度通常不可兼得,但有没有一个性价比较高的方案呢?这篇文章就是为了尝试探讨一下这种可能性。
一、初步筛选
有些经验的用户大概都听过tick数据这个名词,概括来说就是获得broker每一次的报价用于回测。在MT4中,是没有提供这一项服务的。MT5虽然有,但由于mt5一些莫名其妙的机制(不能在回测中随时调整参数等),我一直还是使用mt4进行回测。
我们第一步选用了tick数据/平台报价;m1/m15/h1三个周期;每个即时报价/控制点,2*3*2共12个组合进行比对。
平台选用的是ic market。
回测时间是2022年1月1日~2023年7月1日。
ea和参数来自近期论坛比较活跃的一位用户的文章:
给大家分享一套EURUSD的稳定盈利浮亏小的参数
https://www.eabang.com/bbs/forum ... d=3439&fromuid=5127
(出处: EA邦程序化交易论坛)
下面我贴上汇总整理的结果:
图表周期 | 使用tick数据 | 回测方式 | 盈利 | 回撤 | 单量 | 耗时 | 数据精度 | h1 | 是 | 即时报价 | 4285 | 15869 | 1798 | 53分8秒 | 99.90% | h1 | 是 | 控制点 | 3809 | 1266 | 1915 | 1分8秒 | n/a | h1 | 否 | 即时报价 | 3659 | 2322 | 1772 | 33分53秒 | n/a | h1 | 否 | 控制点 | 4564 | 1765 | 1963 | 0分33秒 | n/a | m15 | 是 | 即时报价 | 4285 | 15869 | 1798 | 56分45秒 | 99.90% | m15 | 是 | 控制点 | 4347 | 3046 | 1912 | 2分4秒 | n/a | m15 | 否 | 即时报价 | 3659 | 2322 | 1772 | 33分41秒 | n/a | m15 | 否 | 控制点 | 5206 | 8316 | 2020 | 2分4秒 | n/a | m1 | 是 | 即时报价 | 4285 | 15869 | 1798 | 56分33秒 | 99.90% | m1 | 是 | 控制点 | 4285 | 15869 | 1798 | 7分31秒 | n/a | m1 | 否 | 即时报价 | 3659 | 2322 | 1772 | 34分07 | n/a | m1 | 否 | 控制点 | 3659 | 2322 | 1772 | 6分59秒 | n/a | 分析:
1、单纯考虑是否使用tick数据,可以发现在这一个货币对&参数中区别较大。
2、在采用及时报价的前提下,同样的数据来源,选用的图表周期对回测结果无影响。
3、在图表周期为m1的前提下,同样的数据来源,采用即时报价或者控制点对回测结果无影响。但效率提高了5~8倍。
(若需要实现3,在回测时需要注意勾选ea仅在m1周期的第一个报价执行一次&在涉及到图表周期的地方,全部要选择具体的周期而不要选 当前)
二、用其他参数/货币对进行验证
分享一套跑一年后,月化600%的参数,起步20000美金/美分
https://www.eabang.com/bbs/forum ... d=3470&fromuid=5127
(出处: EA邦程序化交易论坛)
时间周期和平台同上:
图表周期 | 使用tick数据 | 回测方式 | 盈利 | 回撤 | 单量 | 耗时 | 数据精度 | m1 | 是 | 即时报价 | 142784 | 341239 | 9641 | 1小时08分 | 99.90% | m1 | 是 | 控制点 | 142927 | 341239 | 9622 | 8分36秒 | n/a | m1 | 否 | 即时报价 | 72311 | 52017 | 9911 | 29分47秒 | n/a | m1 | 否 | 控制点 | 73831 | 52017 | 9840 | 8分25秒 | n/a | h1 | 否 | 控制点 | 73374 | 35466 | 10659 | 41秒 | n/a | m15 | 否 | 控制点 | 73560 | 34303 | 9882 | 2分15秒 | n/a | 分析:
进一步确认了在m1周期下,只要采用相同数据来源,使用即时报价和控制点对结果并无影响。
NvM最牛逼打法
https://www.eabang.com/bbs/forum ... d=3487&fromuid=5127
(出处: EA邦程序化交易论坛)
时间周期和平台同上:
图表周期 | 使用tick数据 | 回测方式 | 盈利 | 回撤 | 单量 | 耗时 | 数据精度 | m1 | 是 | 控制点 | 33575 | 284435 | 2388 | 8分03秒 | n/a | m1 | 否 | 控制点 | 34219 | 285904 | 2458 | 8分03秒 | n/a | h1 | 否 | 控制点 | 34402 | 196278 | 2561 | 35秒 | n/a | m15 | 否 | 控制点 | 22440 | 124475 | 2549 | 2分18秒 | n/a |
AUDCAD的参数,稳定盈利,回撤小利润大
https://www.eabang.com/bbs/forum ... d=3441&fromuid=5127
(出处: EA邦程序化交易论坛)
时间周期和平台同上:
图表周期 | 使用tick数据 | 回测方式 | 盈利 | 回撤 | 单量 | 耗时 | 数据精度 | m1 | 是 | 控制点 | 3139 | 2663 | 377 | 6分47秒 | n/a | m1 | 否 | 控制点 | 3285 | 2855 | 370 | 6分38秒 | n/a | h1 | 否 | 控制点 | 3491 | 2500 | 417 | 32秒 | n/a | m15 | 否 | 控制点 | 3226 | 2033 | 375 | 1分57秒 | n/a |
通过这两组可以对比得出,h1和m15采取控制点回测,结果会和采用m1时有较大偏差。
三、最后的总结:
如果实在不放心,可以先用这个方式筛选出几个较为心仪的参数后,再用每一个即时报价回测一遍。
如果希望用tick数据验证,也可以把这个最终配置加载到mt5上,在mt5上进一步进行验证。这样也可以有效规避开mt5回测调整参数繁杂的步骤。
至于在mt4上如何寻找tick数据,网上有很多相关的教程,付费和免费的方法均有,本文不做讨论。
祝大家都能更快的筛选出自己满意的参数,交易顺利。
|