复制代码 - //+------------------------------------------------------------------+
- //| macddzq.mq4 |
- //| Air |
- //| WWW.CMBRO.COM |
- //+------------------------------------------------------------------+
- #property copyright "Air"
- #property link "WWW.CMBRO.COM"
- #property indicator_separate_window
- #property indicator_buffers 2
- #property indicator_color1 LightSeaGreen
- #property indicator_color2 Red
- #property indicator_level1 80
- #property indicator_level2 20
- extern int TimeFrame=0;
- extern int FastEMA=12;
- extern int SlowEMA=26;
- extern int SignalSMA=9;
- //---- indicator buffers
- double MacdBuffer[];
- double SignalBuffer[];
- //+------------------------------------------------------------------+
- //| Custom indicator initialization function |
- //+------------------------------------------------------------------+
- int init()
- {
- //---- indicator line
- //---- drawing settings
- SetIndexStyle(0,DRAW_HISTOGRAM);
- SetIndexStyle(1,DRAW_LINE);
- SetIndexDrawBegin(1,SignalSMA);
- IndicatorDigits(Digits+1);
- //---- indicator buffers mapping
- SetIndexBuffer(0,MacdBuffer);
- SetIndexBuffer(1,SignalBuffer);
- //---- name for DataWindow and indicator subwindow label
- switch(TimeFrame)
- {
- case 1 : string TimeFrameStr="eriod_M1"; break;
- case 5 : TimeFrameStr="eriod_M5"; break;
- case 15 : TimeFrameStr="eriod_M15"; break;
- case 30 : TimeFrameStr="eriod_M30"; break;
- case 60 : TimeFrameStr="eriod_H1"; break;
- case 240 : TimeFrameStr="eriod_H4"; break;
- case 1440 : TimeFrameStr="eriod_D1"; break;
- case 10080 : TimeFrameStr="eriod_W1"; break;
- case 43200 : TimeFrameStr="eriod_MN1"; break;
- default : TimeFrameStr="Current Timeframe";
- }
- IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+") "+TimeFrameStr);
- }
- return(0);
- int start()
- {
- datetime TimeArray[];
- int i,shift,limit,y,counted_bars=IndicatorCounted();
- // Plot defined timeframe on to current timeframe
- ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
- limit=Bars-counted_bars;
- for(i=0,y=0;i<limit;i++)
- {
- if (Time<TimeArray[y]) y++;
- MacdBuffer=iMACD(NULL,TimeFrame,12,26,9,PRICE_CLOSE,MODE_MAIN,y);
- SignalBuffer=iMACD(NULL,TimeFrame,12,26,9,PRICE_CLOSE,MODE_SIGNAL,y);
- }
- //
- return(0);
- }
- //+------------------------------------------------------------------+
|