//+------------------------------------------------------------------+//| RainbowSignal.mq4 |//| |//| |//+------------------------------------------------------------------+#property indicator_separate_window#property indicator_buffers 3#property indicator_color2 Green#property indicator_color3 Redextern string _comment01 = "MAMode:0=SMA,1=EMA,2=SMMA,3=LWMA";extern int mamoderainbow = 1;extern string _comment02 = "MAprice:0=Close,1=Open,2=High,3=Low,4=Median,5=Typical,6=Weighted";extern int maprice = 0;extern int maperiod = 10;extern int shift = 1;//---- input parameters//---- buffersdouble Signal[];double SignalUP[];double SignalDOWN[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() { IndicatorBuffers(3); SetIndexDrawBegin(0, 10); SetIndexDrawBegin(1, 10); SetIndexDrawBegin(2, 10); SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,Signal); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,SignalUP); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexBuffer(2,SignalDOWN); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Rainbow Signal");//---- initialization done return(0); }//+------------------------------------------------------------------+//| Trade Zone Power |//+------------------------------------------------------------------+int start() { int limit; int counted_bars=IndicatorCounted();//---- check for possible errors if(counted_bars<0) return(-1);//---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { double ma1=iMA(NULL,0,maperiod,0,mamoderainbow,maprice,shift+i); double ma2=iMA(NULL,0,maperiod+4,0,mamoderainbow,maprice,shift+i); double ma3=iMA(NULL,0,maperiod+8,0,mamoderainbow,maprice,shift+i); double ma4=iMA(NULL,0,maperiod+12,0,mamoderainbow,maprice,shift+i); double ma5=iMA(NULL,0,maperiod+16,0,mamoderainbow,maprice,shift+i); double ma6=iMA(NULL,0,maperiod+20,0,mamoderainbow,maprice,shift+i); double ma7=iMA(NULL,0,maperiod+24,0,mamoderainbow,maprice,shift+i); double ma8=iMA(NULL,0,maperiod+28,0,mamoderainbow,maprice,shift+i); double ma9=iMA(NULL,0,maperiod+32,0,mamoderainbow,maprice,shift+i); double ma10=iMA(NULL,0,maperiod+36,0,mamoderainbow,maprice,shift+i); double ma11=iMA(NULL,0,maperiod+40,0,mamoderainbow,maprice,shift+i); double ma12=iMA(NULL,0,maperiod+44,0,mamoderainbow,maprice,shift+i); Signal[ i ]=0; SignalUP[ i ]=0; SignalDOWN[ i ]=0; if(ma1>ma2 && ma2>ma3 && ma3>ma4 && ma4>ma5 && ma5>ma6 && ma6>ma7 && ma7>ma8 && ma8>ma9 && ma9>ma10 && ma10>ma11 && ma11>ma12) { Signal[ i ]=1; SignalUP[ i ]=1; } else if(ma1<ma2&& ma2<ma3&& ma3<ma4&& ma4<ma5&& ma5<ma6&& ma6<ma7&& ma7<ma8&& ma8<ma9&& ma9<ma10&& ma10<ma11&& ma11<ma12) { Signal[ i ]=-1; SignalDOWN[ i ]=-1; } } //---- done return(0); }//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| RainbowSignal.mq4 |//| |//| |//+------------------------------------------------------------------+#property indicator_separate_window#property indicator_buffers 3#property indicator_color2 Green#property indicator_color3 Redextern string _comment01 = "MAMode:0=SMA,1=EMA,2=SMMA,3=LWMA";extern int mamoderainbow = 1;extern string _comment02 = "MAprice:0=Close,1=Open,2=High,3=Low,4=Median,5=Typical,6=Weighted";extern int maprice = 0;extern int maperiod = 10; // schnellster MAextern int maperiodincrease = 4; // Abstand der MAextern int macount = 12; // Anzahl der MAextern int shift = 1;//---- input parameters//---- buffersdouble Signal[];double SignalUP[];double SignalDOWN[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() { IndicatorBuffers(3); SetIndexDrawBegin(0, 100); SetIndexDrawBegin(1, 100); SetIndexDrawBegin(2, 100); SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,Signal); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,SignalUP); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexBuffer(2,SignalDOWN); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Rainbow Signal");//---- initialization done return(0); }//+------------------------------------------------------------------+//| Trade Zone Power |//+------------------------------------------------------------------+int start() { int limit; int counted_bars=IndicatorCounted();//---- check for possible errors if(counted_bars<0) return(-1);//---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { bool upOK = true; bool downOK = true; double prevma = 0; for (int x= 0;x< macount; x++) { double ma=iMA(NULL,0,maperiod+(maperiodincrease * x),0,mamoderainbow,maprice,shift+i); if (x == 0) { double ma0 = ma; } else if (ma > prevma) { upOK = false; } else if (ma < prevma) { downOK = false; } prevma = ma; } double aktdistance = MathAbs( ma - ma0 ); double olddistance = MathAbs(iMA(NULL,0,maperiod,0,mamoderainbow,maprice,shift+i+1) - iMA(NULL,0,maperiod+(maperiodincrease * (macount -1)),0,mamoderainbow,maprice,shift+i+1)); int SignalValue = 1; if ( aktdistance > olddistance) SignalValue = 2; Signal[ i ]=0; SignalUP[ i ]=0; SignalDOWN[ i ]=0; if(upOK) { Signal[ i ]= SignalValue; SignalUP[ i ]= SignalValue; } else if(downOK) { Signal[ i ]= - (SignalValue); SignalDOWN[ i ]= - (SignalValue); } } //---- done return(0); }//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| RainbowSignal.mq4 |//| Copyright © 2010, ForexDigger |//| |//+------------------------------------------------------------------+#property copyright "Copyright © 2010, ForexDigger"#property link "http://www.ForexDigger.de"#property indicator_separate_window#property indicator_buffers 5#property indicator_color2 Green#property indicator_color3 Red#property indicator_color4 Yellow#property indicator_color5 Orange#property indicator_maximum 2.2#property indicator_minimum -2.2#property indicator_level1 0#property indicator_levelcolor White#property indicator_levelwidth 1#property indicator_levelstyle STYLE_DOTextern int mamoderainbow = 1; // 0=SMA,1=EMA,2=SMMA,3=LWMAextern int maprice = 0; // 0=Close,1=Open,2=High,3=Low,4=Median,5=Typical,6=Weightedextern int maperiod = 10; // fastest MAextern int maperiodincrease = 4; // increase of MA periods for the next MAsextern int macount = 12; // count of MAsextern int shift = 1; // 0 = current bar, 1= last barextern int BarPercent = 75; // if Shift = 0, Signal after x percent of bar time//---- input parameters//---- buffersdouble Signal[];double SignalUP[];double SignalDOWN[];double SignalUPx[];double SignalDOWNx[];int SignalPossibleAfter;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() { IndicatorBuffers(5); SetIndexDrawBegin(0, 100); SetIndexDrawBegin(1, 100); SetIndexDrawBegin(2, 100); SetIndexDrawBegin(3, 100); SetIndexDrawBegin(4, 100); SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,Signal); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,SignalUP); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexBuffer(2,SignalDOWN); SetIndexStyle(3,DRAW_HISTOGRAM); SetIndexBuffer(3,SignalUPx); SetIndexStyle(4,DRAW_HISTOGRAM); SetIndexBuffer(4,SignalDOWNx); SignalPossibleAfter = MathFloor(Period() * 0.01 * BarPercent * 60);//---- name for DataWindow and indicator subwindow label IndicatorShortName("Rainbow Signal");//---- initialization done return(0); }//+------------------------------------------------------------------+//| Trade Zone Power |//+------------------------------------------------------------------+int start() { int limit; int counted_bars=IndicatorCounted();//---- check for possible errors if(counted_bars<0) return(-1);//---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { bool upOK = true; bool downOK = true; double prevma = 0; for (int x= 0;x< macount; x++) { double ma=iMA(NULL,0,maperiod+(maperiodincrease * x),0,mamoderainbow,maprice,shift+i); if (x == 0) { double ma0 = ma; } else if (ma > prevma) { upOK = false; } else if (ma < prevma) { downOK = false; } prevma = ma; } double aktdistance = MathAbs( ma - ma0 ); double olddistance = MathAbs(iMA(NULL,0,maperiod,0,mamoderainbow,maprice,shift+i+1) - iMA(NULL,0,maperiod+(maperiodincrease * (macount -1)),0,mamoderainbow,maprice,shift+i+1)); int SignalValue = 1; if ( aktdistance > olddistance) SignalValue = 2; Signal[ i ]=0; SignalUP[ i ]=0; SignalDOWN[ i ]=0; SignalUPx[ i ]=0; SignalDOWNx[ i ]=0; if ( i>0 || shift > 0 || TimeCurrent() > (iTime(NULL,0,0)+SignalPossibleAfter)) { if(upOK) { Signal[ i ]= SignalValue; SignalUP[ i ]= SignalValue; SignalUPx[ i ]= 0; } else if(downOK) { Signal[ i ]= - (SignalValue); SignalDOWN[ i ]= - (SignalValue); SignalDOWNx[ i ]= 0; } } else { if(upOK) { SignalUPx[ i ]= SignalValue; } else if(downOK) { SignalDOWNx[ i ]= - (SignalValue); } } } //---- done return(0); }//+------------------------------------------------------------------+
Begonnen von DjangoFX Relative Strength Index
Begonnen von R2D2 Trader Bücher und Videos
Begonnen von elmcceen Trendfolger
Begonnen von R2D2 Trader Trendfolger
Begonnen von FX2011 Allgemeine Fragen