0、6种均值算法

自己在学编辑指标,有些函数的意义不是特别了解,就在网络上搜索了,也参考了维基百科的MBALIB,都很有帮助。
在一个论坛上看到有这样细致的区分众多平均数指标的解释,感觉很有用。转帖下来,供大家学习。
转帖内容如下:
------------------------------------------------------------
原标题:MA、EMA、SMA、DMA、TMA、WMA6种均值算法含义

MA、EMA、SMA、DMA、TMA、WMA6种平均算法经常在各种指标指标中运用,但多数初学者可能并不理解其具体区别,整理如下。

MA(X,N)简单算术平均
求X的N日移动平均值,不分轻重,平均算。算法是:
(X1+X2+X3+…..+Xn)/N
例如:MA(C,20)表示20日的平均收盘价。C表示CLOSE。

EMA(X,N)指数平滑移动平均
求X的N日指数平滑移动平均,它真正的指标表达是:当日指数平均值=平滑系数*(当日指数值-昨日指数平均值)+昨日指数平均值;平滑系数=2/(周期单位+1);由以上指标推导开,得到:EMA(C,N)=2*C/(N+1)+(N-1)/(N+1)*昨天的指数收盘平均值;
算法是:若Y=EMA(X,N),则Y=[2*X+(N-1)*Y’]/(N+1),其中Y’表示上一周期的Y值。
EMA引用函数在计算机上使用递归算法很容易实现,但不容易理解。例举分析说明EMA函数。
X是变量,每天的X值都不同,从远到近地标记,它们分别记为X1,X2,X3,….,Xn
如果N=1,则EMA(X,1)=[2*X1+(1-1)*Y’]/(1+1)=X1
如果N=2,则EMA(X,2)=[2*X2+(2-1)*Y’]/(2+1)=(2/3)*X2+(1/3)X1
如果N=3,则EMA(X,3)=[2*X3+(3-1)*Y’]/(3+1)=[2*X3+2*((2/3)*X2+(1/3)*X1)]/4=(1 /2)*X3+(1/3)*X2+(1/6)*X1
如果N=4,则EMA(X,4)=[2*X4+(4-1)*Y’]/(4+1)=2/5*X4+3/5*((1/2)*X3+(1/3)*X2+(1 /6)*X1)
=2/5*X4+3/10*X3+1/5*X2+1/10*X1
如果N=5,则EMA(X,5)=2/(5+1)*X5+(5-1)/(5+1)(2/5*X4+3/10*X3+3/15*X2+3/30*X1)
=(1/3)*X5+(4/15)*X4+(3/15)*X3+(2/15)*X2+(1/15)*X1
…………循环
X1
(2/3)*X2+(1/3)X1
(3/6)*X3+(2/6)*X2+(1/6)*X1
(4/10)*X4+(3/10)*X3+(2/10)*X2+(1/10)*X1
(5/15)*X5+(4/15)*X4+(3/15)*X3+(2/15)*X2+(1/15)*X1
任何时候系数之和恒为1。如果X是常量,每天的X值都不变,则EMA(X,N)=MA(X,N).
从以上的例举分析中,我们可以看到时间周期越近的X值它的权重越大,说明EMA函数对近期的X值加强了权重比,更能及时反映近期X值的波动情况。 所以EMA比Ma更具参考价值,而ema 也不容易出现死叉和金叉,所以一旦出现要立即作出反映!对周线处理,ema就更加稳定了。
理解了MA,EMA的含义后,就可以理解其用途了,简单的说,当要比较数值与均价的关系时,用MA就可以了,而要比较均价的趋势快慢时,用EMA更稳定;有时,在均价值不重要时,也用EMA来平滑和美观曲线。

MEMA(X,N)改良

