Sem Envelop





//+------------------------------------------------------------------+
//|                                  Áîëüøàÿ Êîëëåêöèÿ Ñåìàôîðîâ.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 double	Deviation=0.6;

extern int       Mode=MODE_SMA;//0-sma, 1-ema, 2-smma, 3-lwma
extern int       Price=PRICE_CLOSE;//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 = "Envelopes("+MA+","+DoubleToStr(Deviation, 3)+")";
   IndicatorShortName(Name);  

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

int start()
{
   double envH, envL, m, envH0;
//----

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

		envH=iEnvelopes(NULL, Minutes, MA, Mode, 0, Price, Deviation, MODE_UPPER, i); 
		envL=iEnvelopes(NULL, Minutes, MA, Mode, 0, Price, Deviation, MODE_LOWER, i); 
		envH0=iEnvelopes(NULL, Minutes, MA, Mode, 0, Price, Deviation, MODE_UPPER, i+1); 
		
		m = (Low[i]+High[i])/2;
		if (envH<m){ ExtMapBuffer1[i] = 1; }//ïðîäàåì
		if (envL>m){ ExtMapBuffer2[i] = 1; }//ïîêóïàåì

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



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar


Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM


Indicators Used:

Envelopes indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: