通道突破策略
1 布林带策略(Bollinger Band )
布林带是一种多功能工具,结合移动平均线和标准差来检测市场波动的变化。布林带指标包含三个组成部分:
- 中轨 = N时间段的简单移动平均线(SMA)
- 上轨 = 中轨 + K × N时间段的标准差
- 下轨 = 中轨 − K × N时间段的标准差
一般情况下,设定N=20和K=2,这两个数值也是在布林带当中使用最多的。在日线图里,N=20其实就是“月均线”(MA20)。依照正态分布规则,约有95%的数值会分布在距离平均值有正负2个标准差的范围内。
交易规则:价格突破上轨(%b大于等于1),买入开仓,价格突破下轨(%b小于等于0),卖出开仓
python 实现
def boll(self,n,dev,array=False):
mid = self.sma(n,array)
std = self.std(n,array)
up = mid+std*dev
down = mid- std*dev
return up,down
2 肯特纳通道策略(Keltner Channel)
肯特纳通道也是一个基于波动率的技术指标,由三条独立的线组成。Keltner Channels 不使用标准偏差,而是使用平均真实范围 (ATR)来设置通道距离。以下是三个组件:
- 中轨:N时间段的周期指数移动平均线 (EMA)
- 上轨:中轨 +K* 平均真实范围(ATR)
- 下轨:中轨 -K * 平均真实范围(ATR)
python 实现
def keltner(self,n,dev,array=False):
mid = self.sma(n,array)
atr = self.atr(n,array)
up = mid+atr*dev
down = mid- atr*dev
return up,down
3 唐奇安通道策略
上线=Max(最高价,n),是指n天的最高价
下线=Min(最低价,n),是指n天的最低价
中线=(上线+下线)/2
python实现
def donchian(self,n,array = False):
up = talib.MAX(self.high,n)
down = talib.MIN(self.low,n)
if array:
return up,down
return up[-1],down[-1]
本文转自 https://betterbench.blog.csdn.net/article/details/128773584,如有侵权,请联系删除。