最低手续费!真正做到1跳就盈利!

无条件期货开户,交易所手续费标准+1分,另保证金可+0%

点击了解详情

卡夫曼均线交易系统分享,能更好规避慢趋势和滞后!

传统的移动均线包括简单移动均线,加权移动均线以及指数式移动均线,它们有着固有的弱点——慢趋势和滞后。

 

短周期的均线系统虽然能快速反映期货价格的走势,但是又难以抵抗价格“噪音”的干扰,多数情况下短周期所给出的趋势信号并不准确。

 

为了避免短期噪音产生的虚假信号与长期趋势中的滞后,考夫曼提出来“自适应的”均线系统,AMA。AMA可以在市场沿一个方向快速移动的时候,使用快的移动平均值,而在价格在横盘的市场中拉锯时,使用慢速的移动平均值。

 

AMA的计算公式为:

AMA=AMA[1]+C*(PRICE-AMA[1])

 

这个公式很像指数移动平均线的公式:

EMA=EMA[1]+C*(PRICE-EMA[1]),C=2/(N+1)

 

AMA的关键在于系数C,要完成抗干扰和滞后性的效果,只需当价格快速单向移动时,将C的值赋值为短周期的指数移动均线的系数,当期货价格成横盘状态时,将C赋值为长周期的指数移动均线的系数即可。

 

如何知道价格变动时区间震荡还是单向突破呢?引出三个概念,价格方向、波动性和效率系数。

 

价格方向:len个时间周期中价格的净变化。

direction = price –price[len];

 

波动性,市场噪音的数量,计算时使用len个时间周期中所有单周期价格变化的总和。

volatility = @sum(@abs(price –price[1]), n);

 

效率系数:价格方向除以波动性,表示方向移动与噪音移动的比。

Efficiency_Ratio =direction/volativity;

 

接下来建立效率系数与C的联系

整体思路是,趋势明显(ER=1)的时候,系数接近短周期均线系数fastest,波段明显的时候(ER=0),系数接近长周期系数slowest

取系数的平方是让平均线更趋近于保守,出现波段的时候应该更加谨慎。

fastest = 2/(N+1) = 2/(2+1) =0.6667;

slowest = 2/(N+1) = 2/(30+1) =0.0645;

smooth = ER*(fastest - slowest)+ slowest;

c = smooth*smooth;

 

为了与系统自适应特性保持一致,不能简单的用上穿下穿均线来决定买入卖出。因此要设置一个过滤器。

过滤器=percentage*@std(AMA-AMA[1],n)          @std(series,n)是n个周期标准差

小的过滤器百分数可以用于较快的交易,比如外汇与期货市场。

大的过滤器百分数可以用于较慢的交易,比如股票和利率市场。

通常,n=20

 

具体交易规则:

AMA-@lowest(AMA,n)>过滤器,买入

@highest(AMA,n)-AMA<过滤器,卖出

 

卡夫曼均线交易系统分享,能更好规避慢趋势和滞后!

 

  1.  
    % 卡夫曼自适应移动平均线
  2.  
    % Written by Phillip Wan @2013/9/3
  3.  
    % Email:hackerwanhappy@foxmail.com
  4.  
     
  5.  
    % clean work
  6.  
    tic;
  7.  
    clear;
  8.  
    clc;
  9.  
    close all;
  10.  
    format compact;
  11.  
     
  12.  
     
  13.  
    %% 导入数据
  14.  
    Connect = yahoo;
  15.  
    Fields = {'Close'};
  16.  
    FromDate = '01-Sep-2011';
  17.  
    ToDate = '01-Sep-2013';
  18.  
    HS300 = fetch(Connect, '000300.SS', Fields, FromDate, ToDate);
  19.  
     
  20.  
    n=5; %定义区间长度
  21.  
    p=0.1; %定义过滤器系数
  22.  
    fastlen=30; %定义长期平均周期
  23.  
    slowlen=2; %定义短期平均周期
  24.  
    w=HS300(:,2);
  25.  
    equity=0;
  26.  
    equityday=zeros(length(w),1);
  27.  
    s=0;
  28.  
     
  29.  
    ama=zeros(length(w),1);
  30.  
    ama(1:n)=w(1:n);
  31.  
    for i=n+1:length(w)
  32.  
    %% 计算价格方向
  33.  
    direction=abs(w(i,1)-w(i-n,1));
  34.  
    %% 计算波动性
  35.  
    p1=w(i-n:i-1);
  36.  
    p2=w(i-n+1:i);
  37.  
    vol=sum(abs(p1-p2));
  38.  
     
  39.  
    if vol~=0
  40.  
    %% 计算效率系数(ER)
  41.  
    er=direction/vol;
  42.  
    fast=2/(fastlen+1);
  43.  
    slow=2/(slowlen+1);
  44.  
    smooth=er*(fast-slow)+slow;
  45.  
    c=smooth*smooth;
  46.  
    %% 计算AMA
  47.  
    ama(i)=ama(i-1)+c*(w(i,1)-ama(i-1));
  48.  
    else
  49.  
    ama(i)=ama(i-1);
  50.  
    end
  51.  
     
  52.  
    %% 设置过滤器
  53.  
    amaminus=zeros(n-1,1);
  54.  
    for t=i-n+1:i
  55.  
    amaminus(t,1)=ama(t,1)-ama(t-1,1);
  56.  
    end
  57.  
    k=p*std(amaminus);
  58.  
     
  59.  
    %% 根据过滤器进行交易
  60.  
    if ama(i)-min(ama(i-n:i))>k
  61.  
    s=s+1;
  62.  
    equity=equity-w(i)*300;
  63.  
    else if max(ama(i-n:i))-ama(i)<k
  64.  
    s=s-1
  65.  
    equity=equity+w(i)*300;
  66.  
    end
  67.  
    end
  68.  
    equityday(i,1)=equity+s*w(i)*300;
  69.  
    end
  70.  
     
  71.  
     
  72.  
    %% 作图
  73.  
    figure;
  74.  
    subplot(2,1,1);
  75.  
    plot(HS300(:,2));
  76.  
    hold on;
  77.  
    grid on;
  78.  
    plot(ama,'g');
  79.  
    legend('HS300','AMA');
  80.  
    subplot(2,1,2);
  81.  
    plot(equityday);
  82.  
    grid on;

查看更多相似文章

【版权声明】
1.本站文章禁止复制转载等一切途径,请广大粉丝注意,如果您喜欢RB,可以收藏本站,随时访问;
2.如标题下方的来源标识为“互联网”,则来源于网络其他平台,如对原著有冒犯之处可以联系RB,予以删除文章处理;
3.RB一切只为帮助广大交易者,所以大家可以通过心得文章多参考和借鉴,但是在实战交易中需要三思而后行,毕竟交易有风险,投资需谨慎;


最低手续费!真正做到1跳就盈利!

无条件期货开户,交易所手续费标准+1分,另保证金可+0%

点击了解详情
  • 全部(0
    光秃秃的啥也不是!赶快说说你的想法吧?

【推荐】与“卡夫曼均线交易系统”相关的内容