说说常用的DMA,EMA,SMA和MA几个移动平均的区别 dma 动态移动平均--dma(x,a) 若y=dma(x,a) 则 y=a*x+(1-a)*y',其中y'表示上一周期y值,a必须小于1.它与sma是一家的,看:y=m/n*x+(n-m)/n*y';y=a*x+(1-a)*y';前者说n必须大于m,后者说a必须小于1.然后两者就一样了:a=m/n.说“a为计算周期”似乎不妥,a要取小数才行.dma在第一根k线就开始起算,sma要到第二根k线开始起算dma(close,vol/capital)表示求以换手率作平滑因子的平均价。 ema 指数平滑移动平均--ema(x,n) 参数: x为数组,n为计算周期.n可以取到1,不过输出就没有加权的效果了.算法: 若y=ema(x,n) 则y=[2*x+(n-1)*y']/(n+1), 其中y'表示上一周期y值.把算法写成这个样子:y=2*x/(n+1)+(n-1)/(n+1)*y',就可以看出,当前周期数组值所占的权重是2/(n+1),而上一周期y值所占的权重是(n-1)/(n+1).注意,这两个权重相加,结果为1:2/(n+1)+(n-1)/(n+1)=1. sma 移动平均--sma(x,n,m) 参数:x为数组,n为计算周期,m为权重.若y=sma(x,n,m) 则 y=[m*x+(n-m)*y']/n, 其中y'表示上一周期y值,n必须大于m.把算法写成这个样子:y=m/n*x+(n-m)/n*y',就可以看出,当前周期数组值所占的权重是m/n,而上一周期y值所占的权重是(n-m)/n.注意,这两个权重相加,结果为1:m/n+(n-m)/n=1.看出来了吧?sma(x,n+1,2)=ema(x,n); ma 简单移动平均--ma(x,n) 参数:x为数组,n为计算周期 说明: 求x的n日移动平均值。算法(x1+x2+x3+...+xn)/n。 MA是简单算术平均,MA(C,2)=(C1+C2)/2; MA(C,3)=(C1+C2+C3)/3;不分轻重,平均算; |
|