iBWMFI 関数
この関数は、任意に設定したパラメータのBWMFI (ビル・ウィリアムズの市場簡素化指数) の値を計算して、その値を取得します。BWMFIはボリューム系のインジケータに分類されます。
BWMFI
BWMFI (Bill Williams Market Facilitation Index [ビル・ウィリアムズの市場簡素化指数]) は、ビル・ウィリアムズが開発したテクニカル指標の1つで、バー毎の価格変動と取引量の変化を計算して、相場の流動性を測定します。
BWMFIは、主に相場がトレンドに乗っているかどうかを確認するために使われ、価格変動と取引量の関係を分析して、取引量が大きい場合に相場がトレンドに乗っていると判断されます。
BWMFIは、市場の状況に応じてチャート上では4色のヒストグラムで表示されます。次のチャートでは以下のように色分けをしています。色分けは任意で設定できます。
青色:MFI値と取引量が上昇
赤色:MFI値と取引量が下落
緑色:MFI値が上昇、取引量が下落
黄色:MFI値が下落、取引量が上昇
MT4でチャート上にBWMFIをプロットする時はナビゲーター中のインディケータ → ビル・ウィリアムス → 「Market Facilitation Index」インジケータを使用します。
取引量 (出来高) は、MT4のメニューバーの「チャート」→「出来高」を選択すると表示されます。
(BWMFIの計算式)
BWMFIの計算方法は、以下の式で求められます。
BWMFI = (高値 - 安値) ÷ 取引量
高値、安値の計算時の単位は Pointです。BWMFIは、対象のバーと1つ前のバーの高値と安値、取引量を比較して、色分けされたチャートで表示されます。色分けの意味は、市場の状況を示すものです。直近のバーは高値、安値、取引量が確定していないため、BWMFI値は随時変化します。また、FX業者によっては取引量 (出来高) の提供が異なる場合があるのでご注意ください。
(BWMFIの使い方)
BWMFIの使い方は、以下のようになります。
● BWMFI値と取引量が上昇 (青色)
トレンドが強くなっています。
● BWMFI値と取引量が下落 (赤色)
トレンドが反転する可能性があります。
● BWMFI値が上昇、取引量が下落 (緑色)
トレンドが弱くなっています。
● BWMFI値が下落、取引量が上昇 (黄色)
トレンド (上昇 または 下落) が止まる可能性があります。
データ型と構成・戻り値
double iBWMFI(①, ②, ③);
戻り値は、任意に設定したパラメータのBWMFIの値を計算して、その値を返します。
引数 [3]
iBWMFI関数は 3個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | shift | int | - | - | BWMFIの値を算出するバーの位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。 |
使用例
iBWMFI関数による市場のトレンド判定
iBWMFI関数を使って、市場のトレンド判断をします。判断するバーは、直近のバーの1つ前のバーのBWMFI値と取引量を取得して判定します。
コード
// iBWMFI関数による市場のトレンド判定
#property strict
void OnInit() {
double BWMFI1 = iBWMFI(NULL, 0, 1); // 1つ前のバーのBWMFI値
double BWMFI2 = iBWMFI(NULL, 0, 2); // 2つ前のバーのBWMFI値
long Vol1 = Volume[1]; // 1つ前のバーの取引量
long Vol2 = Volume[2]; // 2つ前のバーの取引量
if(BWMFI1 > BWMFI2 && Vol1 > Vol2) {
Print("トレンドが強くなっています。");
} else if(BWMFI1 < BWMFI2 && Vol1 < Vol2) {
Print("トレンドが反転する可能性があります。");
} else if(BWMFI1 > BWMFI2 && Vol1 < Vol2) {
Print("トレンドが弱くなっています。");
} else if(BWMFI1 < BWMFI2 && Vol1 > Vol2) {
Print("トレンド(上昇or下落)が止まる可能性があります。");
} else {
Print("BWMFI値 または 取引量が1つ前と同じです。");
}
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
ヒストグラムの色は、次のとおりです。
青色:MFI値と取引量が上昇
赤色:MFI値と取引量が下落
緑色:MFI値が上昇、取引量が下落
黄色:MFI値が下落、取引量が上昇