在股市及其他金融领域中,经常需要进行指数加权平均计算,这个指标可以较好反应指数变动的趋势。
在python 中用pandas 的ewm函数可以很方便进行计算,但这个函数的说明过于复杂,大多数文章都很难清晰描述,而且原文也没有很好的中文译本。在使用过程中总对不上数据,经过反复实验,终于有了一些头绪,记录如下。
pandas关于ema的文档
https://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.ewma.html
先看看指数移动平均值EMA的定义:
EMA定义
EMA(Exponential Moving Average)是指数移动平均值。也叫EXPMA指标,它也是一种趋向类指标,指数移动平均值是以指数式递减加权的移动平均。
EMA(today)=α Price(today) + ( 1 - α ) EMA(yesterday);
其中,α为平滑指数,一般取作2/(N+1)。典型的在计算MACD指标时,EMA计算中的N一般选取12和26天,因此α相应为2/13和2/27。
这里可以看到一个问题,如果是N>1,则存在EMA(0)的取值问题,一般可以取值:
EMA(0)= Price(0)