手把手教你写量化策略
量化策略说到底是将交易思路程序化,借助互联网或者软件进行实施。因而,在这个过程中,策略思路是最基础但也是最关键的,但是对于一个复杂的策略思路,它的实现是相当困难的。LZ不才,对于量化投资刚入门不久,但是正因为刚入门,所以有更深的体会,也能更清楚,怎么去科普一个复杂策略的编写。俗话说:工欲善其事,必先利其器,而我编写策略的最大帮手,就是一款由Bitpower开发的自动化交易软件——Auto-Trader Pro。这是我用过最强大的软件,没有之一!!
1.简单策略实现
为了更好的入门,LZ决定从最简单的期货策略说起:
(1) 策略思路
首先,我们来确定一个策略的整体思路,思路的意思就是你买卖的时点控制的方法。不妨以突破策略为例,这是我们常见的策略:突破上轨,看涨,所以做多;突破下轨,看跌,所以做空。确定好思路后,我们再确定上轨和下轨的位置就可以了。不妨以5日最高价作为上轨,5日最低价作为下轨。如果当前价格高于上轨的值,卖出空单,买入多单,看涨,做多;如果当前价格跌破下轨,则卖出多单,买入空单,看跌,做空。
(2) 交易思路程序化实现
上述思路很简单,但凡接触过编程都知道,只要简单的if-else语句就可以实现这个思路。然而量化过程会涉及大量数据的运算,所以作为三大数学软件之一的Matlab必然是我们首选。但是最高价,最低价这些数据怎么获取呢?非常简单!!也用Matlab就可以了!哦,你的Matlab不行,要安装Auto-Trader Pro后,只需要在Matlab中,运行traderGetKData函数,就可以便捷地获取你所需的数据。如这里的策略用Matlab转化为一个stragety函数的编写
其中,traderBuy和traderSellShort都是Auto-Trader Pro内置于Matlab的函数,安装完成后,直接可在Matlab里运行,其函数含义为traderBuy能够起到平空单,开多单的效果,traderSellShort则起到于其相反的效果,其中sharenum参数代表着每次下单的手数,这里sharenum=10.
(3) 策略表现的度量——一键式回测
其实,到这里,我们就已经完成了一个策略的程序化实现。但是这个策略表现怎样呢?嗯,好像好复杂的问题,但是用Auto-Trader Pro也是运行一个函数的事情。借助traderRunBacktest就可以简便的实现。具体用法见下图:
在Matlab运行上述程序后,页面将会自动跳转到Auto-Trader Pro,进入回测页面。稍等片刻后,策略回测将完成,此时Auto-Trader Pro将会展示历史的行情图下单情况以及50多个维度的策略报告分析。
如下图为回测结果的行情图,在行情图上会有红色或绿色箭头,这些箭头所指为下单位置,其中绿色代表开空单或平多单,红色代表开多单或平空单。
具体的下单操作类型可以放大细看。
同时还会有多维度的策略报告: