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

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了金融量化通道突破策略之布林带策略(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]

以上是关于金融量化通道突破策略之布林带策略(Bollinger Band )肯特纳通道策略(Keltner Channel)唐奇安通道策略(Donchian)原理简介的主要内容,如果未能解决你的问题,请参考以下文章

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

R语言金融市场量化交易:布林带价差策略RSI交易策略,回测COMP 226|附代码数据

AJPFX平台:03.25日内交易策略

用 Python 在股票交易中实现布林带策略

AJPFX平台:03.19日内交易策略

金融量化CTA策略的构成