移動平均通常是指簡單移動平均 (Simple Moving Average; SMA),就是股票每天都有很多起起伏伏,真正的趨勢會被雜訊給掩蓋,所以我們把前幾天的股價一起拿出來平均,常用的有5日平均(MA5)、20日平均(MA20)、60日平均(MA60),如下圖所示。
簡單移動平均公式
SMA=p1+p2+p3+⋯+pn−1n
p1是今天的價格
p2是昨天的價格,也就是前1天的價格。
p3是前天的價格,也就是前2天的價格。依此類推。
pn−1是前n天的價格。
指數移動平均
指數移動平均(Exponentional Moving Average)一個比較特別的概念,就是考慮不同時期的的價格對現在的影響,是指數遞減的。就像是國中失戀、高中失戀、大學失戀對現在的你來說,越近的越痛。也就是之前的股價依照經過的天數,越靠近現在的權重越重,而每一天是以幾何級數或是稱指數關係遞減。他有一個很酷的遞迴表示法。
EMAtoday=EMAyesterday+α×(pricetoday−EMAyesterday)
當然乍看這條公式,根本看不出,這裡哪裡有指數關係呢?我們可以舉幾個例子。
EMA1=EMA2+α×(price1−EMA2)
=α×price1+(1−α)×EMA2)
EMA1是今天的指數移動平均
EMA2是昨天的指數移動平均,依此類推
price1=p1是今日的價格
α是平滑係數,是小於1的參數。
α是平滑係數,是小於1的參數。
EMA1
=α×p1+(1−α)×EMA2)
=α×p1+(1−α)×[α×p2+(1−α)×EMA3]
=α×[p1+(1−α)×p2]−(1−α)2×EMA3
有沒有找到甚麼規則呢?
那這個關係可以一直寫下去,最後就會變成這樣,
EMA1
=α×[p1+(1−α)×p2+⋯+(1−α)n−1×pn]−(1−α)n×EMAn+1
就會發現,每多一天,價格的權重就會多乘(1−α),成指數關係,公比是(1−α)。
而因為平滑係數小於1,所以如果考慮很長的一段時間,最後一項也就是,一減平滑係數的n+1次方再乘指數移動平均價格((1−α)n×EMAn+1)幾乎可以忽略。所以我們今天的指數移動平均價格就變成是
EMA1=α×[p1+(1−α)×p2+⋯+(1−α)n−1×pn]
每一天我們都可以問之前的股價是多少,可以一直問,問的無窮無盡,但是我希望如果可以的話,我想知道大概需要往前推算幾天,就可以涵蓋86%的權數。86%這個數字也不是亂挑的,他是1-e−2,所以要怎麼算呢?
假設加了N天可以有86%的權數,
α×(1+(1−α)+(1−α)2+⋯+(1−α)N)α×(1+(1−α)+(1−α)2+⋯+(1−α)∞)=1−e−2=0.86
左邊利用等比級數的公式化簡,可以發現簡化如下:
1−(1−α)N+1=1−e−2,
這個時候, 在1697年 Johann Bernoulli寫出了一個有趣的公式可以解決這個問題,
exp(x)=lim
有沒有很熟悉? 所以我們令
\alpha=\frac{2}{N+1}
,就會發現如果N不太小的時候,1-(1-\alpha)^{N+1}就會滿接近0.86的。
所以為了讓權數接近0.86,我們希望\alpha=\frac{2}{N+1},
實際試看看N=12以及N=26,發現帶入1-(1-\alpha)^{N+1}分別等於0.886跟0.875,很接近我們的目標,所以很夠用了。那弄懂指數移動平均,很多線圖的由來你大概就懂了。
那你會說EMA很難算我不知要怎麼算,那我教你兩種方法,
法一
在yahoo股市的技術分析指標選MACD,指道你想要的那天股價,中間就會有一排寫EMA12、EMA26囉。
法二