//+------------------------------------------------------------------+ //| REI.mq4 | //| Mishutka | //| www.ourarsenal.narod.ru | //+------------------------------------------------------------------+ #property copyright "Mishutka" #property link "www.ourarsenal.narod.ru" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ extern int lenght=8; extern int NBars=100; double REABS[21]; double RE[21]; double REI; double SUM; double SUMABS; int Z; double TDREI; double WORK[]; int init() { REI=0; SUM=0; SUMABS=0; Z=0; TDREI=0; int www=14; IndicatorBuffers(1); SetIndexBuffer(0,WORK); //---- drawing settings SetIndexLabel(0,"REI"); //SetIndexDrawBegin(0,0); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1); //---- indicator buffers mapping //---- name for DataWindow and indicator subwindow label //---- initialization done return(0); } int start() { Sleep(100); int counted_bars=IndicatorCounted(); int limit; //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- rei counted in the 1-st buffer //Äëÿ ýòîãî ÿ ñðàâíèâàþ öåíîâûå ìàêñèìóì è ìèíèìóì â îïðåäåëåííûé äåíü ñ ìàêñèìóìîì è ìèíèìóìîì çà äâà äíÿ äî ýòîãî. //Ïîëîæèòåëüíàÿ ðàçíîñòü ôèêñèðóåòñÿ òîãäà, êîãäà ìàêñèìàëüíàÿ öåíà âûøå, ÷åì äâà äíÿ íàçàä. Îòðèöàòåëüíàÿ ðàçíîñòü // ôèêñèðóåòñÿ òîãäà, êîãäà ýòà ìàêñèìàëüíàÿ öåíà ìåíüøå, ÷åì äâà äíÿ íàçàä. Åñëè ìèíèìàëüíàÿ öåíà âûøå ìèíèìàëüíîé //öåíû äâà äíÿ òîìó íàçàä, òî ôèêñèðóåòñÿ ïîëîæèòåëüíàÿ ðàçíîñòü. Åñëè îíà ìåíüøå, ÷åì äâà äíÿ íàçàä, òî ôèêñèðóåòñÿ î //òðèöàòåëüíàÿ ðàçíîñòü. Çàòåì äâà ïîëó÷åííûõ çíà÷åíèÿ ñóììèðóþòñÿ è îïðåäåëÿåòñÿ çíà÷åíèå äëÿ äàííîãî äíÿ. for (int shift=limit;shift>=0;shift--) { RE[0]=(High[shift]-High[shift+2])+(Low[shift]-Low[shift+2]); REABS[0]=MathAbs(High[shift]-High[shift+2])+MathAbs(Low[shift]-Low[shift+2]); SUM=0; SUMABS=0; for (Z=0;Z<=lenght-1;Z++) { SUM=SUM+RE[Z]; SUMABS=SUMABS+REABS[Z]; } if (SUMABS>0) {REI=SUM/SUMABS;} TDREI=100*REI; if (TDREI==0) {TDREI=0.00001;} WORK[shift]=TDREI; for (Z=21;Z>=0;Z--) { RE[Z]=RE[Z-1]; REABS[Z]=REABS[Z-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_LINE
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: