本文仅作为学习目的,一切内容均不构成任何投资意见或建议, 投资有风险入市需谨慎
移动平均线
移动平均线(Moving Average)是价格在指定时间T的平均价格,常用来确认趋势,阻力位和支撑位
MA是比较滞后的技术指标,能够过滤掉价格波动的噪音。用来解释市场而不是预判市场。
WMA
加权移动平均线,计算的时候加上权重。最近的时间权重为n,最远的权重为1, 结果除以总权重
$ WMA_M = \frac{kP_{n} + (k - 1)P_{n - 1} + … + 2p_{n - (k - 2)} + P_{n - (k - 1)} }{k + (k - 1) + … + 2 + 1} $
例如: n = 5, k = 3, p = [5, 6, 7, 8, 9] w = [0, 0, 1, 2, 3]
$WMA_3 = \frac{p_3 * w_3 + p_4 * w_4 + p_5 * w_5}{3} = (3 * 9 + 2 * 8 + 7)/(3 + 2 + 1) = 8.34$
weights = np.array([i for i in range(14, 0, -1)])
sum_wights = np.sum(weights)
wma = close_prices.tail(365 + days).rolling(days).apply(lambda x: np.sum(x * weights) / sum_wights)
SMA
简单移动平均线是没有权重的,也就是权重都是1,计算也最简单,就是我们常见的平均值。
n代表计算第n的移动均值,k计算多少时间间隔
$ SMA_k = \frac{p_{n - (k - 1)} + p_{n - (k - 2)} + … + p_n}{k} = \frac{1}{k} \sum_{i = n - k + 1}^{n} p_i $
例如n = 5, k = 3, p = [5, 6, 7, 8, 9]
$SMA_3 = \frac{p_3 + p_4 + p_5}{3} = (7 + 8 + 9) / 3 = 8$
days = 14
close_prices = df.tail(365 + days)['close']
# calculate SMA
sma = close_prices.tail(365 + days).rolling(days).mean()
A B C D
B C D E
由于窗口的特性,BCD是重复的,BCDE可以通过已有的ABCD去掉A/4加上E/4获得
EMA
指数移动平均线EMA初始值不同,结果不太相同
$ EMA_{today} = price_{today} \times{\frac{Smoothing}{1 + Days}} + EMA_{yesterday}\times({1 - (\frac{Smoothing}{1 + Days})}) $
如果令$\alpha = \frac{Smoothing}{1 + Days}$
$ EMA_{today} = (price_{today} - EMA_{yesterday})\times{\alpha} + EMA_{yesterday} $
这是一个递归公式,第一个值使用SMA来填充。平滑系数Smoothing可以根据偏好选择,但通常值为2。
展开后
$ EMA_{today} = \frac{p_1 + (1 - \alpha){p_2} + (1 - \alpha)^2p_3 + (1 - \alpha)^3p_4 + …}{1 + (1 - \alpha) + (1 - \alpha)^2 + (1 - \alpha)^3 + …} $
EMA也是一种WMA
DEMA
Double EMA. 注意,后面不是平方,而是算EMA的EMA
$DEMA = 2\times{EMA} - EMA(EMA)$
TEMA
Tripple EMA. 注意,后面不是立方,而是算EMA的EMA的EMA $TEMA = (3\times{EMA} – 3\times{EMA(EMA)}) + EMA(EMA(EMA)))$
意义
MA具有一定的滞后性,时间段越长,滞后性越强。至于使用多长时间短,取决于交易者, 时间于交易策略匹配才会管用
通常t<20天认为是短期,t=[20, 60]认为是中期,t>60认为是长期。50,100,200比较常用
还有一个选择是采用哪种MA算法,尽管他们大体相同。
SMA滞后性比EMA强,因为EMA越接近最近数据权重越大,越远的数据$\alpha$越接近0,换句话说EMA更接近最新价格,反应更快,可能更适合短期交易者
但SMA权重相同,更多用来表明阻力位和支撑位
趋势
长期MA, 例如200SMA, 不容易受短期波动影响, 需要很大量的变动才能影响均线, 常用来显示牛市还是熊市
牛市200SMA会上涨,熊市下跌牛市价格在200SMA以上,熊市价格在200SMA以下

支撑与压力
50MA在上升趋势中,提供支撑位

100MA在下降趋势中,提供压力位

交叉
交叉需要两个不同时间的MA, 例如50SMA与200SMA
看涨交叉, 短期MA向上交叉长期MA, 称作黄金交叉

看跌交叉, 短期MA向下交叉长期MA,称作死亡交叉

价格交叉
与上面相同,以50SMA与200SMA为例,200MA用来判断长期趋势
看涨交叉,当价格在50SMA之上,并且50SMA在200SMA之上时

看跌交叉,当价格在50SMA之下,并且50SMA在200SMA之下时

绘制