指数平滑移动平均。
用法:
MEMA(X,N),求X的N日改良指数平滑移动平均。算法:若Y=MEMA(X,N)
则Y=[X+(N-1)*Y']/N,其中Y'表示上一周期Y值。
例如:MEMA(CLOSE,30)表示求30日改良指数平滑均价

SMA(C,N,M)移动平均
理解了MA和EMA的含义和用途后,后面几个函数就好理解了;因为EMA的平滑系数是定的,=2/(周期+1);如果要改变平滑系数咋办?这就用到了 SMA,与EMA的区别就是增加了权重参数M,也就是用M代替EMA平滑系数中的2,这样我们可以根据需要调整当日数值在均价中的权重=M/N。(要求N>M)
用法:
SMA(X,N,M),求X的N日移动平均,M为权重。
算法: 若Y=SMA(X,N,M)
则 Y=[M*X+(N-M)*Y')/N,其中Y'表示上一周期Y值,N必须大于M。
例如:SMA(CLOSE,30,1)表示求30日移动平均价

DMA(C,A)动态移动平均
注意,权重系数在EMA与SMA中都是用数值与周期计算出来的小数,假设有一个小数可以直接代表权重,如何办?这就有了DMA,DMA(C,A) 中A为权重值,指标如下:X=DMA(C,A)=A*X+(1-A)*X'(A小于1),可以发现,DMA与SMA原理是一至的,只是用一个小数直接代替了M/N,而在实用中,这个小数最有价值的就是换手率=V/CAPITAL;DMA(C,V /CAPITAL)的直接含义是用换手率作为权重系数,利用当日收盘价在均价中的比重计算均价,直观理解就是换手率越大,当日收盘价在均价中的作用越大!
用法:
WMA(X,N),求X的N日加权移动平均。
算法: Y=WMA[X,N]=(1*X1+2*X2+3*X3+...+N*Xn)/(1+2+3+...+N)。
例如:WMA(CLOSE,20)表示求20日加权移动平均价格

WMA(X,A)加权移动平均
用法:
WMA(X,N),求X的N日加权移动平均。
算法: Y=WMA[X,N]=(1*X1+2*X2+3*X3+...+N*Xn)/(1+2+3+...+N)。
例如:WMA(CLOSE,20)表示求20日加权移动平均价格

均值指标在众多指标指标中都有使用,透彻理解上述各种均值算法含义,是合理应用各种指标指标的前提。

另外有两个函数大智慧没有TMA和EXPMA(注意:大智慧里的EXPMA是指标不是函数)

TMA(X,N,M)递归移动平均
用法:tma(x,n,m),求x的递归移动平均,n、m为权重。算法:若y=tma(x,n,m) 则 y=(n*y'+m*x), 其中y'表示上一周期y值。初值为m*x。
例如:tma(close,0.9,0.1)表示求x的递归移动平均


EMA和EXPMA关系:把周期都设为一样之后的计算的数值结果是一样的。所以计算原理是一样的。
在研究EXPMA的计算原理的时候。总是看百度百科的基础计算举例,导致被极大误导。
按百度百科的举例计算,困扰我的是如果股票上市没几天,周期26的EXPMA是如何算出来的。计算结果就严重的不正确。
经过一天的研究之后无果。今天早上起来,不按举例的思维。就按算法算:Y=[2*X+(N-1)*Y’]/(N+1),其中Y’表示上一周期的Y值(来自百度百科)。(这里的周期概念容易误

导大家,个人感觉并没所谓的周期概念,即没有正常意义下的N天一个周期计算一次。更加严格的计算原理来着维基百科:
解释为:当天EMA=昨天的EMA+加权因子*(当天的收盘价-昨天的EMA)
= 加权因子*当天的收盘价+(1-加权因子)*昨天的EMA
加权因子=2/(N+1);
N就是上面所说的周期 ,比如周期26 则加权的因子就是 2/27;
当天EMA=2/27*当天的收盘价+25/27*昨天的EMA
计算过程(比如:周期26 ):
股票上市第一天:当天EMA1 = 当天收盘价1

第二天:EMA2 = 2/27*当天收盘价2 +25/27*EMA1

第三天:EMA3 = 2/27*当天收盘价3 +25/27*EMA2
.................


EXPMA
作者:冷血飞鹰 时间:2003-06-06 07:39:48
EXPMA
{n1=5 100 12 n2=5 100 50}
EXPMA1 : (CLOSE-REF(EMA(CLOSE,N1),1))*2/(N1+1)+REF(EMA(CLOSE,N1),1);
EXPMA2 : (CLOSE-REF(EMA(CLOSE,N2),1))*2/(N2+1)+REF(EMA(CLOSE,N2),1);
STICKLINE(CLOSE>OPEN,OPEN,CLOSE,6,1), , COLORRED;
STICKLINE(CLOSE=OPEN,OPEN,CLOSE,6,1), , COLORRED;
STICKLINE(CLOSE>OPEN,LOW,OPEN,0.8,1), , COLORRED;
STICKLINE(CLOSE=OPEN,LOW,OPEN,0.8,1), , COLORRED;
STICKLINE(CLOSE>OPEN,CLOSE,HIGH,0.8,1),,COLORRED;
STICKLINE(CLOSE=OPEN,CLOSE,HIGH,0.8,1),,COLORRED;
STICKLINE(CLOSESTICKLINE(CLOSE
---------------------------------------------------------------------------------
另一个帖子:
ma,dma,ema,sma四函数用法辩析

近来学指标,对这四个函数的用法比较疑惑,终于找到另一论坛上一位高手对这一问题的解答。贴在此处,相信有同我一样疑惑的指标新手需要!
先看MA和EMA,首先,它们都是求平均值,这应该没疑问吧;

MA是简单算术平均,MA(C,2)=(C1+C2)/2; MA(C,3)=(C1+C2+C3)/3;不分轻重,平均算;
_
EMA是指数平滑平均,它真正的指标表达是:当日指数平均值=平滑系数*(当日指数值-昨日指数平均值)+昨日指数平均值;平滑系数=2/(周期单位+1);由以上指标推导开,得到:EMA(C,N)=2*C/(N+1)+(N-1)/(N+1)*昨天的指数收盘平均值;仔细看:X=EMA(C,2)=2/3*C+1/3*REF(C,1); EMA(C,3)=2/4*C+2/4*X;所以,它在计算平均值时,考虑了前一日的平均值,平滑系数是定的,它是利用今日的值与前一日的平均值的差,再考虑平滑系数,计算出来的平均值,所以也有叫异同平均的。
因此,这两个平均算法是不同的,主要是对数组中的数据的权重侧重不同。
理解了MA,EMA的含义后,就可以理解其用途了,简单的说,当要比较数值与均价的关系时,用MA就可以了,而要比较均

价的趋势快慢时,用EMA更稳定;有时,在均价值不重要时,也用EMA来平滑和美观曲线。
理解了MA和EMA的含义和用途后,后面几个函数就好理解了;
因为EMA的平滑系数是定的,=2/(周期+1);如果要改变平滑系数咋办?这就用到了SMA;
SMA(C,N,M)与EMA的区别就是增加了权重参数M,也就是用M代替EMA平滑系数中的2,这样我们可以根据需要调整当日数值在均价中的权重=M/N。(要求N>M);
大家注意,权重系数在EMA与SMA中都是用数值与周期计算出来的小数,假设有一个小数可以直接代表权重,如何办?这就有了DMA;
DMA(C,A) 中A为权重值,指标如下:X=DMA(C,A)=A*X+(1-A)*X'(A小于1),可以发现,DMA与SMA原理是一至的,只是用一个小数直接代替了M/N;
而在实用中,这个小数最有价值的就是换手率=V/CAPITAL;DMA(C,V/CAPITAL)的直接含义是用换手率作为权重系数,利用当日收盘价在均价中的比重计算均价;
直观理解就是换手率越大,当日收盘价在均价中的作用越大!
这样理解应该知道各函数的作用和用途了!

相关文档
最新文档