Indicateurs: Bollinger Bandwidth 1.0 for MetaTrader 5

 

Bollinger Bandwidth 1.0 for MetaTrader 5:

L'indicateur mesure la distance entre les Bandes de Bollinger ® et le fournit comme un indicateur singulier, en utilisant les techniques de MetaTrader 5 pour simplifier les calculs de Bollinger.

Bollinger Bandwidth 1.0 for MetaTrader 5

Author: Larry

 
Automated-Trading писал(а)  :

Bollinger Bandwidth 1.0 pour MT5:

Auteur : Larry

distance entre les BB = 2 * RMS...
 

Enfin, après quelques années de trading avec BollingerBand... J'ai trouvé cet indicateur simple et utile pour calculer la fourchette BB supérieure/inférieure.....

Il fonctionne très bien sur les paires principales mais il y a toujours un bug quand on l'attache au JPY (EURJPY & USDJPY) dans le broker,,,,, à 4 chiffres la valeur de la largeur est incorrecte.

J'espère qu'il y aura une v2.0 , pour corriger ce problème.

Dossiers :
JPY_Value.jpg  38 kb
 

Salut Larry, merci pour l'indicateur. Je recommanderais de ne pas copier toutes les données à chaque fois, car cela conduit à une perte de performance massive.

Voici une copie revisitée de ta méthode OnCalculate() :


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

// --- Transformer les tableaux en tableaux dynamiques en série 
// ArraySetAsSeries(lower_band,true) ;
// ArraySetAsSeries(upper_band,true) ;
// ArraySetAsSeries(BBandwidthBuffer,true) ;

//--- vérifier si toutes les données sont calculées
   if(BarsCalculated(BBHandle)<rates_total) return(0);
//--- nous pouvons copier toutes les données
   
   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];
     }

//--- retour de la valeur de prev_calculated pour le prochain appel
   return(rates_total);
  }
 
J'ai réalisé une version avec la formule suivante : bande passante = (( bande supérieure - bande inférieure ) / bande médiane ) * 100
Dossiers :