ATFX科普:策略回测——过去表现并不保证未来结果
来源:金融界网 2021-04-09 12:24:36
俗话说:“是骡子是马,拉出来溜溜”。自己的策略搭建完成后,就需要在历史数据上进行测试,来证明其有效性。在没有计算机之前,这项工作非常繁琐,需要交易者自己搜集价格数据、自主绘图、独立测试。计算机出来之后,策略回测的工作被大大简化。只要你的策略足够清晰,就可以花费有限的资金,让懂编程的第三方将你的策略程序化。外汇市场中,将程序化的策略叫做EA。
策略测试有四个关键环节:数据源、时段选择、回测报告、优化。
1、数据源
日线级别的数据源最容易获得,MT4上就可以下载到足够数量的数据。日线数据能够提供当天行情走势的最高、最低、开盘、收盘价格,其余信息无法提供。如果EA的交易周期在周线及以上,用日线数据进行测试没有太大问题。如果EA的交易周期在日线、小时、分钟级别,日线数据源会导致策略测试失真严重。比如双均线交易系统,某一天开盘没多久,就实现了黄金交叉。按照EA设计思路来说,应当在交叉后即刻进场。但日线数据测试只会在当天K线收盘后进场,因为它没有一天之内的行情发展变化过程。H4级别的数据源要比日线级别数据源更加精确,能够粗略描述当天行情的发展过程。同样的阴线,先涨后跌和先跌后涨的意义是完全不同的。H4能够识别这种不同。如果交易者的EA运行在H4级别及以下,则需要更加精确的数据源。H1、M30、M5,其数据精密程度不断提高,对EA测试的准确性也不断改善。但是,越是低周期的数据源,获取难度越大。周期最低的数据为ticks数据,也就是价格每波动一次所记录的数据,改数据在国内被叫做“分笔成交”。想要获得长周期的ticks数据,比如一年、五年、十年的数据,就需要为此支付一部分费用,从第三方处购买。MT4虽然自带策略回测功能,但只能测试较低数据量的EA。如果你想要测试五年以上的ticks数据,就需要使用功能更加强大的MATLAB软件。当然,MATLAB的EA代码和MT4的代码并不相同,需要专业人士进行转换。
2、时段选择
测试的时段并不是越长越好,因为大部分策略都无法在十年以上的测试时段中稳定盈利,甚至五年的时间就可以让很多策略原形毕露。也不要进行多品种测试,原因是相同的,大部分策略经不起这样的考验。但是,就如标题中所说——过去表现并不保证未来结果。过去亏损的策略,可能在未来就是盈利的;过去盈利的策略,可能在未来就是亏损的。归根结底,市场是发展变化的,走势的基本规律也并非一成不变,它具有明显的阶段性特征。这个月以流畅的多头走势为主,下个月就是一步三回头的上涨,再下个月就是深幅度的回调。一种策略只能适应一种走势类型,当适合它的走势类型出现时,就能实现较高盈利;反之,则亏损连连。将K线走势划分为三类:好、中、坏。好的走势为最适合EA的走势,其它同理。将好的走势找到五种,分别对EA进行ticks级别的测试;找到五种中等走势,对EA进行测试;找到五种坏的走势,对EA进行测试。之所以找五种,是因为即便是统一类型的走势,也存在细节上的千差万别,策略的表现也会不尽相同。好的走势决定了策略的盈利上限;坏的走势决定了策略的亏损上限。当你想要让策略的盈利上限提高时,必然会导致策略的亏损上限同时提高。这就是投资圈常说的:风险与收益对等。
3、回测报告
回测报告并没有那么重要,因为它只代表过去,不代表未来。好的走势类型频繁出现时,回测报告当中的胜率、盈亏比都会变得非常高,似乎这款EA是战无不胜的;坏的走势类型频繁出现时,回测报告的回撤百分比会非常大,看起来这款EA除了能导致巨额亏损外,没有丝毫价值。就像经典的俄罗斯方块游戏,我们无法预测下一个方块会是什么样子的,我们能做的就是看到最新的方块后,做出合理的反应。资金曲线是非常直观的回测指标,通过它可以轻松判断交易策略在测试时段内的所有盈亏情况。人们普遍把45度倾斜向上的资金曲线看做稳定盈利的标志,这大错特错。除了马丁格尔策略之外,没有任何EA能够达到如此理想化的资金曲线。正常的趋势应当是台阶型,在长时间的横向震荡或小幅下降后,迎来一次大额的盈利,将账户资金拉高到一个新的台阶。总的来说,回测报告的好坏,取决于你选用的历史数据时段,选择适合EA的时段,回测报告很靓丽,反之很糟糕。
4、优化
通过测试的EA,可以进入实盘阶段。没有通过测试的EA,就需要进一步的优化。优化是将原来的EA参数进行调整,以使其在历史测试中表现更加优异。任何技术指标都有自己的参数,比如均线,存在五日均线、十日均线、二十日均线等等参数。不同的参数会形成不同的买卖信号,不同的买卖信号适应不同的走势类型,并会产生不同的回测报告。比较智能的回测软件可以将参数从0~无穷大进行逐个测试,然后筛选出盈利最大的参数。这听起来不错,我们可以轻松获得最优参数。实际上,通过穷举法选出的参数,只会在历史数据中表现优异,放到实盘交易中,就会亏损连连。就像标题中提到的,过去表现并不保证未来结果。
优化是好的,过度优化是错的。我们不能未来测试时段上的某种价格走势,而牺牲掉EA的普适性。正确的做法是,进行穷举测试之后,选择收益表现中等偏上的参数作为自己的实盘参数。当然,如果你有自己已经习惯参数,可以不进行优化,直接使用这些参数进行实盘交易。毕竟,任何参数都有其适应的走势类型,说不定未来的行情就适合你习惯的那些参数。
ATFX免责声明
1、以上分析仅代表分析师观点,汇市有风险,投资需谨慎。
2、ATFX不会为直接或间接使用或依赖此资料而可能引致的任何盈亏负责。