概述
根据求平均的方式不同,可以有简单移动平均数( Simple moving Average,SMA)、加权移动平均数( Weighted Moving Average,WMA)和指数移动平均数(Exponential Moving Average,
EXPMA 或 EMA)。
注意:此均线策略需掌握对应代码编写
简单移动平均数(SMA)
即简单求数学平均数,注意为了体现“移动”的概念,不同平均数的分子是逐步向后挪动的
第5天的简单平均数为:
公式:SMA5=(P1+P2+P3+P4+P5) /5
式中,P1、P2、P3、P4、P5分别表示股票在第1天、第2天等的价格。
第6天的5日简单移动平均数则为:
公式:SMA6=(P2+P3+P4+P5+P6) /5
注意:这里算第6天时,是从P2开始,这即是所谓“移动”概念的体现。
期数的选择:
期数选择对简单移动平均的收益效果影响很大,要确定移动平均的期数,一般需要从以下三个方面考虑:
1、 事件发展的周期性:如果事件的发展有周期,一般应以周期长度作为移动平均数的间隔长度,比如研究每年的平均气温变化趋势,对其做12期移动平均,以便通过周期平均消除季节效应的影响
2、 对趋势平均性的要求:一般来说移动平均的期数越多,修匀效果越平均,表现出的趋势就越清晰。
3、 对趋势反映近期变化敏感程度的要求:用移动平均方法确定事件的发展趋势都具有一定的滞后性。
移动平均的期数越多,滞后性也越大; 期数越少,所得的趋势图对近期变化的反应就越敏感。因此,如果想得到长期趋势,最好做期数比较大的移动平均; 如果想密切关注序列的短期趋势,最好做期数比较小的移动平均。
加权移动平均数(WMA)
概述
加权移动平均会考虑最近的数据与久远的数据的区别,昨天的数据会比10天前的价格更能反映今天的股价情况。因此为了表示其代表性的高低,可以考虑先对股价赋予一定的权重,再求平均值。其它的计算方式和移动平均一样。
5日加权移动平均值的计算公式为:
WMAt5=w1p1+w2p2+w3p3+w4p4+w5p5
其中,w1、w2、w3、w4为股价数据的权重且w1+w2+w3+w4+w5=1。同理,得出第6天及以后的加权移动平均数。
代码实现
import pandas as pd
import numpy as np
def wmaCal(tsPrice,weight):
k=len(weight)
arrWeight=np.array(weight)
Wma=pd.Series(0.0,index=tsPrice.index)
for i in range(k-1,len(tsPrice.index)):
Wma[i]=sum( arrWeight*tsPrice[(i-k+1):(i+1)])
return Wma
b=np.array([1,2,3,4,5])
w=b/sum(b)
Wma5=wmaCal(Close,w)
print(Wma5)
指数加权移动平均(EMA)
其相当于一种特别的加权移动平均,主要考虑近期平均价格有更高的权重比,假设第5日的加权移动平均数为56,在第6天时将前面的平均数权重设置为0.8,当天价格权重设置为0.2,以此类推,其它的指数加权均按此公式计算,具体计算过程见下表:

相关代码
简单移动平均代码实现
import pandas as pd
def smaCal(tsPrice,k):
a=pd.Series(0.0,index=tsPrice.index)
for i in range(k-1,len(tsPrice)):
a[i]=sum(tsPrice[(i-k+1):(i+1)])/k
return(a)
sma5=smaCal(Close ,5)
加权移动平均代码实现
import pandas as pd
import numpy as np
def wmaCal(tsPrice,weight):
k=len(weight)
arrWeight=np.array(weight)
Wma=pd.Series(0.0,index=tsPrice.index)
for i in range(k-1,len(tsPrice.index)):
Wma[i]=sum(arrWeight*tsPrice[(i-k+1):(i+1)])
return(Wma)
b=np.array([1,2,3,4,5])
w=b/sum(b)
wma5=wmaCal(Close,w)
三种平均法大体差别
1、 移动平均法(包括简单移动平均和加权移动平均)所利用的数据都是局部,即使用过去N期的数据进行平均。指数加权平均法,则使用的是全局数据,从公式即可看出来
2、 简单移动平均法对所有数据一视同仁,均使用相同的权重。加权移动平均设置权重更加主观,通常根据专家建议或历史经验而确定。指数加权移动平均类似,但均倾向于对较近的数据赋予较大的权重 ,较远的数据相对权重较小
双均线交叉捕捉买卖点
1、 先求出短期均线和长期均线
2、 当短期均线从下向上穿过长期均线时,释放出买入信号
3、 当短期均线从上向下穿过长期均线时,释放出卖出信号
注意:短期和长期的时间跨度是因人而异。比如,选择5日简单移动平均线为短期线,30日简单移动平均线为长期线,运用长短期均线交叉策略的思想捕捉长短期均线突破点,并制定买卖交易点。
异同移动平均线(MACD)

由指数均线演变而来,是股票分析中一种常见的指标。MACD指标由两线柱组合而成,快速线为DIF,慢速线为DEA,柱状图为MACD。
快速线DIF:一般由12日指数加权移动平均值减去26日指数加权移动平均值得到。
慢速线DEA:DIF的9日指数加权移动平均值 。
柱状图MACD:由快速线DIF与慢速线DEA作差得到,如果是正数为红色,负数则为绿色
金叉和死叉:当DEA线向上穿过DIF快线时,释放金叉准备买入信号;当DEA线向下与DIF线时交叉时,释放死叉准备卖出信号。注意:如果是指导投资决策,尽量DEA和DIF大于0时买入,小于0时卖出。
MACD指标可以反映出股票近期价格趋势的能量和变化强度,通过分析快慢速线和柱状图来把握股票的买入和卖出点。一般默认MACD的求值参数为12、26和9,在投资实践中,可以对这些参数进行优化。
MACD交易策略
1.当 DlF 和 DEA 都在零刻度线上方时,表明市场可能是多头行情;反之,当 DIF 和 DEA 都在零刻度下方时,表明市场可能处于空头行情。
2.当 DIF 下穿信号线 DEA 时,释放出买入信号;当 DIF 向上穿过信号线 DEA 时,释放出卖出信号。
以 DIF 与 DEA 线的交叉与背离这一策略的分析过程包括如下 3 个步骤:
(1) 先求出 DIF(差离值,快线)、DEA(信号线,慢线)的值;
(2) DIF、DEA 均为正,DIF 向上突破 DEA,买入信号;
(3) DIF、DEA 均为负,DIF 向下跌破 DEA,卖出信号。