Darvas Box Indicator For MT5
Table Of Contents:
- Darvas Box Indicator For MT5
- Instaliranje riječi Darvas Box Indicator For MT5
- Parametri Darvas Box Indicator For MT5
- Puferi Darvas Box Indicator For MT5
- Glavni dijelovi kodeksa
Pokazatelj Darvas Box Indicator For MT5 zasnovan je na radu Nicolasa Darvasa. Darvas kutije se koriste za trgovinu u smjeru novih uspona i novih losa. Kutije olakšavaju otkrivanje takvih proboja. Ovaj indikator crta kanal na osnovu izračuna darvas box-a. Gornja granica kanala je nacrtana plavom bojom, dok je donja granica kanala nacrtana ljubičastom bojom.
Instaliranje riječi Darvas Box Indicator For MT5
Nakon što preuzmete indikator preko gornjeg obrasca, morate raspakirati zip datoteku. Tada morate kopirati datoteku darvasboxes.mq5 u mapu MQL5Indicators vaše MT5 instalacije. Nakon toga ponovno pokrenite MT5 i tada ćete indikator moći vidjeti na popisu pokazatelja.
Parametri Darvas Box Indicator For MT5
Darvas Box Indicator For MT5 ima 2 parametre za konfiguriranje.
input bool symmetry=false; input int Shift=0; // Horizontal shift of the indicator in bars
Puferi Darvas Box Indicator For MT5
Darvas Box Indicator For MT5 osigurava 2 međuspremnike.
SetIndexBuffer(0,UpperBuffer,INDICATOR_DATA); SetIndexBuffer(1,LowerBuffer,INDICATOR_DATA);
Glavni dijelovi kodeksa
int OnCalculate(const int rates_total, // number of bars in history at the current tick const int prev_calculated,// number of bars calculated at previous call const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking the number of bars to be enough for the calculation if(rates_total lt start) return(0); //---- indexing elements in arrays as timeseries ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); //---- declaration of integer variables int limit,bar; //---- declaration of static variables static int state,STATE; static double box_top,box_bottom,BOX_TOP,BOX_BUTTOM; //---- calculations of the limit starting index for the bars recalculation loop if(prev_calculated gt rates_total || prev_calculated lt =0)// checking for the first start of the indicator calculation { limit=rates_total-start; // starting index for calculation of all bars BOX_TOP=high[limit+1]; BOX_BUTTOM=low[limit+1]; STATE=1; } else { limit=rates_total-prev_calculated; // starting index for calculation of new bars } //---- restore values of the variables state=STATE; box_top=BOX_TOP; box_bottom=BOX_BUTTOM; //---- main indicator calculation loop for(bar=limit; bar gt =0; bar--) { //---- store values of the variables before running at the current bar if(rates_total!=prev_calculated && bar==0) { STATE=state; BOX_TOP=box_top; BOX_BUTTOM=box_bottom; } switch(state) { case 1: box_top=high[bar]; if(symmetry)box_bottom=low[bar]; break; case 2: if(box_top lt =high[bar]) box_top=high[bar]; break; case 3: if(box_top gt high[bar]) box_bottom=low[bar]; else box_top=high[bar]; break; case 4: if(box_top gt high[bar]) {if(box_bottom gt = low[bar]) box_bottom=low[bar];} else box_top=high[bar]; break; case 5: if(box_top gt high[bar]) {if(box_bottom gt = low[bar]) box_bottom=low[bar];} else box_top=high[bar]; state=0; break; } UpperBuffer[bar] = box_top; LowerBuffer[bar] = box_bottom; state++; } //---- return(rates_total); } //+------------------------------------------------------------------+