近来,笔者发现市场上客户对于程序化研究热情越来越高,广大投资者从自己日常交易思路出发,构建个人程序化交易系统,然而在交流过程中,很多朋友提到如何正确过滤程序化交易中错误信号,在此笔者提出一些自己经验与广大投资者分享。
一、常见过滤方法概述
程序化交易就是将投资者复杂的交易思路转变为能简单操作的智能交易系统,便于投资者的严格执行,程序化交易模型是交易思想的凝练和实际化,正确的交易思想在严格的操作纪律执行下将获得良好、稳定的投资收益,而通过交易模型正是将正确的交易思想与严格的操作纪律很好地结合在一起,帮助我们获取良好、稳定的投资收益。程序化交易在投资实战中不仅可以提高下单速度,更可以帮助投资者避免受到情绪波动的影响,实现理性投资。然而,投资者的交易思路在主观使用可能会胜率非常搞,形成程序化交易系统时可能盈利大幅缩小,这很大可能是因为程序化系统会自动交易所有符合条件的机会,而投资者主观交易时会人为地过滤无用信号,因此对于程序化交易系统的进阶主要在于过滤方法选择。
笔者认为,常见的过滤方法有:波动性过滤;价格包络带过滤;时间过滤;交易次数过滤;系统策略组合过滤等。本文主要对时间过滤方法进行展开讨论,在对程序化交易系统优化时,可以采取以下方法:日内限制开仓次数,减少总体交易回合;选取大级别周期,减少震荡期信号等等。
日内限制开仓次数一般运用于日内交易策略,若行情震荡剧烈时,可能会出现日内反复开仓,即使止损做的非常好,仍会大大增加交易成本,因此控制日内开仓次数是一种不错的过滤方法。另外,同样的交易思想,在不同的周期上效果会迥异,总的来说选取大级别周期,可以很不错的过滤震荡期信号,不过系统信号不会那么灵敏了。本文笔者根据自己的经验提出了一种出场周期过滤的方法,供广大读者参考。
二、出场周期过滤方法详解
在实际操作过程中,笔者认为一种时间过滤方法比较有效,即出场周期存在最小值限制,对于任何一个进场信号,只有在经历N个周期后才考虑出场,这样可以有效果过滤震荡期的频繁交易,对于整体盈利有很大的提高。在文华财经中可以加入以下语句:((BKVOL=0 &&SKVOL=0) OR BARSSK>10);在交易开拓者中可以在出场时加上代码:(BarsSinceEntry==0||BarsSinceEntry>N),即表示空仓或者进场N个周期条件下可以进行交易,下文针对这一方法进行展开讨论。
采用上述方法,可以有效过滤模型交易次数,因为一般来说,在趋势性非常好的时候,交易次数一般很少,会一直拿住仓位,而模型交易次数多数由震荡期贡献,采用这种方法,可以尽可能少地过滤交易次数,当然有时候也会失去比较好的交易点位,过滤方法从来如此,减少了交易次数,但也可能在某些时候带来坏处。
以笔者经常引用的双均线系统为例,即短周期上穿长周期均线,做多;短周期下穿长周期均线,做空。应用于螺纹钢30分钟指数合约,均线参数为(25,40),每手交易手续费为5元,系统测试效果如图1所示。
图1: 双均线系统应用于螺纹钢指数合约测试效果
从图1中可以看出,自2009年3月27日以来,系统累计盈利为60240,最大资产回撤为4420。采用笔者前文中所讲时间过滤方法,即开仓进场至少5个周期后才考虑出场,采用相同的测试条件,系统测试效果如图2所示。
图2:出场周期过滤应用于双均线系统效果
从图中可以看到,累计盈利变为64300,盈利效果有了一定的改善。对比图1和图2可知,二者资金曲线走势基本相同,主要原因是后者相对于前者只是加了一个过滤条件,并未对交易系统有实质性的改变,同时可以图2资金曲线相对于图1线更加平滑,这就是是过滤条件所起的作用。
同时为了定量地认识过滤方法对于交易系统的影响,采用控制变量法来研究,设过滤周期为N,N取值 变化范围为[0,15],保持其他测试条件不变。首先研究过滤周期与交易次数的关系,如图3所示。
图3: 过滤周期与交易手数关系
从图3中可以看到,随着过滤周期的增加,双均线系统交易次数不断减少,这和笔者的初衷是符合的,程序化交易系统过滤不正是要减少交易次数。然而这个次数是不是原来越好呢,可以看看下面的曲线,过滤周期与总盈利的关系如图4所示。
图4: 过滤周期与累计净利润关系
从图4中可以看到,随着过滤周期的增加,双均线系统并未一直呈现上涨走势,而是先增加后减少的走势。因此笔者认为,过滤周期并非越大越好,而是要权衡累计盈利与交易次数,选取一个恰当的参数作为过滤周期值。
当然加入出场周期过滤后,对于程序化交易系统的其他性能参数都有着不小的影响,而且对于有些程序的思想未必适用,因此使用时应该根据具体交易思想来选择过滤方法,若不加过滤已经是完美的模型,那就不需要再画蛇添足了。
三、总结
笔者在上文中对于程序化交易中的过滤方法展开了讨论,提出了出场周期过滤的方法,并应用于双均线系统为例,阐述了这一方法的有效性。在实际执行程序化交易的过程中,正确的过滤方法非常重要,多数投资者都会选择主观干预一些交易信号,这相当于人工过滤,这样也不失为比较好的方法,而全自动的程序化过滤方法需要不断去尝试,本文笔者只是提出了一个思路,希望能使读者有所启发。