//+------------------------------------------------------------------+ //| MacdACSignals.mq4.mq4 | //| Tonkonog G.S., 2009 | //| hurricane79@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Tonkonog G.S., 2009" #property link "hurricane79@yandex.ru" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Gold #property indicator_color2 Red //---- input parameters extern int barsToProcess=500; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,236); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,238); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(), limit; //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; if(limit>barsToProcess) limit=barsToProcess; //---- for(int i=0;i0 && MacdCurrent>SignalCurrent && MacdPrevious0 && AC3>0 && AC2>0 && AC1>0) && (AC4>AC3 && AC2>AC3 && AC1>AC2)) || //... на нулевом баре + ((AC4<0 && AC3<0 && AC2<0 && AC1>0) && (AC4>AC3 && AC2>AC3 && AC1>AC2)) || // есть один из трёх + ((AC5<0 && AC4<0 && AC3<0 && AC2<0 && AC1<0) && // сигналов от АС то ... + (AC5>AC4 && AC40 && MacdPrevious<0) && // Если MACD-гистограмма перешла через ноль и ... + (((AC4>0 && AC3>0 && AC2>0 && AC1>0) && (AC4>AC3 && AC2>AC3 && AC1>AC2)) || //... на нулевом баре + ((AC4<0 && AC3<0 && AC2<0 && AC1>0) && (AC4>AC3 && AC2>AC3 && AC1>AC2)) || // есть один из трёх + ((AC5<0 && AC4<0 && AC3<0 && AC2<0 && AC1<0) && // сигналов от АС то ... + (AC5>AC4 && AC40 && MacdCurrent>SignalCurrent && MacdPrevious0 && AC3_1>0 && AC2_1>0 && AC1_1>0) && (AC4_1>AC3_1 && AC2_1>AC3_1 && AC1_1>AC2_1)) || // ... на первом баре + ((AC4_1<0 && AC3_1<0 && AC2_1<0 && AC1_1>0) && (AC4_1>AC3_1 && AC2_1>AC3_1 && AC1_1>AC2_1)) || // есть один из трёх + ((AC5_1<0 && AC4_1<0 && AC3_1<0 && AC2_1<0 && AC1_1<0) && // сигналов от АС то ... + (AC5_1>AC4_1 && AC4_10 && MacdPrevious<0) && // Если MACD-гистограмма перешла через ноль и ... + (((AC4_1>0 && AC3_1>0 && AC2_1>0 && AC1_1>0) && (AC4_1>AC3_1 && AC2_1>AC3_1 && AC1_1>AC2_1)) || // ... на первом баре + ((AC4_1<0 && AC3_1<0 && AC2_1<0 && AC1_1>0) && (AC4_1>AC3_1 && AC2_1>AC3_1 && AC1_1>AC2_1)) || // есть один из трёх + ((AC5_1<0 && AC4_1<0 && AC3_1<0 && AC2_1<0 && AC1_1<0) && // сигналов от АС то ... + (AC5_1>AC4_1 && AC4_10 && MacdCurrent>SignalCurrent && MacdPrevious0 && AC3_2>0 && AC2_2>0 && AC1_2>0) && (AC4_2>AC3_2 && AC2_2>AC3_2 && AC1_2>AC2_2)) || // ... на втором баре + ((AC4_2<0 && AC3_2<0 && AC2_2<0 && AC1_2>0) && (AC4_2>AC3_2 && AC2_2>AC3_2 && AC1_2>AC2_2)) || // есть один из трёх + ((AC5_2<0 && AC4_2<0 && AC3_2<0 && AC2_2<0 && AC1_2<0) && // сигналов от АС то ... + (AC5_2>AC4_2 && AC4_20 && MacdPrevious<0) && // Если MACD-гистограмма перешла через ноль и ... + (((AC4_2>0 && AC3_2>0 && AC2_2>0 && AC1_2>0) && (AC4_2>AC3_2 && AC2_2>AC3_2 && AC1_2>AC2_2)) || // ... на втором баре + ((AC4_2<0 && AC3_2<0 && AC2_2<0 && AC1_2>0) && (AC4_2>AC3_2 && AC2_2>AC3_2 && AC1_2>AC2_2)) || // есть один из трёх + ((AC5_2<0 && AC4_2<0 && AC3_2<0 && AC2_2<0 && AC1_2<0) && // сигналов от АС то ... + (AC5_2>AC4_2 && AC4_20 && MacdCurrent>SignalCurrent && MacdPrevious0 && AC3_3>0 && AC2_3>0 && AC1_3>0) && (AC4_3>AC3_3 && AC2_3>AC3_3 && AC1_3>AC2_3)) || // ... на третьем баре + ((AC4_3<0 && AC3_3<0 && AC2_3<0 && AC1_3>0) && (AC4_3>AC3_3 && AC2_3>AC3_3 && AC1_3>AC2_3)) || // есть один из трёх + ((AC5_3<0 && AC4_3<0 && AC3_3<0 && AC2_3<0 && AC1_3<0) && // сигналов от АС то ... + (AC5_3>AC4_3 && AC4_30 && MacdPrevious<0) && // Если MACD-гистограмма перешла через ноль и ... + (((AC4_3>0 && AC3_3>0 && AC2_3>0 && AC1_3>0) && (AC4_3>AC3_3 && AC2_3>AC3_3 && AC1_3>AC2_3)) || // ... на третьем баре + ((AC4_3<0 && AC3_3<0 && AC2_3<0 && AC1_3>0) && (AC4_3>AC3_3 && AC2_3>AC3_3 && AC1_3>AC2_3)) || // есть один из трёх + ((AC5_3<0 && AC4_3<0 && AC3_3<0 && AC2_3<0 && AC1_3<0) && // сигналов от АС то ... + (AC5_3>AC4_3 && AC4_30 && MacdCurrent>SignalCurrent && MacdPrevious0 && AC3_4>0 && AC2_4>0 && AC1_4>0) && (AC4_4>AC3_4 && AC2_4>AC3_4 && AC1_4>AC2_4)) ||//... на четвёртом баре + ((AC4_4<0 && AC3_4<0 && AC2_4<0 && AC1_4>0) && (AC4_4>AC3_4 && AC2_4>AC3_4 && AC1_4>AC2_4)) || // есть один из трёх + ((AC5_4<0 && AC4_4<0 && AC3_4<0 && AC2_4<0 && AC1_4<0) && // сигналов от АС то ... + (AC5_4>AC4_4 && AC4_40 && MacdPrevious<0) && // Если MACD-гистограмма перешла через ноль и ... + (((AC4_4>0 && AC3_4>0 && AC2_4>0 && AC1_4>0) && (AC4_4>AC3_4 && AC2_4>AC3_4 && AC1_4>AC2_4)) ||//... на четвёртом баре + ((AC4_4<0 && AC3_4<0 && AC2_4<0 && AC1_4>0) && (AC4_4>AC3_4 && AC2_4>AC3_4 && AC1_4>AC2_4)) || // есть один из трёх + ((AC5_4<0 && AC4_4<0 && AC3_4<0 && AC2_4<0 && AC1_4<0) && // сигналов от АС то ... + (AC5_4>AC4_4 && AC4_4SignalPrevious) && (((AC4<0 && AC3<0 && AC2<0 && AC1<0) && (AC40 && AC3>0 && AC2>0 && AC1<0) && (AC40 && AC4>0 && AC3>0 && AC2>0 && AC1>0) && (AC5AC3 && AC3>AC2 && AC2>AC1)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdPrevious>0) && (((AC4<0 && AC3<0 && AC2<0 && AC1<0) && (AC40 && AC3>0 && AC2>0 && AC1<0) && (AC40 && AC4>0 && AC3>0 && AC2>0 && AC1>0) && (AC5AC3 && AC3>AC2 && AC2>AC1)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdCurrentSignalPrevious) && (((AC4_1<0 && AC3_1<0 && AC2_1<0 && AC1_1<0) && (AC4_10 && AC3_1>0 && AC2_1>0 && AC1_1<0) && (AC4_10 && AC4_1>0 && AC3_1>0 && AC2_1>0 && AC1_1>0) && (AC5_1AC3_1 && AC3_1>AC2_1 && AC2_1>AC1_1)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdPrevious>0) && (((AC4_1<0 && AC3_1<0 && AC2_1<0 && AC1_1<0) && (AC4_10 && AC3_1>0 && AC2_1>0 && AC1_1<0) && (AC4_10 && AC4_1>0 && AC3_1>0 && AC2_1>0 && AC1_1>0) && (AC5_1AC3_1 && AC3_1>AC2_1 && AC2_1>AC1_1)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdCurrentSignalPrevious) && (((AC4_2<0 && AC3_2<0 && AC2_2<0 && AC1_2<0) && (AC4_20 && AC3_2>0 && AC2_2>0 && AC1_2<0) && (AC4_20 && AC4_2>0 && AC3_2>0 && AC2_2>0 && AC1_2>0) && (AC5_2AC3_2 && AC3_2>AC2_2 && AC2_2>AC1_2)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdPrevious>0) && (((AC4_2<0 && AC3_2<0 && AC2_2<0 && AC1_2<0) && (AC4_20 && AC3_2>0 && AC2_2>0 && AC1_2<0) && (AC4_20 && AC4_2>0 && AC3_2>0 && AC2_2>0 && AC1_2>0) && (AC5_2AC3_2 && AC3_2>AC2_2 && AC2_2>AC1_2)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdCurrentSignalPrevious) && (((AC4_3<0 && AC3_3<0 && AC2_3<0 && AC1_3<0) && (AC4_30 && AC3_3>0 && AC2_3>0 && AC1_3<0) && (AC4_30 && AC4_3>0 && AC3_3>0 && AC2_3>0 && AC1_3>0) && (AC5_3AC3_3 && AC3_3>AC2_3 && AC2_3>AC1_3)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdPrevious>0) && (((AC4_3<0 && AC3_3<0 && AC2_3<0 && AC1_3<0) && (AC4_30 && AC3_3>0 && AC2_3>0 && AC1_3<0) && (AC4_30 && AC4_3>0 && AC3_3>0 && AC2_3>0 && AC1_3>0) && (AC5_3AC3_3 && AC3_3>AC2_3 && AC2_3>AC1_3)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdCurrentSignalPrevious) && (((AC4_4<0 && AC3_4<0 && AC2_4<0 && AC1_4<0) && (AC4_40 && AC3_4>0 && AC2_4>0 && AC1_4<0) && (AC4_40 && AC4_4>0 && AC3_4>0 && AC2_4>0 && AC1_4>0) && (AC5_4AC3_4 && AC3_4>AC2_4 && AC2_4>AC1_4)))) ExtMapBuffer2[i]=Low[i]-15*Point; if((MacdCurrent<0 && MacdPrevious>0) && (((AC4_4<0 && AC3_4<0 && AC2_4<0 && AC1_4<0) && (AC4_40 && AC3_4>0 && AC2_4>0 && AC1_4<0) && (AC4_40 && AC4_4>0 && AC3_4>0 && AC2_4>0 && AC1_4>0) && (AC5_4AC3_4 && AC3_4>AC2_4 && AC2_4>AC1_4)))) ExtMapBuffer2[i]=Low[i]-15*Point; } //---- return(0); } //+------------------------------------------------------------------+