ボリンジャーバンドをサブウインドウに表示するMT4インジケーター

BBSubアイキャッチ
  • URLをコピーしました!

ボリンジャーバンドをチャートのサブウィンドウに表示したいです。

そんなインジケーターはありますか?

ホシノ

FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。

この無料EA不労所得が稼げます
累計テスト120年以上・リアル取引公開2020年~

リアルトレード公開|EA BBF

このページでわかること・できること

〇ボリンジャーバンドをサブウインドウに表示するインジケーターの入手

〇インジケーターに対する詳しい解説


〇フィルターとしての使い方

〇ボリンジャーバンドの解説

目次

インジケーターのダウンロード

ここからボリンジャーバンドをサブウインドウに表示するインジケーター(BB Sub.ex4)ファイルのダウンロードが可能。
ダウンロードするファイルは.ex4ファイルであり、MT4データフォルダにあるインジケーターフォルダへファイルを移動すればインジケーターは使用できるようになる。

インストール方法

ダウンロードしたインジケーターはMT4のデータフォルダからindicatorsフォルダへアクセスしファイルを移動する。

ファイル>データフォルダを開く>MQL4>indicators

indicatorsフォルダにファイルを移動し、MT4を再起動すればインストールは完了する。
インストール手順の詳細は以下の記事を参照。

ボリンジャーバンドをサブウインドウに表示するインジケーターとは?

BB Subチャート画像
BB Subはチャートのサブウィンドウに表示されるボリンジャーバンドだ

BB Subはサブウィンドウにボリンジャーバンドを描画するカスタムインジケーターである。通常、ボリンジャーバンドはメインチャートに表示されるが、このインジケーターサブウィンドウに表示されるため、普段とは異なる視覚で分析が行える。

メリット

メインチャートのクリアさが向上:

  • ボリンジャーバンドをサブウインドウに表示することで、メインチャートでの視覚がクリアになる。

価格動向の視覚的な分析:

  • ボリンジャーバンドがサブウィンドウに表示されることで、価格とバンドとの関係性を直感的に把握できる。

トレンド強度を計る:

  • エクスパンション、スクイーズの判断をトレードに活かしやすくなる。

ブレイクポイントの発見:

  • スクイーズ状態を観察することで、ブレイクポイントを発見しやすくなる。

相場のボラティリティの理解:

  • エクスパンション時にはボラティリティが高まっていることが分かり、適切なリスク管理につなげられる。

機能と特徴

  1. サブウィンドウ表示:
    • ボリンジャーバンドをメインチャートではなく、サブウィンドウに表示する。
    • これにより、メインチャートの視認性が向上し、他のインジケーターと併用して分析が可能。
  2. 入力パラメータ:
    • 期間 (Period): ボリンジャーバンドの計算に使用する期間を設定。
    • 偏差 (Deviation): ボリンジャーバンドの幅を決定するための標準偏差を設定。
    • 適用価格 (Applied Price): ボリンジャーバンドの計算に使用する価格(終値、始値、高値、安値など)を選択。
  3. 3つのバンド表示:
    • 上部バンド (Upper Band): 平均価格に標準偏差の倍数を加えた値を表示。
    • 中央バンド (Middle Band): 選択された期間の移動平均を表示。
    • 下部バンド (Lower Band): 平均価格から標準偏差の倍数を引いた値を表示。
  4. 視覚的なカスタマイズ:
    • 各バンドの色やスタイルをカスタマイズすることが可能。視覚的な調整が可能となる。

使用方法

  1. インジケーターの追加:
    • MT4プラットフォームでインジケーターを追加する。
    • サブウィンドウに表示されるため、メインチャートの価格と重ならずに表示される。
  2. パラメータの設定:
    • インジケーターのプロパティで期間、偏差、適用価格を設定する。
    • 適用価格は終値や始値、高値、安値などのオプションがある。
  3. 分析とトレード:
    • ボリンジャーバンドは、価格のボラティリティを視覚的に示すため、価格が上部バンドに近づいた場合は売りシグナル、下部バンドに近づいた場合は買いシグナルとして使用できます。
    • サブウィンドウに表示されることで、他のインジケーターと併用して包括的な市場分析が可能となる。

このインジケーターはボリンジャーバンドの基本的な機能を維持しつつ、視覚的な利便性を向上させたものとなる。トレーダーはメインチャートの混雑を避けつつ、ボリンジャーバンドの分析を行うことができる。

パラメーターについて

BB Subパラメーター画面
BB Subのパラメーター画面

ボリンジャーバンドの期間

input int InpBandsPeriod = 20; // Bollinger Bands period

  • 説明: このパラメーターは、ボリンジャーバンドを計算する際の期間を指定する。デフォルトは20。
  • 詳細: ボリンジャーバンドは指定された期間の移動平均を中心に、標準偏差を用いて上下にバンドを作成する。この期間は、価格データの何本分を基に計算するかを決定。例えば、期間が20の場合、直近の20本の価格データを使用してボリンジャーバンドを計算する。

ボリンジャーバンドの偏差

input double InpBandsDeviation = 2.0; // Bollinger Bands deviation

  • 説明: このパラメーターは、ボリンジャーバンドの上下バンドを計算する際の標準偏差の倍率を指定する。デフォルトは2.0。
  • 詳細: ボリンジャーバンドの上下バンドは、指定された移動平均から±(標準偏差×偏差)で計算される。この値が大きいほどバンドの幅が広くなり、小さいほどバンドの幅が狭くなる。一般的には2.0がよく使われ、これは移動平均から2標準偏差離れた位置に上下バンドが描かれる。

適用価格

input int InpAppliedPrice = PRICE_CLOSE; // Applied price

  • 説明: このパラメーターは、ボリンジャーバンドを計算する際に使用する価格の種類を指定する。デフォルトは終値(PRICE_CLOSE)を使用。
  • 詳細: MT4では、様々な価格の種類を使用できる。このインジケーターでは、次のような価格の種類を指定できる。
    • PRICE_CLOSE: 終値
    • PRICE_OPEN: 始値
    • PRICE_HIGH: 高値
    • PRICE_LOW: 安値
    • PRICE_MEDIAN: (高値 + 安値) / 2
    • PRICE_TYPICAL: (高値 + 安値 + 終値) / 3
    • PRICE_WEIGHTED: (高値 + 安値 + 終値 + 終値) / 4
    これにより、ユーザーはボリンジャーバンドの計算に使用する価格データを自由に選択できる。

データの指定は数字の0~6で指定。

フィルターとして使うトレードの例

ボリンジャーバンドをサブウインドウに表示することで値動きの大きさを視覚的に計りやすくなる。
その効果を利用し、フィルターとしてトレードに活用できる。
たとえば、上位足でスクイーズしている状態と、エクスパンションしている状態とでトレードの判断を切り替えるといった使い方ができる。
そうすることで、より相場の状態にアジャストしたトレード判断が可能となるのだ。
以下にその例を紹介する。

スクイーズでの判断

BBSubH1スクイーズ
1時間足チャートでスクイーズが確認できる

こちらの1時間足チャートではサブウィンドウに表示されるボリンジャーバンドがスクイーズしている様子がわかる。

BBSubスクイーズ
5分足チャート:1時間足ではスクイーズしている

上位足でスクイーズしている状態の5分足チャートだ。
上位足でスクイーズが確認できる場合、値動きの幅は狭く方向も定まらない可能性が高い。
そういった状況と判断した場合、トレードを見送る、または短期売買に徹するなどの行動がとれる。

エクスパンションでの判断

BBSubH1エクスパンション
1時間足チャートでエクスパンションが確認できる

こちらの1時間足チャートではサブウィンドウに表示されるボリンジャーバンドがエクスパンションしている様子がわかる。

BBSubエクスパンション
5分足チャート:1時間足ではエクスパンションしている

上位足チャートでエクスパンションしている状態の5分足チャートだ。
上位足でエクスパンションしている場合、値動きは大きくなる。
また、トレンドが始まる場合もあるためポジションの保有を長めにしようという判断を選択できる。

フィルターとして利用する例のまとめ

上位足でボリンジャーバンドの状態を把握すれば、トレード判断のフィルターとして活用できる。
スクイーズではトレードをしない、または短期売買に徹する判断、エクスパンションでは大きな値動きを利用したトレードをする判断が下せるようになる。
これらを利用し、相場の状況に合わせたトレードが可能となる。

ボリンジャーバンドとは?

ボリンジャーバンドは、価格の変動範囲とボラティリティを視覚的に示すために使用される。ジョン・ボリンジャーによって開発されたこの指標は、移動平均線を中心に標準偏差を用いて上下にバンドを形成する。以下にボリンジャーバンドの各要素とその利用方法について詳しく説明する。

ボリンジャーバンドの構成

  1. 中央バンド(Middle Band):
    • 通常、20期間の単純移動平均(SMA)が使用される。この移動平均は価格のトレンドを示す。
  2. 上部バンド(Upper Band):
    • 中央バンドに標準偏差の倍数を加えたもの。一般的には、2倍の標準偏差が使われる。このバンドは価格の上限を示す。
  3. 下部バンド(Lower Band):
    • 中央バンドから標準偏差の倍数を引いたもの。こちらも通常は2倍の標準偏差が使用され、価格の下限を示す。

ボリンジャーバンドの計算方法

  1. 中央バンド(SMA):
    • 期間内の価格の平均を計算する。
  2. 標準偏差(Standard Deviation):
    • 各期間の価格が平均からどれだけ離れているかを示す。ボラティリティの尺度。
  3. 上部バンドと下部バンド:
    • 上部バンド = 中央バンド + (標準偏差 × 係数)
    • 下部バンド = 中央バンド – (標準偏差 × 係数)

ボリンジャーバンドの利用方法

  1. トレンドの確認:
    • 価格が中央バンドの上にある場合、上昇トレンドとみなされる。
    • 価格が中央バンドの下にある場合、下降トレンドとみなされる。
  2. ボラティリティの分析:
    • バンドが広がるとボラティリティが高いことを示し、バンドが狭まるとボラティリティが低いことを示す。
  3. トレードシグナル:
    • 価格が上部バンドに触れると過買い状態を示し、価格が下部バンドに触れると過売り状態を示す。
  4. バンドのブレイクアウト:
    • 価格がバンドを超えてブレイクアウトすると、新しいトレンドが始まる可能性がある。ただし、これは偽のブレイクアウトの可能性もあるため、他の指標と組み合わせて判断することが重要。
  5. スクイーズ(Squeeze):
    • バンドの幅が狭くなると、市場が落ち着いており、次の大きな動きが近づいている可能性がある。これを「スクイーズ」と呼ぶ。スクイーズは、市場が低ボラティリティの状態にあることを示し、この後にボラティリティの急増が見込まれるため、トレーダーはスクイーズの後のブレイクアウトに注目する。
  6. エクスパンション(Expansion):
    • バンドの幅が広がることをエクスパンションと呼ぶ。エクスパンションはボラティリティが高まっていることを示し、新たなトレンドの開始を示唆することがある。エクスパンション中はトレンドが強く、継続する可能性が高いと考えられる。

ボリンジャーバンドの強みと弱み

強み:

  • シンプルで視覚的に理解しやすい。
  • トレンドの方向性とボラティリティの両方を示す。
  • 多くの市場や資産に適用可能。

弱み:

  • バンドの設定によって結果が異なるため、適切なパラメータの選定が必要。
  • 他の指標と組み合わせないと、偽のシグナルが発生する可能性がある。

まとめ

ボリンジャーバンドは、多様な市場で使用される強力なテクニカル分析ツールだ。価格のトレンドとボラティリティを視覚的に示すことで、トレーダーは市場の状態を迅速に評価し、適切な取引戦略を立てることができる。スクイーズとエクスパンションを活用することで、重要なトレンドの転換点や新たなトレンドの始まりを捉えることができる。しかし、他の指標と組み合わせた使用が推奨されている。

BB Subのプログラム

//+------------------------------------------------------------------+
//|                                                       BB Sub.mq4 |
//|                                     Copyright 2024, FX-Bonus.net |
//|                                            https://fx-bonus.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, FX-Bonus.net"
#property link      "https://fx-bonus.net/"
#property version   "1.00"
#property strict

//--- インジケーターの設定
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Lime

//--- 入力パラメータ
input int InpBandsPeriod = 20;          // ボリンジャーバンドの期間
input double InpBandsDeviation = 2.0;   // ボリンジャーバンドの偏差
input int InpAppliedPrice = PRICE_CLOSE; // 適用価格

//--- インジケーターバッファ
double UpperBand[];
double LowerBand[];
double MiddleBand[];

//+------------------------------------------------------------------+
//| カスタムインジケーターの初期化関数                              |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- インジケーターバッファのマッピング
   SetIndexBuffer(0, UpperBand);
   SetIndexBuffer(1, LowerBand);
   SetIndexBuffer(2, MiddleBand);
   //--- インジケーター名
   IndicatorShortName("Subwindow Bollinger Bands");
   //--- バッファのスタイル設定
   SetIndexStyle(0, DRAW_LINE);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexStyle(2, DRAW_LINE);
   //--- ラベルの設定
   SetIndexLabel(0, "Upper Band");
   SetIndexLabel(1, "Lower Band");
   SetIndexLabel(2, "Middle Band");
   //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| カスタムインジケーターの計算関数                                 |
//+------------------------------------------------------------------+
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[])
  {
   //--- バーの数をチェック
   if(rates_total < InpBandsPeriod)
      return(0);

   //--- ボリンジャーバンドの計算
   int start = prev_calculated - 1;
   if(start < 0) start = 0;

   for(int i = start; i < rates_total; i++)
     {
      double sum = 0.0;
      for(int j = i; j < i + InpBandsPeriod; j++)
        {
         if(j < rates_total) sum += close[j];
        }
      double avg = sum / InpBandsPeriod;

      sum = 0.0;
      for(int j = i; j < i + InpBandsPeriod; j++)
        {
         if(j < rates_total) sum += MathPow(close[j] - avg, 2);
        }
      double stdDev = MathSqrt(sum / InpBandsPeriod);

      MiddleBand[i] = avg;
      UpperBand[i] = avg + InpBandsDeviation * stdDev;
      LowerBand[i] = avg - InpBandsDeviation * stdDev;
     }
   //---
   return(rates_total);
  }
//+------------------------------------------------------------------+

ソースコードの詳細を解説

このソースコードは、MetaTrader 4 (MT4) プラットフォームで動作するカスタムインジケーターで、ボリンジャーバンドをサブウィンドウに表示するものだ。ボリンジャーバンドは、価格の変動範囲とボラティリティを視覚的に示すテクニカル指標であり、このインジケーターはそれをサブウィンドウに表示するように設計されている。以下に、各セクションの詳細な解説を行う。

インジケーターの設定

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Lime
  • #property indicator_separate_window: インジケーターをサブウィンドウに表示する。
  • #property indicator_buffers 3: 3つのバッファ(データ配列)を使用。
  • #property indicator_color1 Blue, #property indicator_color2 Red, #property indicator_color3 Lime: それぞれのバンドの色を設定する。

入力パラメータ

input int InpBandsPeriod = 20;          // ボリンジャーバンドの期間
input double InpBandsDeviation = 2.0;   // ボリンジャーバンドの偏差
input int InpAppliedPrice = PRICE_CLOSE; // 適用価格
  • InpBandsPeriod: ボリンジャーバンドの計算に使用する期間。
  • InpBandsDeviation: バンドの幅を決定するための標準偏差の倍数。
  • InpAppliedPrice: 計算に使用する価格(終値など)。

インジケーターバッファ

double UpperBand[];
double LowerBand[];
double MiddleBand[];
  • UpperBand: 上部バンドの値を保持するバッファ。
  • LowerBand: 下部バンドの値を保持するバッファ。
  • MiddleBand: 中央バンドの値を保持するバッファ。

初期化関数

int OnInit()
  {
   //--- インジケーターバッファのマッピング
   SetIndexBuffer(0, UpperBand);
   SetIndexBuffer(1, LowerBand);
   SetIndexBuffer(2, MiddleBand);
   //--- インジケーター名
   IndicatorShortName("Subwindow Bollinger Bands");
   //--- バッファのスタイル設定
   SetIndexStyle(0, DRAW_LINE);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexStyle(2, DRAW_LINE);
   //--- ラベルの設定
   SetIndexLabel(0, "Upper Band");
   SetIndexLabel(1, "Lower Band");
   SetIndexLabel(2, "Middle Band");
   //---
   return(INIT_SUCCEEDED);
  }
  • OnInit インジケーターの初期化時に呼び出される。
    • SetIndexBuffer: バッファをインジケーターのデータ系列にマッピングする。
    • IndicatorShortName: インジケーターの名前を設定。
    • SetIndexStyle: 各バッファの描画スタイルを設定。
    • SetIndexLabel: 各バッファのラベルを設定。

計算関数

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[])
  {
   //--- バーの数をチェック
   if(rates_total < InpBandsPeriod)
      return(0);

   //--- ボリンジャーバンドの計算
   int start = prev_calculated - 1;
   if(start < 0) start = 0;

   for(int i = start; i < rates_total; i++)
     {
      double sum = 0.0;
      for(int j = i; j < i + InpBandsPeriod; j++)
        {
         if(j < rates_total) sum += close[j];
        }
      double avg = sum / InpBandsPeriod;

      sum = 0.0;
      for(int j = i; j < i + InpBandsPeriod; j++)
        {
         if(j < rates_total) sum += MathPow(close[j] - avg, 2);
        }
      double stdDev = MathSqrt(sum / InpBandsPeriod);

      MiddleBand[i] = avg;
      UpperBand[i] = avg + InpBandsDeviation * stdDev;
      LowerBand[i] = avg - InpBandsDeviation * stdDev;
     }
   //---
   return(rates_total);
  }
  • OnCalculate 関数は、インジケーターの計算を行う。
    • rates_total: 利用可能なデータの総数。
    • prev_calculated: 前回計算されたバーの数。
    • time[], open[], high[], low[], close[], tick_volume[], volume[], spread[]: 各種市場データ配列。
  1. バーの数のチェック:
    • 計算に必要なデータが十分にあるか確認。
  2. 計算の開始点を設定:
    • start を設定し、計算の開始点を決定。
  3. ボリンジャーバンドの計算:
    • 各バーについて、指定された期間の移動平均と標準偏差を計算。
    • 中央バンド (MiddleBand) は期間内の価格の平均。
    • 上部バンド (UpperBand) は平均に標準偏差の倍数を加えたもの。
    • 下部バンド (LowerBand) は平均から標準偏差の倍数を引いたもの。
  4. 計算結果の返却:
    • 計算が完了したバーの数を返す。

まとめ

このページではボリンジャーバンドをサブウィンドウに表示するインジケーター(BB Sub)をダウンロードできる。
BB Subを使うことでボリンジャーバンドの状態が把握しやすくなる。フィルターとして利用することで、スクイーズ、エクスパンションといった状態にあわせたトレードが可能となる。

  • URLをコピーしました!
  • URLをコピーしました!

このEAを使って、将来の見通しが立ちました

収入を増やしたい、将来のための資産が欲しい、支払いに縛られない自由な生活がしたい

このEAを使うと将来が見通せます。

22年以上で無敗の安定取引。リスク0%運用も可能なロジック。年利100%越えの上級者向け取引も可能。

マネーマシンとして育て上げることで大きな不労所得を得られます。

BBF-Girl
ドリームEA_BBF 無料ダウンロード
リアルトレード公開|EA BBF

ポジション監視の時間

集中力は続いてますか?


オートクローズツールを使ってポジション管理を自動化


自動ポジション管理だから万が一でも大丈夫

あなたは空いた時間を自由に、効率的に使えます

自動決済ルールは独自にカスタム可能

ストップ、リミット変更にも対応。

エントリー後のポジション管理をすべて自動化できるトレーディングサポートツール。

トレード中のちょっとした離席など、念のためセットといった使い方も可能。

MT4用自動決済ツール【AutoCloseTool】は無料で入手できます。

オートクローズツール

取引ごとにキャッシュバックが発生します

もらわないだけ損している
取引ごとに毎回発生する現金のキャッシュバック
海外FXのキャッシュバックはメリットしかないサービスです

取引ごとにキャッシュバック
目次