程序化交易系统之布林线算法遇上“考夫曼自适应均线”!

牛角问答,股票期货专业投机者。

前言

在程序化交易或者技术分析领域,大部分人都低滞后性的技术比较热衷,因为低滞后性可以先人一步得到交易系统的开仓信号。

很不幸的是

股票期货市场上的趋势类技术指标,绝大多数都难逃指标值“滞后”的魔掌,就拿均线来说,滞后性最强。

当均线拐头时,价格已经涨了不少,一般都抓不到行情起始阶段。

甚至在行情震荡区间,金叉后立刻掉头下跌!

均线完全跟不上行情反转的节奏,不得不承认这就是事实,这就是均线本身的缺陷

想要完全消除滞后是不可能的,但可以减弱技术指标的滞后性。

文章将介绍一种算法,可以将指标滞后性降到最低。那就是“考夫曼均线算法”,并与布林线算法结合,用程序化软件编写后实现自动化交易

接下来,我们将对考夫曼均线进行深入研究。

考曼均线真实面目

考夫曼均线,也称“自适应均线”,而真正厉害的地方正是它的自适应这个优势。技术指标或程序化策略一旦有了自适应的功能,就等同于有了“灵魂”。

所谓的“灵魂”是什么

可以理解成它可以根据当前市场的波动,“自发的”去调整算法自身的参数,不断的自我“进化”,达到自适应市场的效果。

简单移动平均线,不能动态调节公式自身的参数,只能按照固定的参数进行计算。

请仔细对比下面两幅图

图一,简单移动平均线

图二考夫曼自适应均线

对比后发现了什么现象?

考夫曼均线对行情反转较为灵敏,紧贴行情走势,而移动平均线反应非常迟钝、滞后。

考夫曼均线趋势转震荡的时候,对行情的灵敏度降低,很快就进入了平缓状态

考夫曼算法就好比恒温动物,当周围环境温度变低时,会启动体温调节中枢,自动调节身体的温度,以适应寒冷的冬季。

这是考夫曼算法的核心。

下面剖析考夫曼均线公式,科学客观的解释为何会出现这样的现象。

下面是它的算法:

见公式万别晕,只关注1个点就ok。

(1) 参数。

  • E = 10,计算EffRatio 所需的周期。
  • fast = 2,快周期。
  • slow = 30,慢周期。

(2) 变量。

  • AMAValue ,当前考夫曼均线值,初始值=第一根k线的close。
  • AMAValue[1] ,前一根k线的考夫曼均线值。

要看懂公并不难

假设其他参数不变的情况下,在公式运行过程中唯一变动的量其实就只有EffRatio这个变量。

也就是考夫曼均线的“体温调节中枢”!

EffRato变量,是这样影响考夫曼均线值的。作者将以上涨趋势为例。

(1) 当市场上涨迅猛,那么EffRatio随之变大。

此时如果将变大的EffRatio值带入下面第三个公式的最后一个加数后,整个AMAValue的值一定会变大。

此时就会产生象①,考夫曼均线AMAValue与价格贴得更近!更灵敏!如下图所示。

这是EffRaio变大的情况下,均线值的变化情况。

接下来,揭露当市场反转或横向整理的时候,现象②是如何发生的。

(2) 当市场上涨动力衰竭,价格横向整理时,那么EffRatio随之变小。

此时如果将变小的EffRatio值带入下面第三个公式的最后一个加数后,整个AMAValue的值一定会变小。

此时,就会产生现②,灵敏度降低,很快就进入了平缓状态,如下图所示。

小结。

作者花了么大的篇幅讲解考夫曼均线算法的内在逻辑,是为了让读者在下一部分的运用中,做到知其然,还要知其所以然

以上,就考夫曼均线的内在运行机理。下面将布林线算法和考夫曼均线相结合,形成一个最终的程序化交易策略。

俗称“自适应版”的布林线策略

当布林线算法遇到考夫曼均。

作者在研究布林线策略时,最头疼就是布林线算法里的20周期移动平均线,导致策略信号滞后的问题,如下图所示。

可以清楚的看到,当价格破上轨时,行情已经涨了不少,大大压缩了策略利润。

(1) 简单讲解下布林线算法。

布林线有上轨、下轨、中轨。

  • 中轨,20日移动平均线。
  • 上轨,中轨 + N*20周期标准差。
  • 下轨,中轨 - N*20周期标准差。

大概的效果可以参照上图中的布林线图。

(2) 如何用考夫曼均线算法,改善策略开仓信号滞后问题呢?

很简单的操作。

直接将布林线算法的20移动平均线替换成考夫曼均线,以此计算布林线的上下轨。

这个是非常好的思路!

原因主要有以下:

① 获得比其他程序化交易者更快的交易信号,快人一步。

② 让策略拥有考夫曼均线算法的自适应特性,策略在未来的自适应能力更加强大。

让我们对比一下改进前和改进后的效果对比。

改进前。

改进后。

同是布林线,考夫均线版本和简单移动平均线版本,他们的信号差距如此之大。

(3) 基于考夫曼算法的布林线策略开平逻辑。

整个策略的开仓会涉及跨周期过滤、跟踪止盈以及假突破的过滤三大方法。

策略开平仓逻辑:

  • 最高价突破,布林线上轨+ATR,且价格在周线EMA8均线之上,开多。
  • 最低价触发,跟踪止盈线时,平多。
  • 开空逻辑同理。

策略的最终效果如下图。

做空信号。

做多信号。

这就整个考夫曼算版的布林线策略。

小结。

到目前为止,我们利用了考夫曼自适应算法对布林线策略进行了改进,将20日移动平均线替换成了考夫曼均线。

作者最主要的目的就是要让大家知道,考夫曼均线在布林线策略中的优势,让其更好的为策略服务。

回测分析

下面将用螺纹钢指数进行回测析。

回测参数设置:

  • 回测资金10万。
  • 回测时间,2009年至今。
  • 品种,螺纹钢指数合约。
  • 回测周期,30分钟。
  • 滑点1跳。
  • 费用,1%%。
  • 仓位,资金20%。

回测资金曲线:

最后

作者用这篇文章,主要给大家细的剖析了考夫曼均线算法的自适应原理,以及利用其特性对布林线策略进行升级改造。

使得布林线拥有了自适应的特性,降低策略的滞后性。获得了不错的收益!

其实,一通百通。我们可以基于考夫曼均线算法原理对其他技术指标进行升级改造,最终形成自己的一套自适应算法。

(0)

相关推荐