Quantile Bands Indicator For MT5

Quantile Bands Indicator For MT5

Table Of Contents:

  1. Quantile Bands Indicator For MT5
  2. Installation des Quantile Bands Indicator For MT5
  3. Parameter des Quantile Bands Indicator For MT5
  4. Puffer des Quantile Bands Indicator For MT5
  5. Hauptteile des Codes

Der Quantile Bands Indicator For MT5 ist ein brillant erstelltes technisches Handelsinstrument, das die Haupthandelsaktivität eines Vermögenswerts in ein dreischichtiges Band kanalisiert, das auf der Grundlage von drei Quantilwerten berechnet wird. Diese Quantilwerte werden durch eine statistische Berechnung abgeleitet, die berechnet wird Schnittpunkte durch Teilen des Bereichs einer Wahrscheinlichkeitsverteilung in Intervalle mit gleichen Wahrscheinlichkeiten. Dieser Kanalindikator ist eine großartige Ressource, da die meisten überverkauften und überkauften Erkennungsoszillatoren normalerweise in einem separaten Fenster unter dem aktiven Hauptdiagramm dargestellt werden. Mit diesem Indikator ist es jedoch so, als hätte man ein überverkauftes und überkauftes Analysetool direkt auf dem Handelsdiagramm Dies überlagert die Preisaktion selbst, wobei die Preisaktion für die Mustererkennung und technische Analyse immer noch deutlich sichtbar ist. Wenn Händler sehen, dass die Preisaktion über das obere Band des Kanals hinaus und darüber hinaus handelt, können sie dies als Umkehrsignal behandeln, um einen Verkaufshandel mit dem im mittleren Band festgelegten Take-Profit-Ziel zu eröffnen - immer dann, wenn die Preisaktion unter und über das obere Band hinausgeht Unteres Band, dann kann der Händler wählen, einen Kaufhandel in die entgegengesetzte Richtung zu eröffnen, wobei das mittlere Band als TP-Ziel festgelegt ist.

FREE Quantile Bands Indicator

Download the FREE Quantile Bands Indicator for MT5.

To receive my email 100% sure: 
Put my email on your whitelist!

 

Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

 

Installation des Quantile Bands Indicator For MT5

Nachdem Sie den Indikator über das obige Formular heruntergeladen haben, müssen Sie die Zip-Datei entpacken. Anschließend müssen Sie die Datei Quantile_bands_1.3.mq5 in den Ordner MQL5Indicators Ihrer MT5 Installation kopieren. Starten Sie danach MT5 neu und Sie können den Indikator in der Liste der Indikatoren sehen.

Parameter des Quantile Bands Indicator For MT5

Der Quantile Bands Indicator For MT5 verfügt über 7 zu konfigurierende Parameter.

input int             Periods           = 35;             // Quantile period input enPrices        PriceUp           = pr_high;        // Price to use for high quantile value input enPrices        PriceMid          = pr_median;      // Price to use for middle quantile value input enPrices        PriceDown         = pr_low;         // Price to use for low quantile value input double          UpperBandPercent  = 90;             // Upper band percent input double          LowerBandPercent  = 10;             // Lower band percent input double          MedianBandPercent = 50;             // Median percent 

Puffer des Quantile Bands Indicator For MT5

Der Quantile Bands Indicator For MT5 stellt 5 Puffer bereit.

SetIndexBuffer(0,fupu,INDICATOR_DATA);      SetIndexBuffer(1,fupd,INDICATOR_DATA); SetIndexBuffer(2,fdnu,INDICATOR_DATA);      SetIndexBuffer(3,fdnd,INDICATOR_DATA); SetIndexBuffer(4,bufferUp ,INDICATOR_DATA); SetIndexBuffer(5,bufferUpc,INDICATOR_COLOR_INDEX); SetIndexBuffer(6,bufferDn ,INDICATOR_DATA); SetIndexBuffer(7,bufferDnc,INDICATOR_COLOR_INDEX); SetIndexBuffer(8,bufferMe ,INDICATOR_DATA); 

Hauptteile des Codes

int OnCalculate (const int rates_total,                  const int prev_calculated,                  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[]) {    for (int i=(int)MathMax(prev_calculated-1,0); i lt rates_total && !IsStopped(); i++)    {       bufferUp[i] = iQuantile(getPrice(PriceUp  ,open,close,high,low,i,rates_total,0),Periods,UpperBandPercent ,i,rates_total,0);       bufferDn[i] = iQuantile(getPrice(PriceDown,open,close,high,low,i,rates_total,1),Periods,LowerBandPercent ,i,rates_total,1);       bufferMe[i] = iQuantile(getPrice(PriceMid ,open,close,high,low,i,rates_total,2),Periods,MedianBandPercent,i,rates_total,2);       fupd[i]     = bufferMe[i]; fupu[i] = bufferUp[i];        fdnu[i]     = bufferMe[i]; fdnd[i] = bufferDn[i];        if (i gt 0)       {          bufferUpc[i] = bufferUpc[i-1];          bufferDnc[i] = bufferDnc[i-1];           //          //          //          //          //                                      if (bufferUp[i] gt bufferUp[i-1]) bufferUpc[i] = 0;          if (bufferUp[i] lt bufferUp[i-1]) bufferUpc[i] = 1;          if (bufferDn[i] gt bufferDn[i-1]) bufferDnc[i] = 0;          if (bufferDn[i] lt bufferDn[i-1]) bufferDnc[i] = 1;       }                         }             return(rates_total);          }  //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // //  #define quantileInstances 3 double quantileValues[][quantileInstances]; double quantileArray[]; double iQuantile(double value, int period, double qp, int i, int bars, int instanceNo=0) {    if (ArrayRange(quantileArray ,0)!=period) ArrayResize(quantileArray ,period);    if (ArrayRange(quantileValues,0)!=bars)   ArrayResize(quantileValues,bars);                   quantileValues[i][instanceNo] = value;                         for(int k=0; k lt period && (i-k) gt =0; k++) quantileArray[k] = quantileValues[i-k][instanceNo];        ArraySort(quantileArray);     //    //    //    //    //        double index = (period-1)*qp/100.00;    int    ind   = (int)index;    double delta = index - ind;    if (ind == NormalizeDouble(index,5))          return(            quantileArray[ind]);    else  return((1.0-delta)*quantileArray[ind]+delta*quantileArray[ind+1]); }  //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // // //  #define priceInstances 3 double workHa[][priceInstances*4]; double getPrice(int tprice, const double& open[], const double& close[], const double& high[], const double& low[], int i,int bars, int instanceNo=0) {   if (tprice gt =pr_haclose)    {       if (ArrayRange(workHa,0)!= bars) ArrayResize(workHa,bars); instanceNo*=4; int r = i;                    //          //          //          //          //                    double haOpen;          if (r gt 0)                 haOpen  = (workHa[r-1][instanceNo+2] + workHa[r-1][instanceNo+3])/2.0;          else   haOpen  = (open[i]+close[i])/2;          double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0;          double haHigh  = MathMax(high[i], MathMax(haOpen,haClose));          double haLow   = MathMin(low[i] , MathMin(haOpen,haClose));           if(haOpen   lt haClose) { workHa[r][instanceNo+0] = haLow;  workHa[r][instanceNo+1] = haHigh; }           else                 { workHa[r][instanceNo+0] = haHigh; workHa[r][instanceNo+1] = haLow;  }                                  workHa[r][instanceNo+2] = haOpen;                                 workHa[r][instanceNo+3] = haClose;          //          //          //          //          //                    switch (tprice)          {             case pr_haclose:     return(haClose);             case pr_haopen:      return(haOpen);             case pr_hahigh:      return(haHigh);             case pr_halow:       return(haLow);             case pr_hamedian:    return((haHigh+haLow)/2.0);             case pr_hamedianb:   return((haOpen+haClose)/2.0);             case pr_hatypical:   return((haHigh+haLow+haClose)/3.0);             case pr_haweighted:  return((haHigh+haLow+haClose+haClose)/4.0);             case pr_haaverage:   return((haHigh+haLow+haClose+haOpen)/4.0);             case pr_hatbiased:                if (haClose gt haOpen)                      return((haHigh+haClose)/2.0);                else  return((haLow+haClose)/2.0);                  }    }        //    //    //    //    //        switch (tprice)    {       case pr_close:     return(close[i]);       case pr_open:      return(open[i]);       case pr_high:      return(high[i]);       case pr_low:       return(low[i]);       case pr_median:    return((high[i]+low[i])/2.0);       case pr_medianb:   return((open[i]+close[i])/2.0);       case pr_typical:   return((high[i]+low[i]+close[i])/3.0);       case pr_weighted:  return((high[i]+low[i]+close[i]+close[i])/4.0);       case pr_average:   return((high[i]+low[i]+close[i]+open[i])/4.0);       case pr_tbiased:                   if (close[i] gt open[i])                      return((high[i]+close[i])/2.0);                else  return((low[i]+close[i])/2.0);            }    return(0); }    

 

About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group


Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.