如何构建机械交易系统,并进行数据回测

技术分析可以狭义地分为两种,一种基于K线的走势以及一些构造出来的形态,称之为解释型分析,比如头肩顶、杯柄、收敛三角形这些东西;更有一种“高手”叫裸K分析,完全不依赖任何指标,只凭一双肉眼。其实这些都是最传统的技术分析,很难量化,主要凭借主观经验。

还有一种叫数学型分析,顾名思义就是要运用各种数学知识和数学公式,最常见的比如移动平均线,这个就是由平均值计算公式构建出来的指标,有些人就是根据这个来做交易,当然,也有一些人擅长MACD、KDJ、BOLL之类,那更牛逼的就是非常复杂的数学模型,比如大奖章基金运用的高频量化技术。

比较有意思的是,解释型技术分析者经常会嘲笑数学型技术分析者,说那些指标都是源于原始K线和成交量,都是派生,都特么滞后,屁用没有。其实都是五十步笑百步,完全没必要。那不是还有完全不看K线,而投资成功的人呢,也在嘲笑你们这帮看图形看指标的傻逼。

凡是某种方法,你要真懂,才有可能成为高手,无一例外。

现在自媒体上传播的一些公式,大部分是形态拟合+一些简单的数学指标,其实是解释型和数学型的混合体。然而,形态拟合是很难穷尽的,量化非常困难,每一种描写只能抓到一些特例,而且描写越多特例越少。数学指标则不同,一个简单的公式就能抓住所有现象背后的某种抽象特征,显然效率更高,思维的层次也更高。

机械交易系统,通常是从数学分析延伸出来的,当然不管用形态拟合还是数学公式,只要通过编程能够构建出买卖点,能够闭环,那么自然就是一个机械交易系统。以下介绍怎么在通达信软件上实现,以均线系统为例构建一个简单的机械交易系统:

买点定义:收盘价上穿20日均线;

卖点定义:收盘价下穿20日均线;

用通达信编程:

BUYPOINT:CROSS(C,MA(C,20)),NODRAW;SELLPOINT:CROSS(MA(C,20),C),NODRAW;BUY(BUYPOINT,LOW);SELL(SELLPOINT,HIGH);AUTOFILTER;

把上面这段源码复制粘贴到主图指标的空白处,K线上马上就会显示红色的买入箭头和绿色的卖出箭头,这就表明一个机械交易系统构建成功了,很简单。如果买卖点定义不同,只需要修改第一行和第二行源码就可以,后面三行雷打不动。

原文图片1
原文图片1

那么这个东西有什么用呢?它的第一个作用就是可以用来检测买卖点定义能不能赚钱,并可以优化参数反复测试,这个检测功能,通达信里面也是有的,下面就会接着讲。第二个作用,那就牛逼了,如果通过数据回测能够赚钱,而且经得住可靠性测试,那么接上自动交易程序,那就是印钞机了,传说中的量化交易就是这么演化而来的,当然具体落实肯定要复杂得多。

OK,来说说程序检测。按Ctrl+S,弹出“程序交易评测系统”,如下图:

原文图片2
原文图片2

选择一个可交易指标公式(只要你的公式里构建了买卖点交易闭环程序,就会自动变成可交易公式),然后点击下一步

原文图片3
原文图片3

设置评测时间段,这个时间段设置有讲究,最好包含一个完整的大的牛熊周期,这样测试得到的结果相对比较客观。然后选择使用资金为全部开仓,然后点击下一步

原文图片4
原文图片4

就是交易费率这些东西,想改改,不改也可以。然后点击下一步

原文图片5
原文图片5

如果你的交易中有刚性的止损止盈规则,等等,可以设置一下,不讲究就忽略,点击下一步

原文图片6
原文图片6

这个界面就是添加测试的样本股池,比如我们用沪深300成份股作为样本,那么点击添加

原文图片7
原文图片7

找到样本股池以后,点击全选,再点击确定,股池就加进去了

原文图片8
原文图片8

然后点击:开始评测。评测的计算过程就跑起来了。

原文图片9
原文图片9

跑完以后,自动弹出一份评测报告,报告上有胜率、收益率这些评测结果:

原文图片10
原文图片10

这样,你就知道了,你的公式如果用来全自动交易的话,面对样本股池最后会得到一个什么结果,收益率是多少,胜率是多少,等等。如果你觉得不满意,调优一下参数,再跑一遍,看看改善没有。

同理,如果你从自媒体上复制过来一个公式,同样可以测试一遍,看看,如果不加入人工干涉,自动交易会得到什么结果,牛逼吹得天花乱坠没用,一测就全部原形毕露。

最后给大家推荐一本书:我看京东已经有新版本了,看作者相同就对。

原文图片11
原文图片11

这本书有助于建立初级数学模型思维,很适合入门者。里面用了大量篇幅用实验方式测试各种传统的技术指标,评估用它们构建机械交易系统之后的自动化交易成绩。不仅如此,通过这些实验,帮助你深刻理解技术指标的意义和能力,此书深入而浅出,远远超出其它技术指标类书籍的泛泛之谈,或许能带你走上量化交易之路。