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個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | mode | int | - | - | 結果で算出する線を選択。 iFractals関数のインジケータライン識別子から選択。 |
④ | shift | int | - | - | Fractalsの値を算出するバーの位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「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になります。