ボリンジャーバンドをサブウインドウに表示するMT4インジケーター
ボリンジャーバンドをチャートのサブウィンドウに表示したいです。
そんなインジケーターはありますか?
FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。
この無料EAで不労所得が稼げます
累計テスト120年以上・リアル取引公開2020年~
このページでわかること・できること
〇ボリンジャーバンドをサブウインドウに表示するインジケーターの入手
〇インジケーターに対する詳しい解説
〇フィルターとしての使い方
〇ボリンジャーバンドの解説
インジケーターのダウンロード
ここからボリンジャーバンドをサブウインドウに表示するインジケーター(BB Sub.ex4)ファイルのダウンロードが可能。
ダウンロードするファイルは.ex4ファイルであり、MT4データフォルダにあるインジケーターフォルダへファイルを移動すればインジケーターは使用できるようになる。
インストール方法
ダウンロードしたインジケーターはMT4のデータフォルダからindicatorsフォルダへアクセスしファイルを移動する。
indicatorsフォルダにファイルを移動し、MT4を再起動すればインストールは完了する。
インストール手順の詳細は以下の記事を参照。
ボリンジャーバンドをサブウインドウに表示するインジケーターとは?
BB Subはサブウィンドウにボリンジャーバンドを描画するカスタムインジケーターである。通常、ボリンジャーバンドはメインチャートに表示されるが、このインジケーターサブウィンドウに表示されるため、普段とは異なる視覚で分析が行える。
メリット
メインチャートのクリアさが向上:
- ボリンジャーバンドをサブウインドウに表示することで、メインチャートでの視覚がクリアになる。
価格動向の視覚的な分析:
- ボリンジャーバンドがサブウィンドウに表示されることで、価格とバンドとの関係性を直感的に把握できる。
トレンド強度を計る:
- エクスパンション、スクイーズの判断をトレードに活かしやすくなる。
ブレイクポイントの発見:
- スクイーズ状態を観察することで、ブレイクポイントを発見しやすくなる。
相場のボラティリティの理解:
- エクスパンション時にはボラティリティが高まっていることが分かり、適切なリスク管理につなげられる。
機能と特徴
- サブウィンドウ表示:
- ボリンジャーバンドをメインチャートではなく、サブウィンドウに表示する。
- これにより、メインチャートの視認性が向上し、他のインジケーターと併用して分析が可能。
- 入力パラメータ:
- 期間 (Period): ボリンジャーバンドの計算に使用する期間を設定。
- 偏差 (Deviation): ボリンジャーバンドの幅を決定するための標準偏差を設定。
- 適用価格 (Applied Price): ボリンジャーバンドの計算に使用する価格(終値、始値、高値、安値など)を選択。
- 3つのバンド表示:
- 上部バンド (Upper Band): 平均価格に標準偏差の倍数を加えた値を表示。
- 中央バンド (Middle Band): 選択された期間の移動平均を表示。
- 下部バンド (Lower Band): 平均価格から標準偏差の倍数を引いた値を表示。
- 視覚的なカスタマイズ:
- 各バンドの色やスタイルをカスタマイズすることが可能。視覚的な調整が可能となる。
使用方法
- インジケーターの追加:
- MT4プラットフォームでインジケーターを追加する。
- サブウィンドウに表示されるため、メインチャートの価格と重ならずに表示される。
- パラメータの設定:
- インジケーターのプロパティで期間、偏差、適用価格を設定する。
- 適用価格は終値や始値、高値、安値などのオプションがある。
- 分析とトレード:
- ボリンジャーバンドは、価格のボラティリティを視覚的に示すため、価格が上部バンドに近づいた場合は売りシグナル、下部バンドに近づいた場合は買いシグナルとして使用できます。
- サブウィンドウに表示されることで、他のインジケーターと併用して包括的な市場分析が可能となる。
このインジケーターはボリンジャーバンドの基本的な機能を維持しつつ、視覚的な利便性を向上させたものとなる。トレーダーはメインチャートの混雑を避けつつ、ボリンジャーバンドの分析を行うことができる。
パラメーターについて
ボリンジャーバンドの期間
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
: (高値 + 安値) / 2PRICE_TYPICAL
: (高値 + 安値 + 終値) / 3PRICE_WEIGHTED
: (高値 + 安値 + 終値 + 終値) / 4
データの指定は数字の0~6で指定。
フィルターとして使うトレードの例
ボリンジャーバンドをサブウインドウに表示することで値動きの大きさを視覚的に計りやすくなる。
その効果を利用し、フィルターとしてトレードに活用できる。
たとえば、上位足でスクイーズしている状態と、エクスパンションしている状態とでトレードの判断を切り替えるといった使い方ができる。
そうすることで、より相場の状態にアジャストしたトレード判断が可能となるのだ。
以下にその例を紹介する。
スクイーズでの判断
こちらの1時間足チャートではサブウィンドウに表示されるボリンジャーバンドがスクイーズしている様子がわかる。
上位足でスクイーズしている状態の5分足チャートだ。
上位足でスクイーズが確認できる場合、値動きの幅は狭く方向も定まらない可能性が高い。
そういった状況と判断した場合、トレードを見送る、または短期売買に徹するなどの行動がとれる。
エクスパンションでの判断
こちらの1時間足チャートではサブウィンドウに表示されるボリンジャーバンドがエクスパンションしている様子がわかる。
上位足チャートでエクスパンションしている状態の5分足チャートだ。
上位足でエクスパンションしている場合、値動きは大きくなる。
また、トレンドが始まる場合もあるためポジションの保有を長めにしようという判断を選択できる。
フィルターとして利用する例のまとめ
上位足でボリンジャーバンドの状態を把握すれば、トレード判断のフィルターとして活用できる。
スクイーズではトレードをしない、または短期売買に徹する判断、エクスパンションでは大きな値動きを利用したトレードをする判断が下せるようになる。
これらを利用し、相場の状況に合わせたトレードが可能となる。
ボリンジャーバンドとは?
ボリンジャーバンドは、価格の変動範囲とボラティリティを視覚的に示すために使用される。ジョン・ボリンジャーによって開発されたこの指標は、移動平均線を中心に標準偏差を用いて上下にバンドを形成する。以下にボリンジャーバンドの各要素とその利用方法について詳しく説明する。
ボリンジャーバンドの構成
- 中央バンド(Middle Band):
- 通常、20期間の単純移動平均(SMA)が使用される。この移動平均は価格のトレンドを示す。
- 上部バンド(Upper Band):
- 中央バンドに標準偏差の倍数を加えたもの。一般的には、2倍の標準偏差が使われる。このバンドは価格の上限を示す。
- 下部バンド(Lower Band):
- 中央バンドから標準偏差の倍数を引いたもの。こちらも通常は2倍の標準偏差が使用され、価格の下限を示す。
ボリンジャーバンドの計算方法
- 中央バンド(SMA):
- 期間内の価格の平均を計算する。
- 標準偏差(Standard Deviation):
- 各期間の価格が平均からどれだけ離れているかを示す。ボラティリティの尺度。
- 上部バンドと下部バンド:
- 上部バンド = 中央バンド + (標準偏差 × 係数)
- 下部バンド = 中央バンド – (標準偏差 × 係数)
ボリンジャーバンドの利用方法
- トレンドの確認:
- 価格が中央バンドの上にある場合、上昇トレンドとみなされる。
- 価格が中央バンドの下にある場合、下降トレンドとみなされる。
- ボラティリティの分析:
- バンドが広がるとボラティリティが高いことを示し、バンドが狭まるとボラティリティが低いことを示す。
- トレードシグナル:
- 価格が上部バンドに触れると過買い状態を示し、価格が下部バンドに触れると過売り状態を示す。
- バンドのブレイクアウト:
- 価格がバンドを超えてブレイクアウトすると、新しいトレンドが始まる可能性がある。ただし、これは偽のブレイクアウトの可能性もあるため、他の指標と組み合わせて判断することが重要。
- スクイーズ(Squeeze):
- バンドの幅が狭くなると、市場が落ち着いており、次の大きな動きが近づいている可能性がある。これを「スクイーズ」と呼ぶ。スクイーズは、市場が低ボラティリティの状態にあることを示し、この後にボラティリティの急増が見込まれるため、トレーダーはスクイーズの後のブレイクアウトに注目する。
- エクスパンション(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[]
: 各種市場データ配列。
- バーの数のチェック:
- 計算に必要なデータが十分にあるか確認。
- 計算の開始点を設定:
start
を設定し、計算の開始点を決定。
- ボリンジャーバンドの計算:
- 各バーについて、指定された期間の移動平均と標準偏差を計算。
- 中央バンド (
MiddleBand
) は期間内の価格の平均。 - 上部バンド (
UpperBand
) は平均に標準偏差の倍数を加えたもの。 - 下部バンド (
LowerBand
) は平均から標準偏差の倍数を引いたもの。
- 計算結果の返却:
- 計算が完了したバーの数を返す。
まとめ
このページではボリンジャーバンドをサブウィンドウに表示するインジケーター(BB Sub)をダウンロードできる。
BB Subを使うことでボリンジャーバンドの状態が把握しやすくなる。フィルターとして利用することで、スクイーズ、エクスパンションといった状態にあわせたトレードが可能となる。