【金融量化】通道突破策略之布林带策略(Bollinger Band )、肯特纳通道策略(Keltner Channel)、唐奇安通道策略(Donchian)原理简介

通道突破策略

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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Better Bench

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值