股票中的SMA,EMA和WMA是常用的技術(shù)分析指標(biāo)。這些指標(biāo)基于歷史股價計算得出,可以幫助投資者了解股票的趨勢,為決策提供依據(jù)。雖然它們都是平均值算法,但它們之間還是有一些區(qū)別的。
SMA 簡單移動平均線(Simple Moving Average)
SMA是移動平均線的簡稱,全稱是簡單移動平均線(Simple Moving Average)。它是歷史股價平均值的簡單算術(shù)平均數(shù)。計算SMA,只需要將一段時間內(nèi)股票收盤價的總和除以這段時間內(nèi)的交易日數(shù)。
例如,計算過去5天的SMA,只需要將這5天的股票收盤價相加,再除以5,即可得出SMA。
SMA是一種較為簡單的移動平均方式,經(jīng)常被用于判斷短期的股票趨勢。由于SMA只是簡單地考慮了過去一段時間的股票價格,因此它會被短期價格波動所影響,因此可能不如其他平均值算法準(zhǔn)確。
EMA 指數(shù)移動平均線(Exponential Moving Average)
EMA是指數(shù)移動平均線(Exponential Moving Average)。與SMA不同,EMA并不是簡單的日平均數(shù),而是考慮到股票價格的整體趨勢,即將較大的權(quán)重放在了最近的股票價格上。
在EMA的計算中,最近的股票價格會得到較高的權(quán)重,而較早的股票價格的權(quán)重則會下降。計算過程中需要指定EMA的時間周期,通常包括12天和26天等。
對于EMA的計算,需要先計算出一個起始的EMA值。這可以通過計算一段時間內(nèi)的SMA來得到,然后用下面的計算公式去計算:
當(dāng)前EMA值 = ((當(dāng)前收盤價 - 上一個EMA值) * 平滑指數(shù))+ 上一個EMA值
平滑指數(shù)可以通過下面的方法來計算:
平滑指數(shù) = 2 /(時間周期 + 1)
EMA的計算方法相對于SMA更為復(fù)雜,但它可以更好地反映當(dāng)前的市場趨勢。
y
t
=
x
t
+
(
1
?
α
)
x
t
?
1
+
(
1
?
α
)
2
x
t
?
2
+
.
.
.
+
(
1
?
α
)
t
x
0
1
+
(
1
?
α
)
+
(
1
?
α
)
2
+
.
.
.
+
(
1
?
α
)
t
y_t = \frac{x_t + (1 - \alpha)x_{t-1} + (1 - \alpha)^2 x_{t-2} + ... + (1 - \alpha)^t x_0}{1 + (1 - \alpha) + (1 - \alpha)^2 + ... + (1 - \alpha)^t}
yt?=1+(1?α)+(1?α)2+...+(1?α)txt?+(1?α)xt?1?+(1?α)2xt?2?+...+(1?α)tx0??
其中,
t
t
t 為窗口大小,
α
\alpha
α 為平滑因子(
0
<
α
≤
1
0 \lt \alpha \leq 1
0<α≤1 可根據(jù)公式計算,如
2
/
(
1
+
t
)
2/(1+ t )
2/(1+t),也可自定義),
(
1
?
α
)
i
(1- \alpha) ^ i
(1?α)i 為呈指數(shù)增加的權(quán)重,期數(shù)離預(yù)測時刻越近權(quán)重越大。
y 0 = x 0 y t = ( 1 ? α ) y t ? 1 + α x t , \begin{split}\begin{split} y_0 &= x_0\\ y_t &= (1 - \alpha) y_{t-1} + \alpha x_t, \end{split}\end{split} y0?yt??=x0?=(1?α)yt?1?+αxt?,??
# 直接用 Pandas 的ewm 函數(shù)
pandas.ewm(span=n)
WMA 加權(quán)移動平均線(Weighted Moving Average)
WMA是加權(quán)移動平均線(Weighted Moving Average),它是一種考慮過去時間內(nèi)價格變化和波動的Moving Average方式。與EMA類似,WMA也是將較大的權(quán)重放在較近的數(shù)據(jù)上,但與EMA不同的是,它使用的是帶權(quán)的平均算法。
在WMA中,每個數(shù)據(jù)都被通過給定的權(quán)重,然后再求和得到加權(quán)平均值。通常情況下,較近的數(shù)據(jù)會有較大的權(quán)重,而較遠(yuǎn)的數(shù)據(jù)權(quán)重會下降,WMA有助于平滑股票價格的波動,并根據(jù)相應(yīng)的趨勢給出合適的建議。
WMA的計算也需要指定一個時間周期,并且需要先計算出一段時間內(nèi)的總權(quán)值,用下面的公式計算總權(quán)值后,再使用上面的加權(quán)平均公式計算WMA:
保存總權(quán)值 = 從 1 開始的周期數(shù) * 周期內(nèi)每個數(shù)據(jù)的權(quán)重之和
每個數(shù)據(jù)的權(quán)重 = (當(dāng)前周期數(shù) + 1)- 當(dāng)前數(shù)據(jù)的位置
WMA是比SMA更為準(zhǔn)確的一種移動平均計算方法,但它的計算也更為復(fù)雜。
W M A t ( n ) = w 1 x t + w 2 x t ? 1 + . . . + w n ? 1 x t ? n + 2 + w n x t ? n + 1 w 1 + w 2 + . . . + w n WMA_t(n) = \frac{w_1x_t + w_2x_{t-1} + ... + w_{n-1}x_{t-n+2} +w_nx_{t-n+1} }{w_1+w_2+ ... + w_n } WMAt?(n)=w1?+w2?+...+wn?w1?xt?+w2?xt?1?+...+wn?1?xt?n+2?+wn?xt?n+1??
其中, n n n為窗口大小, W M A t WMA_t WMAt?為t時刻的移動平均值。
技術(shù)分析中,權(quán)重系數(shù)為n~0,即最近一個數(shù)值的權(quán)重為n,次近的為n-1,如此類推,直到0。
W
M
A
t
(
n
)
=
n
x
t
+
(
n
?
1
)
x
t
?
1
+
.
.
.
+
2
x
t
?
n
+
2
+
x
t
?
n
+
1
n
+
(
n
?
1
)
+
.
.
.
+
2
+
1
WMA_t(n) = \frac{nx_t + (n-1)x_{t-1} + ... + 2x_{t-n+2} +x_{t-n+1} }{n+(n-1)+ ... + 2+1 }
WMAt?(n)=n+(n?1)+...+2+1nxt?+(n?1)xt?1?+...+2xt?n+2?+xt?n+1??
def WMA(close, n):
weights = np.array(range(1, n+1))
sum_weights = np.sum(weights)
res = close.rolling(window=n).apply(lambda x: np.sum(weights*x) / sum_weights, raw=False)
return res
#或
def WMA(close, n):
return close.rolling(window=n).apply(lambda x: x[::-1].cumsum().sum() * 2 / n / (n + 1))
方法對比分析
從權(quán)重思維來看,三種方法都可以認(rèn)為是加權(quán)平均。SMA:權(quán)重系數(shù)一致;WMA:權(quán)重系數(shù)隨時間間隔線性遞減;EMA:權(quán)重系數(shù)隨時間間隔指數(shù)遞減。 如下圖:
下面以 t=30 作圖
WMA 是 線性遞減,EMA是指數(shù)遞減文章來源:http://www.zghlxwxcb.cn/news/detail-431322.html
結(jié)論
三種平均值算法各有優(yōu)缺點,你需要根據(jù)你的股票市場分析需要及實際情況來決定使用哪種算法。如果你的分析需要考慮。EMA,WMA 即 遠(yuǎn)離當(dāng)前時間,影響較小,前一天權(quán)重大影響最大。因此在股票很多指標(biāo)上都用EMA 來代替SMA,如MACD等。文章來源地址http://www.zghlxwxcb.cn/news/detail-431322.html
到了這里,關(guān)于【量化交易筆記】5.SMA,EMA 和WMA區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!