2014年2月5日 星期三

[技術分析] 移動平均(MA)與指數移動平均(EMA)

簡單移動平均

        移動平均通常是指簡單移動平均 (Simple Moving Average; SMA),就是股票每天都有很多起起伏伏,真正的趨勢會被雜訊給掩蓋,所以我們把前幾天的股價一起拿出來平均,常用的有5日平均(MA5)20日平均(MA20)60日平均(MA60),如下圖所示。

簡單移動平均公式
$$ SMA = { p_1 + p_2 + p_3  +\cdots + p_{n-1} \over n } $$
$p_1$是今天的價格
$p_2$是昨天的價格,也就是前1天的價格。
$p_3$是前天的價格,也就是前2天的價格。依此類推。
$p_{n-1}$是前n天的價格。

指數移動平均

        指數移動平均(Exponentional Moving Average)一個比較特別的概念,就是考慮不同時期的的價格對現在的影響,是指數遞減的。就像是國中失戀、高中失戀、大學失戀對現在的你來說,越近的越痛。也就是之前的股價依照經過的天數,越靠近現在的權重越重,而每一天是以幾何級數或是稱指數關係遞減。他有一個很酷的遞迴表示法。

$$\text{EMA}_{\text{today}} = \text{EMA}_{\text{yesterday}} + \alpha \times(\text{price}_{\text{today}} - \text{EMA}_\text{yesterday})$$

當然乍看這條公式,根本看不出,這裡哪裡有指數關係呢?我們可以舉幾個例子。
$\text{EMA}_1 = \text{EMA}_2 + \alpha \times(\text{price}_1 - \text{EMA}_2)$
$=\alpha\times\text{price}_1 + (1-\alpha )\times\text{EMA}_2)$

$EMA_1$是今天的指數移動平均
$EMA_2$是昨天的指數移動平均,依此類推
$price_1=p_1$是今日的價格
$\alpha$是平滑係數,是小於1的參數。


$\text{EMA}_1$
$=\alpha\times\text{p}_1 + (1-\alpha )\times\text{EMA}_2)$
$=\alpha\times\text{p}_1 + (1-\alpha )\times[\alpha\times\text{p}_2 + (1-\alpha )\times\text{EMA}_3]$
$=\alpha\times[\text{p}_1 + (1-\alpha )\times\text{p}_2]-(1-\alpha)^2\times\text{EMA}_3$

有沒有找到甚麼規則呢?
那這個關係可以一直寫下去,最後就會變成這樣,
$\text{EMA}_1$
$=\alpha\times[\text{p}_1 + (1-\alpha )\times\text{p}_2+ \cdots + (1-\alpha )^{n-1}\times\text{p}_n]-(1-\alpha)^n\times\text{EMA}_{n+1}$
就會發現,每多一天,價格的權重就會多乘$(1-\alpha )$,成指數關係,公比是$(1-\alpha )$。
而因為平滑係數小於1,所以如果考慮很長的一段時間,最後一項也就是,一減平滑係數的n+1次方再乘指數移動平均價格($(1-\alpha)^n\times\text{EMA}_{n+1}$)幾乎可以忽略。所以我們今天的指數移動平均價格就變成是
$\text{EMA}_1=\alpha\times[\text{p}_1 + (1-\alpha )\times\text{p}_2+ \cdots + (1-\alpha )^{n-1}\times\text{p}_n]$
每一天我們都可以問之前的股價是多少,可以一直問,問的無窮無盡,但是我希望如果可以的話,我想知道大概需要往前推算幾天,就可以涵蓋86%的權數。86%這個數字也不是亂挑的,他是1-$e^{-2}$,所以要怎麼算呢?

假設加了N天可以有86%的權數,

$$\frac{\alpha \times \left(1+(1-\alpha)+(1-\alpha)^2+\cdots +(1-\alpha)^N \right)} {\alpha \times \left(1+(1-\alpha)+(1-\alpha)^2+\cdots +(1-\alpha)^\infty \right)}= 1-e^{-2}=0.86$$

左邊利用等比級數的公式化簡,可以發現簡化如下:
$$1-(1-\alpha)^{N+1}=1-e^{-2}$$,
這個時候, 在1697年 Johann Bernoulli寫出了一個有趣的公式可以解決這個問題,
$$\exp(x) = \lim_{n\to\infty}\left(1 + \frac{x}{n}\right)^{n}$$
有沒有很熟悉? 所以我們令
$$\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囉。






















法二

2014年2月4日 星期二

[技術分析] 如何看KD線(快/慢速隨機線)與威廉指標


    我以後要教育我的子女做投資,所以我想現在來編教材,這樣以後要教的時候就很簡單。

以下節錄維基百科:

隨機指標(Stochastic Oscillator,KD),原名%K&%D,是技術分析中的一種動量分析方法,採用超買和超賣的概念,由喬治·萊恩(George C. Lane)在1950年代推廣使用。指標通過比較收盤價格和價格的波動範圍,預測價格趨勢逆轉的時間。「隨機」一詞是指價格在一段時間內相對於其波動範圍的位置。

一、未成熟隨機值公式

一、先計算出「未成熟隨機值」(Raw Stochastic Value,RSV):

$$ RSV=\frac{C_n-L_n}{H_n-L_n}\times{100}\% $$

【註】
$n$:是經過的交易期間(一般訂為9日,yahoo股市也是9日,所以會寫成K9、D9、J9);
$\begin{smallmatrix}C_n\end{smallmatrix}$:是第n日的收盤價;
$\begin{smallmatrix}H_n\end{smallmatrix}$和$\begin{smallmatrix}L_n\end{smallmatrix}$:分别是過去$n$日内的最高價和最低價,一般以9日為基準。

如下圖:



















未成熟隨機值(RSV),跟威廉指標有互補關係,兩者相加為1。

二、威廉指標公式

$$W\%R = \frac {H_n - C_n}{H_n - L_n} \times 100\%$$

【註】
$n$:是交易者設定的交易期間(yahoo使用9天);
$\begin{smallmatrix} C_n \end{smallmatrix}$:第n日的最新收盤價;
$\begin{smallmatrix} H_n \end{smallmatrix}$:是過去n日內的最高價(如9天的最高價);
$\begin{smallmatrix} L_n \end{smallmatrix}$:是過去n日內的最低價(如9天的最低價)。

$$ RSV+W\%R =\frac{C_n-L_n}{H_n-L_n}+\frac{H_n-C_n}{H_n-L_n}=\frac{H_n-L_n}{H_n-L_n}=1$$


三、當日的K值和D值公式

K值是RSV值的3日指數平滑移動平均、D值是K值的3日指數平滑移動平均;

$K_n = \alpha \cdot RSV_n + (1-\alpha) \cdot K_{n-1}$
$D_n = \alpha \cdot K_n + (1-\alpha) \cdot D_{n-1}$

【註】
1.一般設定$\alpha$=1/3,$\alpha$是平滑係數,現在在股市中都約定成俗的使用1/3。
2.$\begin{smallmatrix}RSV_n\end{smallmatrix}$,為當日的RSV值;$\begin{smallmatrix}K_n, D_n\end{smallmatrix}$,為當日K值和D值;$\begin{smallmatrix}K_{n-1}, D_{n-1}\end{smallmatrix}$,為前一日的K值和D值。
3.若無前一日K值或D值,可以50%代入計算。

K值為「快速平均值」,反應較靈敏;D值為「慢速平均值」,反應較不靈敏。若K值>D值,表示處於漲勢;反之,則處於跌勢。K值和D值,數值皆介於0%~100%之間,50%為多空平衡位置,80%以上為「超買區」(Overbought Zone),多頭強勢;20%以下為「超賣區」(Oversold Zone),空頭強勢。

如果KD值小於20,K線反轉向上摜破D線,稱為黃金交叉,是買入訊號。
如果KD值大於80,D線反轉向下摜破K線,稱為死亡交叉,是賣入訊號。
以0050為例,每次這樣的操作可以穩賺波段2-3%,明確的黃金死亡交叉一年發生約5次,如果本金大的話可以嘗試這樣操作,但是不太可能每次都可以買在最低點,賣在最高點,投資最重要的就是不要虧錢,所以穩健一點也不是壞事。




另外,一般在介紹KD時,往往還附帶一個J指標。J指標的計算公式為:

三、當日的J值公式和3K-2D

$ J_n = 2 \cdot D_{n-1}-3 \cdot K_n $
實務上我不太會使用....我也不會看....