//+------------------------------------------------------------------+ //| Vinin HighLow v1.mq4 | //| Victor Nicolaev | //| vinin@mail.ru | //+------------------------------------------------------------------+ #property copyright "Victor Nicolaev" #property link "vinin@mail.ru" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red //#property indicator_level1 0 extern int MA_Start=3; extern int MA_Count=600; extern int MA_Period=3; extern int Limit=1440; //---- buffers double BufferUP[]; double BufferDN[]; double tmp[]; double MA[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings IndicatorBuffers(4); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(0,BufferUP); SetIndexBuffer(1,BufferDN); SetIndexBuffer(2,MA); SetIndexBuffer(3,tmp); return(0); }//int init() //+------------------------------------------------------------------+ int start() { int limit1, limit2; int counted_bars=IndicatorCounted(); int i,j; double sum,av; double Res; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit1=Bars-counted_bars; if (Limit>0) limit1=MathMin(Limit,limit1); limit2=limit1; if (counted_bars==0) limit1=limit2+MA_Period; for (i = limit1;i>=0;i--){ sum=0; Res=0; for (j=1;j<=MA_Count;j++) { Res+=(Close[i]-Close[j+i])*j; } MA[i]=Res/MA_Count; } for (i = limit2;i>=0;i--) { tmp[i]=iMAOnArray(MA,0,MA_Period,0,MODE_SMA,i); BufferUP[i]=0; BufferDN[i]=0; if (tmp[i]>tmp[i+1]) BufferUP[i]=tmp[i]; else BufferDN[i]=tmp[i]; } return(0); }
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Indicator Curves created:
Implements a curve of type DRAW_HISTOGRAM
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: