极客算法

技术分析 - MA

2023-01-25
DA

本文仅作为学习目的,一切内容均不构成任何投资意见或建议, 投资有风险入市需谨慎

移动平均线

移动平均线(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, 不容易受短期波动影响, 需要很大量的变动才能影响均线, 常用来显示牛市还是熊市

  1. 牛市200SMA会上涨,熊市下跌
  2. 牛市价格在200SMA以上,熊市价格在200SMA以下

200SMA

支撑与压力

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

50SMA

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

100SMA

交叉

交叉需要两个不同时间的MA, 例如50SMA与200SMA

看涨交叉, 短期MA向上交叉长期MA, 称作黄金交叉

golden cross

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

dead cross

价格交叉

与上面相同,以50SMA与200SMA为例,200MA用来判断长期趋势

看涨交叉,当价格在50SMA之上,并且50SMA在200SMA之上时

golden cross

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

golden cross

绘制

MA

代码

更多

  1. https://trader.fandom.com/wiki/Moving_average#Cumulative_moving_average
  2. https://www.tradingview.com/support/solutions/43000502589-moving-average/

上一篇 技术分析 - RSI

评论

内容:
其他: