- //+------------------------------------------------------------------+
- //| MACD_EMA.mq4 |
- //| Copyright @2006, Robert Hill |
- //+------------------------------------------------------------------+
- #property copyright "下载更多外汇EA,外汇指标,交易系统,就到【外汇EA之家】"
- #property link "http://www.eazhijia.com"
- #property indicator_separate_window
- #property indicator_buffers 4
- #property indicator_color1 Aqua
- #property indicator_color2 Red
- #property indicator_color3 Green
- #property indicator_color4 Red
- #property indicator_level1 0
- extern int FastEMA=12;
- extern int SlowEMA=26;
- extern int SignalSMA=9;
- double ind_buffer1[];
- double ind_buffer2[];
- double HistogramBufferUp[];
- double HistogramBufferDown[];
- int flagval1 = 0;
- int flagval2 = 0;
- //+------------------------------------------------------------------+
- //| Custom indicator initialization function |
- //+------------------------------------------------------------------+
- int init()
- {
- IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
- SetIndexStyle(0,DRAW_LINE,STYLE_SOLID);
- SetIndexBuffer(0,ind_buffer1);
- SetIndexDrawBegin(0,SlowEMA);
- SetIndexStyle(1,DRAW_LINE,STYLE_DOT);
- SetIndexBuffer(1,ind_buffer2);
- SetIndexDrawBegin(1,SignalSMA);
- SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID);
- SetIndexBuffer(2,HistogramBufferUp);
- SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID);
- SetIndexBuffer(3,HistogramBufferDown);
- IndicatorShortName("MACD-EMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
- SetIndexLabel(0,"MACD");
- SetIndexLabel(1,"Signal");
- SetIndexLabel(2,"Histogram");
- Comment("www.eazhijia.com");
- return(0);
- }
- //+------------------------------------------------------------------+
- //| Moving Averages Convergence/Divergence |
- //+------------------------------------------------------------------+
- int start(){
- int limit;
- double temp;
- int counted_bars=IndicatorCounted();
- if(counted_bars<0) return(-1);
- if(counted_bars>0) counted_bars--;
- limit=Bars-counted_bars;
- for(int i=0; i<limit; i++)
- ind_buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
- for(i=0; i<limit; i++)
- ind_buffer2[i]=iMAonArray(ind_buffer1,Bars,SignalSMA,0,MODE_EMA,i);
- for(i=0; i<limit; i++)
- {
- HistogramBufferUp[i] = 0;
- HistogramBufferDown[i] = 0;
- temp = ind_buffer1[i] - ind_buffer2[i];
- if (temp >= 0)
- HistogramBufferUp[i] = temp;
- else
- HistogramBufferDown[i] = temp;
- }
- return(0);
- }
|