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