- UID
- 2
- 积分
- 2874604
- 威望
- 1387331 布
- 龙e币
- 1487273 刀
- 在线时间
- 13155 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-11-24
|
程序化交易系统避坑需知
文/ 圆圆的元师傅
随着国内程序化交易的发展,现在市面上经常能遇到针对普通投资者兜售的程序化交易系统,声称只要依照系统给出的买卖信号操作就能实现盈利。
而事实上,这个算不上新鲜事物,在上世纪八九十年代,随着个人PC电脑的发展普及,美国金融交易界就出现了大量的计算机交易系统的买卖。《期货交易策略》一书中就透露作者斯坦利克罗,向客户销售过计算机交易系统。当时人们将这类交易系统称为“3000系统”,因为这些系统大都定价3000美元一套。如果您刚好在考虑一套3000系统,那么应该注意些什么呢?
1.首先,注意交易成本
交易成本,包括两方面:手续费和滑点。公开销售的系统,一般都只提供一定时期的回测结果,少数有实盘业绩展示,但往往持续时间也不长。一个严谨的回测报告,应该计入手续费和滑点成本。
但是手续费和滑点设置的大小,却和实际交易账户可能有出入。一些不那么忠厚的策略销售者,为了使回测报告表现优异,会有意将手续费和滑点往低了设置。在经历大量的交易次数后,即便是微小的出入,都可能对最终的结果造成本质的改变。
2.然后是偷价
或有意或无意,程序化交易策略的开平仓价格上可能会出现偷价。所谓偷价就是用一个盘中无法实现,而回测过程中却可以被记录下来的价格发单。
比如这样一组TB代码:open<high[1] && high>high[1];buy(1,open);意思是在盘中价格突破昨日高点之后买入开仓。但是这个时候使用的发单价格确是开盘价,事实是价格创新高的时候,开盘价早就过去了,于是新高价格和开盘价之间的差值就成为偷价,并且所偷得价差以利润的形式表现在回测报告中去了。
3.还有就是测试样本数是否充足
系统化的交易策略,之所以能实现最终的盈利,是因为其具备统计上的优势。那么在归纳这种优势的时候,统计样本数是否充足,至关重要。
如果是一个趋势策略,只在过去的两个月里,对螺纹钢做了测试,那么测试结果一定不会差,因为这两个月螺纹钢走出了很流畅的多头趋势。但是并不能就此就说这个策略是好的,因为我们通过仅仅两个月的测试结果,无法得知该策略在熊市、在震荡市、或者是在不那么流畅的趋势行情中的表现如何?
4.最后就是看是否过度拟合
过度拟合可以是参数的过度优化,也可能是对过去某个特定的行情走势设计针对性的规则以获取最大化收益。参数优化是程序化交易系统设计中绕不开的一个话题。
参数优化本身有一个矛盾:对策略进行参数优化,可以提高策略在未来的收益预期,但是同时又降低了这种收益预期实现的概率。有点拗口,通俗的讲,就是假如有一个策略,参数优化前,收益预期是P,未来能实现这个收益的概率是80%,在参数优化后,收益预期增长到1.5P,但是这个收益预期实现的概率却可能降低到了70%。
这是因为参数优化是针对过去已有的数据,未来的数据是变化的,对过去优化越好的参数,对未来行情的适应度就越低。在没有源代码的情况下,要判断一个策略是否过度拟合,很难。通常的做法是,观察一段时间该策略的实盘表现,这个观察期一般不低于半年。
讲了上面几点选购需知,但是有一种观点却认为:能赚钱的策略,人家根本不会卖,凡是你能买到的策略,都赚不到钱。 恩,很有道理。
但是还有一种情况是:一个人所兜售的交易策略,本身是可以赚钱的,但是他自己并不能通过使用该策略在市场上赚到钱。为什么会这样呢?因为任何策略都不可能是完美的,都是有副作用的。
比如我们最熟知的趋势跟踪策略,肯定是能赚钱的,但是副作用也十分强烈:振荡期的反复割肉、持仓过程中浮盈大幅回撤的煎熬、甚至是时常出现的买在最高点,卖在最低点……如此强烈的副作用,是很多策略开发者自己都无法承受的,这就是他们为什么把策略拿出来卖,而不是自用。但是话又说回来,策略开发者自己都无法承受的副作用,你一个购买者,又凭什么认为自己就能承受呢?
所以最后想说的是,与其抱着走捷径、不劳而获的想法去选购交易系统,不如自己多花点时间深入研究一下系统交易。 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|