Sem Black





//+------------------------------------------------------------------+
//|                                  Áîëüøàÿ Êîëëåêöèÿ Ñåìàôîðîâ.mq4 |
//+------------------------------------------------------------------+
#property copyright "Ñåðãååâ Àëåêñåé (ñ) 2007"

#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 1
#property indicator_buffers 4
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 1
#property indicator_width4 1
#property indicator_color1 Crimson
#property indicator_color2 LimeGreen
#property indicator_color3 Crimson
#property indicator_color4 LimeGreen
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID
#property indicator_style3 STYLE_SOLID
#property indicator_style4 STYLE_SOLID
//---- input parameters
extern int     Minutes=0;
extern int     MA=20;
extern int     rsiPeriod=3;
extern int		Mode=MODE_EMA;//0-sma, 1-ema, 2-smma, 3-lwma
extern int		Price=PRICE_MEDIAN;//0-close, 1-open, 2-high, 3-low, 4-median, 5-typic, 6-wieight

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];

int init()
{
//---- indicators
	SetIndexStyle(0,DRAW_HISTOGRAM);	SetIndexBuffer(0,ExtMapBuffer1);
	SetIndexStyle(1,DRAW_HISTOGRAM);	SetIndexBuffer(1,ExtMapBuffer2);
	SetIndexStyle(2,DRAW_HISTOGRAM);	SetIndexBuffer(2,ExtMapBuffer3);
	SetIndexStyle(3,DRAW_HISTOGRAM);	SetIndexBuffer(3,ExtMapBuffer4);

   string Name = "Black("+MA+","+rsiPeriod+")";
   IndicatorShortName(Name);  

	return(0);
}
int deinit()  { return(0); }

int start()
{
   double rs, rf, rsi, rsiPre;
//----
	if (MA<4) MA = 4;

	for (int i = 0; i <= Bars; i++)
	{
		ExtMapBuffer1[i]=0;
		ExtMapBuffer2[i]=0;
		ExtMapBuffer3[i]=0;
		ExtMapBuffer4[i]=0;

		rs=iMA(NULL, Minutes, MA, 0, Mode, Price, i);
		rf=iMA(NULL, Minutes, MA-3, 0, Mode, Price, i);

		rsi = iRSI(NULL, Minutes, rsiPeriod, Price, i);
		rsiPre = iRSI(NULL, Minutes, rsiPeriod, Price, i+1);
		
		if ((rsiPre>75) && (rsi<rsiPre) && (rf<rs))  ExtMapBuffer1[i] = 1;//ïðîäàåì
		if ((rsiPre<25) && (rsi>rsiPre) && (rf>rs))  ExtMapBuffer2[i] = 1;//ïîêóïàåì

		if (ExtMapBuffer1[i]==0 && ExtMapBuffer2[i] == 0) 
		{
			if (rs>rf) ExtMapBuffer3[i]=1; // ïðîäàåì ñëàáî
			if (rs<rf) ExtMapBuffer4[i]=1; // ïîêóïàåì ñëàáî 
		}
	}
	return(0);
}
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM


Indicators Used:

Moving average indicator
Relative strength index


Custom Indicators Used:

Order Management characteristics:

Other Features: