15.2 能量型指标量化交易策略
下面利用能量型技术指标,即情绪指标BRAR 、带状能量线CR 、成交量变异率VR ,编写一个能量型指标量化交易策略。实现AR<40 、BR<40 、BR<AR 、CR<40 、VR<40 ,买入股票; AR>180 、BR>400 、CR >400 、VR>450 ,卖出股票。
15.2.1 编写初始化函数
登录JoinQuant (聚宽)量化交易平台后,单击菜单栏中的"我的策略/我的策略"命令,打开我的策略页面。
单击"新建策略"按钮,在弹出的菜单中单击"股票策略"命令,就会新建一个股票策略,然后双击策略名称,重新命名为"能量型指标量化交易策略"。
删除文本框中所有代码,重新编写代码。首先导入函数,然后编写初始化函数,具体代码如下:
#导入函数库
import jqdata

注意在初始化函数中,加入了股票每笔交易时的手续费, 即实入时佣金的万分之三, 卖出时何金的万分之三加干分之一印花税,每笔交易佣金最低扫5 元钱。
15.2.2 编写单位时间调用的函数
单位时间调用的函数的具体代码如下:


注意这里调用情绪指标BRAR 、带状能量线CR 、成交量变异率VR. 从而获得这些指标的不同参数值,即BR 值、AR 值、CR 值、VR 值,还需要注意这里的参数check_date=context.current_dt. 表示获取当前回测日期。
在这里买入股票的条件是:如果当前有余额,并且AR<40 、BR<40 、BR<AR 、CR<40 、VR<40,具体代码如下:
if AR1 < 40 and BR1 < 40 and BR1 < AR1 and CR1 < 40 andVR1 < 40:
卖出股票的条件是:如果AR>180 、BR>400 、CR>400 、VR>450,并且目前有头寸,具体代码如下:
elif AR1 > 180 and BR1 > 400 and CR1 > 400 and VR1 > 450 and context.portfolio.positions[security] .closeable_amount> 0:
15.2.3 能量型指标量化交易策略的回测
在回测之前,设置开始时间为2017 年6 月1 日,结束时间为2018 年5月4 日。设置账户交易资金为10 万,交易频率为每天,如图15.6 所示。

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

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