2010年12月22日 星期三

MetaStock裡的「正宗」MACD

初接觸 MetaStock 的投資者,多數都會有個疑問,就是怎麼 MetaStock 裡的 MACD 不能自訂日數組合的?MetaStock 只容許我們修改訊號線的日數,但用來計算 MACD 線的兩條 EMA,不但不能更改,甚至沒有顯示所採用的是什麼日數:


這也太神秘了吧,MACD 而已,又不是黑盒系統,怎會什麼也沒有顯示的?我嘗試到 "MetaStock Help" 查看,找到如下解釋:

In order to maintain the mathematical integrity of the MACD as prescribed by Gerald Appel, MetaStock does not allow the time periods in the MACD to be changed.

現在的 MACD 線基本上是由 12天 EMA 減去 26 天 EMA 所得 (若不清楚 MACD 的計算方法,請參考 ectrader.org/macd.htm ),但原來發明者 Gerald Appel 最初所採用的是 0.15 及 0.075 的指數移動平均線 (EMA)。什麼意思?我們計算 EMA 時,其實需要先計算平滑因子,以10天 EMA 為例,公式如下:

平滑因子 = 2 / (10 + 1) = 0.18

有了平滑因子,我們才可以計算出 EMA 的數值:

今日EMA = 今日收市價‧0.18 + 昨日EMA‧(1 - 0.18)

所以,10天 EMA 又可以稱為 0.18 EMA。由於用平滑因子表示不易理解,但又沒有日數符合 0.15 及 0.075 這兩個平滑因子,人們便習慣以較接近的 12天 (0.154) 及 26天 (0.074) 去代替,久而久之,甚至已成為「教科書」的標準,反而沒人記得 0.15 及 0.075 這組原始參數了。

MetaStock 就是堅持採用 0.15 及 0.075 的組合,認為這才是最正宗的 MACD,因此不容許用家自行更改參數。但是,很多投資者在使用 MACD 時,喜歡透過 back-testing 找出最好的日數組合,又或者有時會用 25天配合 50天,作中長線的走勢預測。MetaStock 裡的 MACD 不能設定日數,實在很不方便,因此最好的解決方法是自己在 Indicator Builder 裡建立另一個新指標 (有關 Indicator Builder 可參考 technical-analysts.blogspot.com/2010/10/1-mov.html ):

Name: MACD Indicator
Formula:
x:=Input("Short-term EMA",2,100,12);
y:=Input("Long-term EMA",2,100,26);
z:=Input("Signal periods",5,30,9);
MACDL:=Mov(C,x,E)-Mov(C,y,E);
SignalL:=Mov(MACDL,z,E);
MACDL;
SignalL

這個新建立的 MACD 指標可以讓我們自由設定日數組合:

沒有留言: