• 123
  首页 > 程序化交易 > 经典模型介绍


自适应均线系统
作者:金融工程小组 | 来源:金元 | 点击数:5220 | 日期:2012-10-16


        根据考夫曼的自适应均线原理,利用文华财经编了一下,还是不错的,现把源代码公布出来给大家参考。

        交易指标即自适应均线的源代码,我根据指标改良了一下交易系统,考夫曼原来是采用均线值的变化率发出买卖信号,我觉得不是很好,就用最高最低价构建了一个智能均线带,采用最低最高价突破来发出信号,大家一起探讨啊。

    交易指标:

    DIRECTION:=CLOSE-REF(CLOSE,N);
    VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),N);
    ER:=ABS(DIRECTION/VOLATILITY);
    FASTSC:=2/(2 + 1);
    SLOWSC:=2/(30 + 1);
    SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
    CONSTANT:=SSC*SSC;
    AMAHIGH:REF(EMA(HIGH,N),1)+CONSTANT*(HIGH- REF(EMA(HIGH,N),1));
    AMALOW:REF(EMA(LOW,N),1)+CONSTANT*(LOW- REF(EMA(LOW,N),1));

    交易模型:

    DIRECTION:=CLOSE-REF(CLOSE,N);
    VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),N);
    ER:=ABS(DIRECTION/VOLATILITY);
    FASTSC:=2/(2 + 1);
    SLOWSC:=2/(30 + 1);
    SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;
    CONSTANT:=SSC*SSC;
    AMAHIGH:=REF(EMA(HIGH,N),1)+CONSTANT*(HIGH- REF(EMA(HIGH,N),1));
    AMACLOSE:=REF(EMA(CLOSE,N),1)+CONSTANT*(CLOSE- REF(EMA(CLOSE,N),1));
    AMALOW:=REF(EMA(LOW,N),1)+CONSTANT*(LOW- REF(EMA(LOW,N),1));
    LOW>AMAHIGH,BK;
    CLOSE<AMACLOSE,SP;
    HIGH<AMALOW,SK;
    CLOSE>AMACLOSE,BP;

    AMACLOSE:=REF(EMA(CLOSE,N),1)+CONSTANT*(CLOSE- REF(EMA(CLOSE,N),1));

    这还不是原书中定义的自适应均线。按原书中定义,应该是:

    AMA:=CONST*CLOSE+(1-CONST)*REF(AMA,1);

        显然原书中的定义排除了人为的N,因此更加自然。可惜对AMA的定义需要向前引用REF(AMA,1),在文华中无法得到支持,这是文华平台需要改进的一个重大缺陷。目前还想不出如何在文华中完整实现原书中的定义。

    尝试用AMA:=DMA(CLOSE, CONST); 得到的结果竟成了一直线。

    如果自适应均线系统的周期N=10,那么:
        1、自适应均线系统横向移动时,系统告诉你:最近的10个周期中,价格上涨的幅度和下跌的幅度基本相当,(是幅度,而不是周期数);
        2、自适应均线系统向上翘起时,系统告诉你:最近10个周期中,价格上涨的幅度要大于下跌的幅度,价格逐渐进入强势的状态。
        3、自适应均线系统向下垂时,系统告诉你的情形和2的情形正好相反。