iBands 関数
この関数は、任意に設定したパラメータのボリンジャーバンドの値を計算して、その値を取得します。ボリンジャーバンドはトレンド系・オシレータ系の両方の特性を持ったインジケータになります。
ボリンジャーバンド
ボリンジャーバンド (Bollinger Bands) は、価格の変動幅の広がりを示すバンド状の指標です。一般的に、中心線に沿って2つの標準偏差分の距離に上下バンドが設定され、通常は20日間の単純移動平均線が中心線に使用されます。
ボリンジャーバンドは、トレンド系でもあり、オシレータ系でもあります。トレンド系としての特徴としては、中心線がトレンドの方向に向かって移動し、バンドの幅が広がることでトレンドの強さを表します。一方、オシレータ系としての特徴としては、バンドの幅が狭くなるときには相場がレンジ相場に入っていると判断され、バンドの幅が広がるときには相場がトレンド相場に移行していると判断されます。
MT4でチャート上にボリンジャーバンドをプロットする時はナビゲーター中のインディケータ → 「Bands」インジケータを使用します。
(ボリンジャーバンドの計算式)
ボリンジャーバンドは次のように計算されます。
① 期間nの単純移動平均を計算します。
② 期間nの標準偏差を計算します。
③ 中央の移動平均線に対して、上側に2倍の標準偏差を加えたラインを上部バンド、下側に2倍の標準偏差を引いたラインを下部バンドとしてプロットします。
具体的には、以下の式で計算されます。期間nはユーザーが指定します。
1.中心となる移動平均線 = n期間の終値の単純移動平均
2.標準偏差 = n期間の終値の標準偏差
3.上部バンド = 中心移動平均線 + 2 × 標準偏差
4.下部バンド = 中心移動平均線 - 2 × 標準偏差
(ボリンジャーバンドの使い方)
ボリンジャーバンドは、価格がどの程度一定期間の平均値から離れているかを示す指標であり、以下のように使用されます。
①トレンドの方向性の確認:ボリンジャーバンドが拡大している場合、トレンドが強い可能性が高く、収縮している場合はトレンドが弱くなっている可能性があります。
②エントリーポイントの確認:価格が下限バンドに接近した場合、買いエントリーを、上限バンドに接近した場合は売りエントリーを検討することができます。
③利益確定と損切りの確認:価格が上限バンドに達すると、トレンドが抵抗される可能性があります。そのため、利益確定を検討することができます。また、価格が下限バンドに達した場合は、損切りを検討することができます。
④トレンド反転の確認:価格がバンドから外れることは、強いトレンド反転の可能性があることを示唆することがあります。たとえば、価格が上限バンドを上抜けることは、トレンドが強まっていることを示すことがあります。
ただし、ボリンジャーバンドは単一の指標としてのみ使用するのではなく、他の指標と併用することでより有用になります。また、過去の価格動向に基づく指標であるため、未来の動向を正確に予測することはできません。
データ型と構成・戻り値
double iBands(①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧);
戻り値は、任意に設定したパラメータのボリンジャーバンドの値を計算して、その値を返します。
引数 [8]
iBands関数は 8個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | period | int | - | - | 中心となる移動平均線の平均期間。ボリンジャーバンドを計算するバーの数を数値で設定します。 |
④ | deviation | double | - | - | 中心となる移動平均線からの標準偏差値。 |
⑤ | bands_shift | int | - | - | チャートに対するインジケーターのシフト。 |
⑥ | applied_price | int | 決済の 通貨単位 | - | 適用価格。 ENUM_APPLIED_PRICE 列挙値から選択。 |
⑦ | mode | int | - | - | インジケータライン。 iBands関数のインジケータライン識別子から選択。 |
⑧ | shift | int | - | - | ボリンジャーバンドを算出する位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。 |
使用例
iBands関数による13日間のボリンジャー値
iBands関数を使って13日間のボリンジャーバンド値 (ベースライン、上のライン、下のライン) を算出します。
コード
// iBands関数による13日間のボリンジャー値
#property strict
void OnInit() {
int period = 13; //期間
double a = iBands(NULL, 0, period, 2, 0, 0, 0, 0); // ベースライン
double b = iBands(NULL, 0, period, 2, 0, 0, 1, 0); // 上のライン
double c = iBands(NULL, 0, period, 2, 0, 0, 2, 0); // 下のライン
Print("ボリンジャーバンド 下のライン:", c);
Print("ボリンジャーバンド ベースライン:", a);
Print("ボリンジャーバンド 上のライン:", b);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)