双线MACD指标算法原理_第1页
双线MACD指标算法原理_第2页
双线MACD指标算法原理_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、双线MACD指标算法原理#property indicator_separate_window#property indicator_buffers 4#property indicator_color1 White#property indicator_color2 Yellow#property indicator_color3 Red#property indicator_color4 Lime*以上是双线MACD的一些初始化的设置,包括窗体,数据缓冲区区和呈现图像的线的 颜色,colorl 以 White 色来表示 DIF,color2 以 Yellow 色来表示 DEA,color3

2、 为红色的柱子,color4为绿色的柱子/indicator parametersextern int FastEMA=9;extern int SlowEMA=20;extern int SignalSMA=9;*定义MACD的算法参数,FastEMA为通过K线收盘价做EMA加权平均线计算的 参数,默认为12,也称为快线;SlowEMA为通过K线收盘价做EMA加权平均线计算 的参数,默认为26,也称为慢线;SignalSMA为通过FastEMA-SlowEMA的差值做 算术平均得到DIF值得参数,默认为9,即9日算术平均。/indicator buffersdouble ind_buffer

3、1;double ind_buffer2;double ind_buffer3;double ind_buffer4;double temp;*定义数据缓冲区数组和变量int init()/- drawing settingsSetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,1);SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,1);SetIndexDrawB

4、egin(1,SignalSMA);IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);*定义绘图对象线、柱和绘图模板信息/indicator buffers mappingif(!SetIndexBuffer(0,ind_buffer1)& !SetIndexBuffer(1,ind_buffer2)& !SetIndexBuffer(2,ind_buffer3)& !SetIndexBuffer(3 ,ind_buffer4)Print(cannot set indicator buffers!);*缓冲区数组到绘图对象的一一对应并作错误

5、提示处理/- name for DataWindow and indicator subwindow labelIndicatorShortName(MACD(+FastEMA+,+SlowEMA+,+SignalSMA+)”);SetIndexLabel(0,MACD);SetIndexLabel(1,Signal);/- initialization donereturn(0);*定义绘图窗口的标签信息int start()int limit;int counted_bars=IndicatorCounted();/- check for possible errorsif(counted

6、_bars0) counted_bars-;limit=Bars-counted_bars;/macd counted in the 1-st bufferfor(int i=0; ilimit; i+)ind_buffer1i=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0, SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);*以limit引用MT4系统设定的最大极限K线根数的参数,ind_buffer1i为记录 每一根K线的DIF值的数组,DIF值得计算方式为每一个K线所对应的快线取值减去慢 线取值(比如DI

7、F=FastEMA12SlowEMA26),然后将ind_buffer1i数组中的所 有DIF值串联起来,便绘制出来了 DIF曲线。/signal line counted in the 2-nd bufferfor(i=0; ilimit; i+)ind_buffer2i=iMAOnArray(ind_buffer1,Bars,SignalSMA,0,MODE_SMA,i);*ind_buffer2i为记录了通过ind_buffer1数组进行SignalSMA的所有取值, 即为DEA。通俗说,将DIF进行SMA9简单算术平均后得到的数值就是DEA的取值, 将每一根K线对应的DEA的取值顺序排列,并绘串联起来,就得到了 DEA曲线。for(i=0; i0) ind_buffer3i=temp;ind_buffer4i=0;else ind_buffer3i=0;ind_buffer4i=temp;*ind_buffer3为出红柱的情况,ind_buffer4为出绿柱的情况,意思就是如果 temp的取值大于0,那么将差值存入ind_buffer3,对应的就是所在K线的红柱;如 果temp的取值小于0,那么将差值存入ind_buffer4,对应的就是所在K线的绿柱。/- done

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论