Video Player is loading.
Current Time 0:00
Duration -:-
Loaded: 0%
Stream Type LIVE
Remaining Time -:-
 
1x
本集将是策略介绍系列的最后一集,在这一集中会讲述应用于螺纹钢15分钟K线的一个交易策略,这个策略的贡献者是Dawin Quant。

策略逻辑:

  1. 信号:布林通道
  2. 过滤:CCI指标
  3. 出场:ATR指标

 这个策略相对于之前讲过的,相对复杂一些。 

Part 1  策略参数与变量  

制作人按:关于布林通道

布林通道线是根据统计学的标准差来计算的,其具体可由上中下三条曲线展示。其中上下两线分别代表上升压力线和下降支撑线,故而可以根据K线图是否突破布林曲线来判断较好的买卖节点。三条曲线计算方法如下:

中轨线(MID)=收盘价的M日移动平均线; 
上轨线(UPER)=中轨线+N倍的标准差; 
下轨线(LOWER)=中轨线-N倍的标准差。

在参数中需要boolWindow (布林通道窗口数)、bollDev(布林通道的偏差)

变量中有bollUp(布林通道上轨)、bollDown(布林通道下轨)

 

 Part 2  初始化BarManager   

这个策略使用的是15分钟的K线:self.bm= BarManager(self.onBar,15,self.onXminBar)

其中回调函数是onXminBar(),这个函数的名字是自己随便定义的。主逻辑都在onXminBar()里面.

 

 Part 3 onXminBar() 

收到K线推送:

  1. 第一步撤销之前所有委托 self.cancelAll()
  2. 第二步是对应的最新Xmin的K线保存到数组里面

计算指标数值:调用am对应的方法计算就可以,但也只是实现了一部分,并非全部,如果有想用但其中没有的情况,怎么办?

 演示talib方法AROON指标   

Import talib

Talib.ARRON

如何知道这个指标怎么用?——python本身的help函数:help(talib.AROON)

 交易逻辑1:当前无仓位  

当前无仓位,发送开仓委托

  1. 如果CCI指标大于零:认为市场处于多头趋势之中——才会去发出布林通道上轨的买入突破停止单。
  2. 反之,就是突破下轨选择卖出

可以发现这个逻辑当中先是过滤之后才去挂信号的单子

 交易逻辑2:持有多头仓位 

大家应该记得我们之前计算使用的都是固定百分比的算法:从持仓最高点回落一个固定百分比之后,就把仓位平掉。

这里是用ATR指标乘以一个止损乘数——我个人认为,ATR指标是一个比标准差更好的衡量价格波动情况的指标。

 

课后练习:试试写出海龟策略

比较常见的CTA策略都已经讲完了,大家比较熟悉的海龟策略其实和已经说过的KingKeltner和BollChannel策略非常像。如果有兴趣的话可以试着自己写出来。

 

下一节课讲一下如何部署vn.py,把策略跑起来

《量化投资24小时》交流群:666359421  加群说明《量化投资24小时》订阅