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