KAMA-庫夫曼自適應移動均線
KAMA隸屬於MA(Moving Average,移動平均)大類,使用CrossOver(上穿,下穿)或者平滑曲線的斜率來生成交易訊號。KAMA“聰明”之處在於,能根據市場趨勢變化速度自主調節,避免震盪行情中的虛假訊號,同時消除長期趨勢中的滯後。在牛市和熊市中自適應均線緊隨指數向上或向下變化,而在市場處於橫盤震盪時期,其變化明顯減慢,從而減少因噪聲產生的交易成本。
Perry Kaufman推薦的一組引數是KAMA(10,2,30),10是用於計算ER(Efficiency Ratio,效率係數)的週期天數;2和30分別是均線平滑採用的短週期和長週期天數。中間那個引數值越大,曲線越平滑,可以用在長期趨勢的分析,比如KAMA(10,5,30)比KAMA(10,2,30)更平滑。
策略計算:
ER是淨價格變動與總價格位移的比值,用來度量交易日價格的變化程度,計算很簡單。ER的範圍從0到1,ER的值越接近1說明市場趨勢越快,ER的值越接近0,表明市場噪聲越多。
ER = Change/Volatility
Change = ABS(Close - Close (10 periods ago))
Volatility = Sum10(ABS(Close - Prior Close))
根據ER以及兩個指數平滑(exponential moving average)常數,可以推匯出
SC(Smoothing Constant)= [ER x (fastest SC - slowest SC) + slowest]^2
其中,fatest SC=2/(2+1), slowest SC=2/(30+1)。SC表徵趨勢速度,ER變大的過程可以看成是趨勢由慢轉快的過程,SC與ER成正比例變化。值得指出的是,在此取平方是為了在市場橫盤階段更好地阻止趨勢均線的移動。
這樣,我們就可以得到:
Current KAMA = Prior KAMA + SC x (Price - Prior KAMA)
KAMA是自適應的,速度由平滑係數SC決定。
策略實證
在進行實證前,囉嗦幾句。Stockchart網站上使用下面的方法來作為多空判據,我認為不妥,KAMA的本意是用來替代SMA以更好地擬合市場價格的走勢,現在策略中又使用SMA和KAMA曲線來判斷市場牛熊,在邏輯上說不通。而且,直接使用收盤價穿越KAMA來識別買點,也不是很有效,一般地,我們需要額外配置一個過濾器,這個過濾器基於市場價格的波動情況給出。
filter=alpha*STD20(KAMA)
其中,20日標準差=
下面是一個不好的策略的例子,不管是借鑑別人已有的策略,還是自己動手設計開發策略,都需要謹記好的策略背後是需要有合理的邏輯的,策略不是簡單的指標的疊加與拼湊。
做多:
[KAMA(10,5,30) > Daily SMA(50,KAMA(10,5,30))]
AND [Daily Close crosses KAMA(10,2,30)]
做空:
[KAMA(10,5,30) < Daily SMA(50,KAMA(10,5,30))]
AND [KAMA(10,2,30) crosses Daily Close]
我們採用以下交易策略:
- 入場規則:
連續兩個交易日的自使用均值變動>過濾器,即
做多:
kama_{t}-kama_{t-1} > filter
and kama_{t-1}-kama_{t-2} > filter
做空:
kama_{t}-kama_{t-1} < -filter
and kama_{t-1}-kama_{t-2} < -filter
- 止損規則:
- 退出規則:
多頭獲利了結:
kama_{t}-kama_{t-1} < -filter 確保做空前,多頭倉位已經平倉
or kama_{t}-kama_{t-2} < -filter
or kama_{t}-kama_{t-3} < -filter
空頭獲利了結:
kama_{t}-kama_{t-1} > filter 確保做多前,空頭倉位已經平倉
or kama_{t}-kama_{t-2} > filter
or kama_{t}-kama_{t-3} > filter
- 交易費用:
- 保證金比例:
- 資金使用比例: