インディケータ: MetaTrader 5のためのBollinger Bandwidth 1.0

 

MetaTrader 5のためのBollinger Bandwidth 1.0:

このインディケータは、ボリンジャーバンド®間の距離を測定してボリンジャーの計算を簡略化するためのMetaTrader 5 の技術を使用して、シングラインディケータとして提供します。

MetaTrader 5のためのBollinger Bandwidth

作者: Larry

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

MT5用ボリンジャーバンド幅1.0

作者: Larry

BB間の距離 = 2 * RMS...
 

ボリンジャーバンドを使用して数年。このシンプルで便利なインジケーターを 見つけた。

主要なペアでは素晴らしい機能ですが、4桁のブローカーでJPY(EURJPYとUSDJPY)を使用すると、幅の値が間違っているというバグがあります。

v2.0で修正されることを期待します。

ファイル:
JPY_Value.jpg  38 kb
 

こんにちは、ラリー。すべてのデータを常にコピーしないことをお勧めします。

OnCalculate()メソッドを 再度コピーしてみました:


  {
//--- 変数
   double upper_band[];
   double lower_band[];

// --- 配列を動的直列配列にする 
// ArraySetAsSeries(lower_band,true);
// ArraySetAsSeries(upper_band,true);
// ArraySetAsSeries(BBandwidthBuffer,true);

//--- すべてのデータが計算されているかチェックする
   if(BarsCalculated(BBHandle)<rates_total) return(0);
//--- すべてのデータをコピーできる
   
   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];
     }

//--- 次の呼び出しのためにprev_calculatedの値を返す
   return(rates_total);
  }
 
帯域幅 = (( 上限帯域 - 下限帯域 ) / 中間帯域 )* 100* 100
ファイル: