//+------------------------------------------------------------------+ //| arrSRCx2MA.mq4 | //+------------------------------------------------------------------+ // Íåîáõîäèìî íàëè÷èå SRCma.mq4 // Presence SRCma.mq4 is necessary //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Bookkeeper" #property link "yuzefovich@gmail.com" //---- #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 Blue #property indicator_color4 Red //---- extern int IndPeriod1=3; extern int IndPeriod2=10; extern int CalculatedBars=500; extern int rangeN=14; extern int MAPeriod=13; double up_buffer1[]; double dn_buffer1[]; double up_buffer2[]; double dn_buffer2[]; double ind_buffer1[]; double ind_buffer2[]; double ind_buffer3[]; //+------------------------------------------------------------------+ int init() { IndicatorBuffers(7); SetIndexStyle(0,DRAW_ARROW); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(0,233); SetIndexArrow(1,234); SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,2); SetIndexStyle(3,DRAW_HISTOGRAM,EMPTY,2); SetIndexBuffer(0,up_buffer1); SetIndexBuffer(1,dn_buffer1); SetIndexBuffer(2,up_buffer2); SetIndexBuffer(3,dn_buffer2); SetIndexBuffer(4,ind_buffer1); SetIndexBuffer(5,ind_buffer2); SetIndexBuffer(6,ind_buffer2); return(0); } //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { int limit, i, counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; if(CalculatedBars<500) CalculatedBars=500; if(limit>CalculatedBars) limit=CalculatedBars; for(i=limit;i>=0;i--) { double Ind1=iCustom(NULL,0,"SRCma",CalculatedBars+IndPeriod2+1,rangeN,IndPeriod1,1,i); double Ind2=iCustom(NULL,0,"SRCma",CalculatedBars+IndPeriod2+1,rangeN,IndPeriod2,1,i); ind_buffer2[i]=Ind1-Ind2; ind_buffer3[i]=iMAOnArray(ind_buffer2,0,MAPeriod,0,MODE_SMA,i); ind_buffer1[i]=ind_buffer2[i]-ind_buffer3[i]; if(ind_buffer1[i]>0 && ind_buffer1[i+1]<=0) { dn_buffer1[i]=0; dn_buffer2[i]=0; up_buffer1[i]=Low[i]; up_buffer2[i]=0; } if(ind_buffer1[i]<0 && ind_buffer1[i+1]>=0) { up_buffer1[i]=0; up_buffer2[i]=0; dn_buffer1[i]=High[i]; dn_buffer2[i]=0; } if((ind_buffer1[i]>0 && ind_buffer1[i+1]>0) || (ind_buffer1[i]<0 && ind_buffer1[i+1]<0)) { dn_buffer1[i]=0; dn_buffer2[i]=0; up_buffer1[i]=0; up_buffer2[i]=0; } } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Implements a curve of type DRAW_HISTOGRAM
Indicators Used:
Moving average indicator
Custom Indicators Used:
SRCma
Order Management characteristics:
Other Features: