Indikatoren: Bollinger Bandwidth 1.0 für MetaTrader 5

 

Bollinger Bandwidth 1.0 für MetaTrader 5:

Der Indikator misst die Distanz der Bollinger Bänder ® und stellt diese als einzelnen Indikator dar, wobei die MetaTrader 5 Technologien verwendet werden um die Bollinger Berechnungen zu vereinfachen.

Bollinger Bandwidth für MetaTrader 5

Autor: Larry

 

Hi Larry, thanks for the indicator. I'd recommend to not copy all the data all the time, as this leads to massive performance drawback.

Here is a revisited copy of your OnCalculate() method:


  {
//--- variables
   double upper_band[];
   double lower_band[];

// --- Turn the arrays into dynamic series arrays   
//   ArraySetAsSeries(lower_band,true);
//   ArraySetAsSeries(upper_band,true);
//   ArraySetAsSeries(BBandwidthBuffer,true);

//--- check if all data calculated
   if(BarsCalculated(BBHandle)<rates_total) return(0);
//--- we can copy all data
   
   int barstocopy = 0;
   if(prev_calculated>rates_total||prev_calculated<=0) {
      barstocopy = rates_total;
   } else {
      barstocopy = rates_total-prev_calculated;
      if(prev_calculated>0) barstocopy++;
   }

   if(IsStopped()) return(0);
   
   if(CopyBuffer(BBHandle,1,0,barstocopy,upper_band) <=0) return(0);
   if(CopyBuffer(BBHandle,2,0,barstocopy,lower_band) <=0) return(0);

   for(int i=0;i<barstocopy-1;i++)
     {
         BBandwidthBuffer[i]=upper_band[i]-lower_band[i];
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }