トレンドの発生・転換を判断 iFractals 関数

関数

テクニカルインジケータ関数

iFractals 関数

 この関数は、任意に設定したパラメータのFractals(フラクタル)の値(矢印が表示される個所の高値 または 安値)を取得します。Fractalsはトレンド系のインジケータに分類されます。

Fractals

 Fractals (フラクタル)は、ビル・ウィリアムズが開発したテクニカル指標の1つで、5本のバーの形を分析してパターン化することで、相場の状況を把握します。相場の状況は、相場の山(高値)と谷(安値)をチャートに矢印を表示することで、レジスタンスサポートライン、トレンドの発生や転換などを判断します。

 iFractals関数では、矢印が表示されるバーに対して高値 または 安値の値が取得されます。矢印が表示されない時は 0が表示されます。

 フラクタルは「同じような形を繰り返す不規則な形状」という意味です。

MT4でチャート上にFractalsをプロットする時はナビゲーター中のインディケータ → ビル・ウィリアムス → 「Fractals」インジケータを使用します。

(Fractalsの計算式)

 Fractalsで表示される矢印は、5本のバーの高値 または 安値を比較して決定します。

①上向き矢印
中央のローソク足の高値が、左右の2本ずつの高値よりも高い場合、上向き矢印が表示されます。つまり、以下の条件を満たす場合です。
●第3本目の高値 > 第1本目の高値
●第3本目の高値 > 第2本目の高値
●第3本目の高値 > 第4本目の高値
●第3本目の高値 > 第5本目の高値

②下向き矢印
中央のローソク足の安値が、左右の2本ずつの安値よりも安い場合、下向き矢印が表示されます。つまり、以下の条件を満たす場合です。
●第3本目の高値 < 第1本目の高値
●第3本目の高値 < 第2本目の高値
●第3本目の高値 < 第4本目の高値
●第3本目の高値 < 第5本目の高値

 Fractalsは後から確定するため、現在進行中のバーに矢印は表示されません。いくつかのバーが確定した後に表示されることになります。

(Fractalsの使い方)

 Fractalsの使い方は、以下のようになります。

①山(高値)の上に表示される矢印は、売り圧力が強くなっていることを示します。この矢印をレジスタンスラインとして利用することができます。

②谷(安値)の下に表示される矢印は、買い圧力が強くなっていることを示します。この矢印をサポートラインとして利用することができます。

③矢印が連続して出現する場合は、トレンドが発生している可能性が高くなります。この場合は、矢印の方向に沿って新規取引や決済(損切り)を考えることができます。

④矢印が逆方向に出現する場合は、トレンドの転換が起こっている可能性が高くなります。この場合は、反対方向にポジションを持つか、利益確定や損切りを考えることができます。

 Fractalsは、他のテクニカル指標やチャートパターンと組み合わせて使うことで、より効果的なトレード戦略を立てることができます。

データ型と構成・戻り値

double iFractals(①, ②, ③, ④);

 戻り値は、任意に設定したパラメータのFractalsの値(矢印が表示される個所の高値 または 安値)を取得して、その値を返します。

引数 [4]

 iFractals関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
symbolstring計算対象の通貨ペア名。
「NULL」は選択チャートの通貨ペア名が選択されます。
timeframeint時間軸。ENUM_TIMEFRAMES 列挙値から選択。
「0」は現在チャートの時間軸が選択されます。
modeint結果で算出する線を選択。
iFractals関数のインジケータライン識別子から選択。
shiftintFractalsの値を算出するバーの位置。
現在のバーから指定した時間軸のバー数だけ過去へシフトします。例えば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。

使用例

iFractals関数による矢印発生個所の値の取得

 iFractals関数を使って、矢印が発生する箇所の値を取得します。
 参考にしたチャートでは、右から4番目(インデックス番号は3)の箇所に上矢印が表示されているので、そのバーの高値を取得します。

コード

// iFractals関数による矢印発生個所の値の取得
#property strict
void OnInit() {

   double Upper = iFractals(NULL, 0, 1, 3); // 上矢印が表示された時の値
   double Lower = iFractals(NULL, 0, 2, 3); // 下矢印が表示された時の値

   Print("上矢印が表示された時の値:", Upper);
   Print("下矢印が表示された時の値:", Lower);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

上矢印の値は取得できますが、下矢印は無いため 0になります。

タイトルとURLをコピーしました