2013年10月7日 星期一

自適應移動平均線始祖 - Adaptive Moving Average

最近一直忙著轉換工作跑道,好久沒寫新文章XDD


本次介紹一個算是自適應移動平均線(動態參數均線)的始祖-AMA  (Adaptive Moving Average) 指標,AMA指標由New Trading Systems and Methods的作Perry J. Kaufman創造。




      AMA使用指數移動平均線(EMA)為基礎,修改的自適應動態參數均線。AMA的基本概念為,先給定一個參數的範圍,接著利用走勢的趨勢度來決定目前均線週期的長短 

下圖為兩個相似運動方向的市場走勢,但擁有不同的雜訊大小。
上面走勢雜訊比較小、趨勢度較高,因此較適合快速的均線。


下面走勢雜訊比較大、趨勢度較低,因此較適合慢速的均線。




AMA指標程式碼
// Adaptive Moving Average
Inputs: Period(10),LengthF(2),LengthS(30); 

Vars:
Noise(0), Signal(0), Diff(0), efRatio(0), Smooth(1),
Fastest(2/(LengthF+1)),
Slowest(2/(LengthS+1)), AdaptMA(0), AMAFltr(0);

Diff = AbsValue(Close - Close[1]);

IF CurrentBar <= Period Then AdaptMA = Close;

IF CurrentBar > Period Then Begin
       Signal = AbsValue(Close - Close[Period]);
       Noise = Summation(Diff, Period);
      
       if Noise <> 0 then
              efRatio = Signal / Noise;
             
       Smooth = Power(efRatio * (Fastest - Slowest) + Slowest, 2);
       AdaptMA = AdaptMA[1] + Smooth * (Close - AdaptMA[1]);

End;


AMA指標程式碼介紹

AMA指標計算主要為計算市場上目前的訊雜比(signal to noise ratio),藉由訊雜比,而動態修改EMAalpha值,如下式

KAMA = alpha * close + (1-alpha) * KAMA[1]

    AMA有三個參數Period(10),LengthF(2),LengthS(30),第一個參數Period(10)為計算在週期10bar內的雜訊比,而 LengthF(2), LengthS(30)為動態均線參數的上下限。


以下為訊雜比/效率比efRatio的計算
Diff = AbsValue(Close - Close[1]);
Signal = AbsValue(Close - Close[Period]);
Noise = Summation(Diff, Period);
efRatio = Signal / Noise;

Diff(差值)為今天跟昨天收盤的價差(AbsValue為取絕對值即正值)。

Signal(訊號值)是今天與Period天前的收盤價差,也就是Momentum動量指標的公式(代表趨勢方向也取其絕對值)。

Noise(這邊的雜訊值也是一種波動率volatility的計算方式)則使用Summation函式計算Period天內Diff的總和。

efRatio訊雜比,是將Signal值除以Noise值,該值介於01之間;如果行情完全沒有變化的話,則efRatio0

最後我們再把efRatio平滑一次求出Smooth值。
Smooth值以Slowest為基礎值加FastestSlowest差值乘上efRatio,讓Smooth能介於230天的數據中做變動,最後做平方運算(PowerPow為平方運算函式)。

    Smooth也是我們最終所要的代入EMA公式的真正平滑因子alpha。最後將Smooth值帶入EMA公式,即可求得AMA的值。


下圖為台指60KAMA均線及AMA訊雜比的圖,參數為Period(50), LengthF(2),LengthS(50)
可以從圖中觀察到,AMA均線在趨勢行情時,變化速度較快,均線可以快速跟上價格。而在行情變盤整無趨勢時,AMA均線變化速度較慢。


AMA訊雜比可以當作一個趨勢程度的指標。走勢越乾淨(越有效率)時,EfRatio值就越大。






2 則留言:

  1. 版大請問這篇文章可以轉載嗎?
    我想貼到我的部落格,
    註明引用出處,謝謝。

    回覆刪除