BackTrader 通道策略
介绍
本文策略来自牙医小赵的《量化投资学习笔记188——实现经典交易策略——通道》一文。作者也开源了 BackTrader 策略源码。
通道策略
原理:当股价突破通道时,会向相反方向变化。
计算周期 T 内的通道线的方法:
- 通道下线:周期 T 内股价的最高值
- 通道上线:周期 T 内股价的最低值
源码实现直接参照牙医小赵开源了 BackTrader 策略源码。
轨道指标:
# 上轨
self.H = bt.ind.Highest(self.datas[0].high, period=self.p.T, subplot=False)
# 下轨
self.L = bt.ind.Lowest(self.datas[0].low, period=self.p.T, subplot=False)
上面这段代码存在一个问题,统计最高最低价时,把当日价算进去了,应该是不算当日,从前一交易日开始算,正确代码为:
self.H = bt.ind.Highest(self.high(-1), period=self.p.T, subplot=False)
self.L = bt.ind.Lowest(self.low(-1), period=self.p.T, subplot=False)
开仓条件:if self.close[0] <= self.L[0]:
清仓条件:if self.close[0] >= self.H[0]:
用 20 日最低价突破,我发现开不了仓,即每日的收盘价,通常不会低于 20 日最低价。周期调小后开始交易,但效果不太理想。