2015年11月16日

N日移動平均線另類算法:N隨時間遞減

簡單移動平均線(Simple Moving AverageSMA)是相當簡易實用的技術指標,但最大的缺點就是反應落後,因此有後來改良型均線,例如指數移動平均線(Exponential Moving AverageEMA),其方法就是給最近的值較高權重,讓均線更能反映當下行情變化。本文將介紹另一種均線寫法,可以即時反應近期行情,也就是更為敏感。 


概念是,當某個條件成立,例如部位進場,則簡單移動平均線的N(預設為50)開始遞減,但最低不小於10,那麼這條均線就可以當作移動停利的點位,優點是隨著時間發展,該均線會越來越敏感,語法如下:

Inputs: MALength(50);
Vars: MADays;

If MarketPosition = 0 then MADays = MALength; {MALength歸為預設值}
If MarketPosition <> 0 then begin
MADays =MADays - 1;  {MALength每經過1K棒遞減1}
MADays = MaxList(MADays,10);  {MALength最低不小於10}
end;

If MarketPosition = 1 then ExitLong next bar at Average(Close,MADays) stop;
If MarketPosition = -1 then ExitShort next bar at Average(Close,MADays) stop;


以上語法用了幾個技巧:
1.      將某個變數歸預設值或歸零: If MarketPosition = 0 then MADays = MALength;
2.      變數每經過1K棒遞減1MADays =MADays - 1;
3.      MaxList函數。


結論:透過改變均線N值可以改良均線敏感度,許多均線改良概念都是從這個角度去提高均線的機動性與實用性。