通达信几个平均移动指标的探究

[复制链接]
查看59 | 回复0 | 2022-7-24 07:00:29 | 显示全部楼层 |阅读模式

写给自己看,留个记录,以备忘记。希望对网友有用。
MA、EMA(EXPMA、EXPMEMA)、SMA、DMA
 MEMA、TMA、WMA

DiNapoli就说过,编写软件的程序员有时并不了解交易员干的事情,这点切记。

MA=移动平均;不展开。
EMA本来应该是指数平滑移动平均,
 


经过推导可知:
 


但是通达信里的定义有点奇葩。如下:
EMA(X,N):
        2*X+(N-1)*Y'
 Y= ----------------
            N+1
        2             N-1           N-1             N-1
   = ----- *[1*X + (-----)^1*X' + (-----)^2*X'' + (-----)^3*X''' + ...]
      N+1             N+1           N+1             N+1 


SMA(X,N,M):
        M*X+(N-M)*Y'
 :Y= -----------------
            N
       M         N-M        N-M
   = --- *[1*X+(-----)*X'+(-----)^2*X''+...]
       N         N           N


DMA(X,α):             注:α必须<1,若令α=M/N,其中N<M,则                     
Y=α*X+(1-α)*Y'

       M           M
    = --- *X+(1- ----) *Y'
       N           N
       M          N-M        N-M
    = --- *[1*X+(-----)*X'+(-----)^2*X''+...]
       N           N          N         

可知,EMA,SMA,DMA其实是一个东西。学术地来说,一般应该用DMA,因为:
 对于EMA,α=2/(n+1);对于SMA,α=M/N;

由最初的推导可知,其实EMA本质不过是一种权重的设置方法而已。只是这种权重的设置方法比较“自然”(e),所以或许会比较符合“内在规律”(如果存在的话)。实际上,还可以有很多设置权重的方法,
 

 


比如WMA函数:
 系统对WMA函数给出的公式是Yn=(1*X1+2*X2+...+n*Xn)/(1+2+...+n),

 另外,EXPMEMA函数、EXPMA函数,经过测试,结果和EMA函数一样。

 另外,关于TMA的解释,可以参考文献。

 另外,关于XMA函数的参考:
MA和XMA的一部分算法一样。
MA(C,N)=(REF(C,N-1)+--REF(C,N-2)+REF(C,N=1)+C)/N
 XMA(C,N)=(REF(C,N-1)+--REF(C,N-2)+REF(C,N=1)+C)/N
不同的是这个值放到什么位置上。
MA是把这个值放到计算当天。而XMA把这个值放到向前数第(N+1)/2的位置上。
 经过实践发现XMA的最近数据会随着新的数据的出现而改变,是不折不扣的“未来函数”。

 最后,MEMA函数究竟是啥意思,没有搞明白。
 最初的猜想,当然是mema?=MA(ema(c,N),f(N));或者mema?=EMA(ema(c,N),f(N));
但经过验证皆非。
 网上查到的解释是:用法: MEMA(X,M) X的M日平滑移动平均。MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值。
 但这样的解释颇为含糊。“起始值为一平滑值”,何意?
 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则