15.1 MACD 指标量化交易策略
MACD 指标是股市中最经典、最常用的技术指标。下面利用MACD指标来编写一个简单的量化交易策略,实现DIFF 、DEA 均为正, DIFF 向上突破DEA ,买入股票; DIFF 、DEA 均为负, DIFF 向下跌破DEA ,卖出股票。
15.1.1 编写初始化函数
登录JoinQuant (聚宽)量化交易平台后,单击菜单栏中的"我的策略/我的策略"命令,打开我的策略页面,如图15.1 所示。

单击"新建策略"按钮,在弹出的菜单中单击"股票策略"命令,就会新建一个股票策略,然后双击策略名称,重新命名为"MACD 指标量化交易策略",如图15.2 所示。

为了更好地利用Python 编辑量化交易策略,下面删除文本框中的所有代码,重新编写代码。
首先导入函数库,这样才可以利用前面讲解的各类函数和MACD 指标,具体代码如下:

接下来就可以编写初始化函数了。为了便于学习,这里的初始化函数相对简单,具体代码如下:

15.1.2 编写单位时间调用的函数
单位时间调用的函数,即每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次函数,具体代码如下:

注意这里调用MACD 函数,从而获得股票的MACD 指标的DIF , DEA和MACD 的值,还需要注意这里的参数check_date=context.current_dt ,表示获取当前回测日期。
在这里买入股票的条件是: 当前有余额,并且DIFF 、DEA 均为正,DIFF 向上突破DEA ,具体代码如下:
if macd diff > 0 and macd dea >0 and macd diff > macddea:
卖出股票的条件是: DIFF 、DEA 均为负, DIFF 向下跌破DEA ,并且目前有头寸,具体代码如下:
elif macd diff < 0 and macd dea < 0 and macd diff < macd dea and context .portfolio.positions[security] .closeable_amount> 0
15.1.3 MACD 指标量化交易策略的回测
在回测之前,设置开始时间为2017 年6 月1 日,结束时间为2018年5 月4 日。设置账户交易资金为10 万元,交易频率为每天,如图15.3所示。

设置好各项参数后,单击"编译运行"按钮,就可以编译运行MACD指标量化交易策略,运行完毕后,就可以看到策略收益和基准收益对比,如图15.4 所示。

在这里可以看到基准收益为8.07% ,而策略收益为17.19% ,这表明MACD 指标量化交易策略是一个不错的策略。
如果想详细查看MACD 指标量化交易策略的收益概况、交易详情、日志输出、每曰持仓和收益等信息,只需单击"运行回测"按钮即可,如图15.5所示。
