EMA的计算原理和代码.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EMA的计算原理和代码

EMA的计算原理 EMA 是MA(平滑移动平均线)的另一种形式。全名“加权指数移动平均线”。 2/13就是12日移动平均线的平滑因子,他的意思是指:给予新价格 2/13的权重,给予过去的EMA 11/13的权重。 在计算的时候第一天的MACD是0,从第2天开始。第一天的EMA12和EMA26都等于收盘价。 我们用这种方法可以在只看收盘价格的情况下准备画出任何一个股票的MACD。因为我详细的算过,哈哈,真的对理解MACD有很大的帮助。 至于为什么是2/(12+1)*今日收盘价+11/(12+11)*昨日EMA(12)。光说不练不行,你有时间可以算一下。我曾经算过中国石油的MACD 为了证明我不是在忽悠你,毕竟我们也算志同道合了。 公式如下所示: 1、计算移动平均值(EMA) 12日EMA的算式为: EMA(12)=前一日EMA(12)×11/13+今日收盘价×2/13 26日EMA的算式为: EMA(26)=前一日EMA(26)×25/27+今日收盘价×2/27 C/c++语言void ema(double input[],int emaperiod,double emaout[]) { // EMA(X,N)求X的N日指数平滑移动平均。算法是: //若Y=EMA(X,N),则Y=[2*X+(N-1)*Y’]/(N+1),其中Y’表示上一周期的Y值。 int length=sizeof(input) / sizeof(input[0]); int n=1; for(int i=0;ilength;i++) { if(iemaperiod) n=i+1; emaout[i]=((n-1)*emaout[i-1]+2*input[i])/(n+1); } } EMA与MA的区别,EMA是加权平均,MA是一般的平均。 在加权平均中,这个权有两种,各种分析软件不一样,计算也有差异。一般的软件,多为时间上的加权。EMA只是比MA更优化了一些,让N以内的数值得以计算。 他们通过“人为”指定,就是把一定时间分为一定优先级,比如今天设为一个数值,前10天的优先级又差一些,这样进行加权,原理有些像筹码分布。 MA和EMA的数学表达式: 1、MA(X,N),求X的N日移动平均值。算法是: (X1+X2+X3+…..+Xn)/N 例如:MA(C,20)表示20日的平均收盘价。C表示CLOSE。 2、EMA(X,N)求X的N日指数平滑移动平均。算法是: 若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+3/15*X2+3/30*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 (1/2)*X3+(1/3)*X2+(1/6)*X1 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 ?任何时候系数之和恒为1。如果X是常量,每天的X值都不变,则EMA(X,N)=MA(X,N). 使用总结: 从以上的例举分析中,我们可以看到时间周期越近的X值它的权重越大,说明EMA函数对近期的X值加强了权重比,更能及时反映近期X值的波动情况。 ?????所以EMA比Ma更具参考价值,而ema业不容易出现死叉和金叉,所以一旦出现要立即作出反映! 对周线处理,ema就更加稳定了。

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档