iAlligator 関数
この関数は、任意に設定したパラメータのAlligator(アリゲーター)の値を計算して、その値を取得します。Alligatorはトレンド系のインジケータに分類されます。
Alligator
Alligator (アリゲーター)は、ビル・ウィリアムズが開発したテクニカル指標の1つで、トレンドの方向性や勢いを示すために用いられます。Alligatorは、名前のとおりワニをモチーフしており、3つの移動平均線を使ったワニの口をイメージしています。そして、そのワニの口の状態からトレンド、レンジ、反転を判断します。
通常のAlligatorで使われる3つの移動平均線は次のとおりです。
① Jaw(顎):8期間先にシフトした、13期間の移動平均線
② Teeth(歯):5期間先にシフトした、8期間の移動平均線
③ Lips(唇):3期間先にシフトした、5期間の移動平均線
Alligatorで使用される移動平均線は、通常は、平滑移動平均(SMMA)が使用されます。
MT4でチャート上にAlligatorをプロットする時はナビゲーター中のインディケータ → 「ビル・ウィリアムス」 → 「Alligator」インジケータを使用します。(インディケータ → 「Alligator」インジケータでもOKです。)
(Alligatorの計算式)
通常、Alligatorで表示される3つの移動平均線の計算式は、以下のようになります。
Jaw(顎) = 8期間先にシフトした、13期間の平滑移動平均(SMMA)
Teeth(歯) = 5期間先にシフトした、8期間の平滑移動平均(SMMA)
Lips(唇) = 3期間先にシフトした、5期間の平滑移動平均(SMMA)
各期間の数値と使用する移動平均の種類の設定は使用する通貨ペア、時間軸によって任意設定しても問題ないです。しかし、各期間の長さは、Jaw(顎)長期、Teeth(歯)中期、Lips(唇)短期 にする必要があります。
(Alligatorの使い方)
Alligatorは、次のように見て市場の状態を判断します。
①移動平均線が開くときは、トレンドが発生していると判断し、その方向に順張りをします。
上から順に、
Lips(唇)→Teeth(歯)→Jaw(顎)の順番に並んでいる時は、買いエントリー
です。逆に、上から順に、
Jaw(顎)→Teeth(歯)→Lips(唇)の順番に並んでいる時は、売りエントリー
になります。
②移動平均線が閉じるときは、トレンドが終わりに近づいていると判断し、利確や損切りを考えることができます。Jaw(顎)・Teeth(歯)・Lips(唇)が重なっているときは、バランスラインと呼ばれ、レンジ相場を示します。
③移動平均線が交差するときは、トレンドの転換点を示すことがあります。Jaw(顎)・Teeth(歯)・Lips(唇)の順番が逆になるときは、オーダーチェンジと呼ばれ、トレンドの反転を示します。
データ型と構成・戻り値
double iAlligator(①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨, ⑩, ⑪, ⑫);
戻り値は、任意に設定したパラメータのAlligatorの値を計算して、その値を返します。
引数 [12]
iAlligator関数は 12個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | jaw_period | int | - | - | Jaw(顎)の計算期間。Jaw(顎)を計算するバーの数を数値で設定します。 |
④ | jaw_shift | int | - | - | Jaw(顎)を右方向にシフトするバーの数。 指定したバーの数だけ移動平均線を右方向にずらして表示します。 |
⑤ | teeth_period | int | - | - | Teeth(歯)の計算期間。Teeth(歯)を計算するバーの数を数値で設定します。 |
⑥ | teeth_shift | int | - | - | Teeth(歯)を右方向にシフトするバーの数。 指定したバーの数だけ移動平均線を右方向にずらして表示します。 |
⑦ | lips_period | int | - | - | Lips(唇)の計算期間。Lips(唇)を計算するバーの数を数値で設定します。 |
⑧ | lips_shift | int | - | - | Lips(唇)を右方向にシフトするバーの数。 指定したバーの数だけ移動平均線を右方向にずらして表示します。 |
⑨ | ma_method | int | - | - | 移動平均の方法。 ENUM_MA_METHOD 列挙値から選択。 |
⑩ | applied_price | int | - | - | 適用価格。 ENUM_APPLIED_PRICE 列挙値から選択。 |
⑪ | mode | int | - | - | 結果で算出する線を選択。 iAlligator関数のインジケータライン識別子から選択。 |
⑫ | shift | int | - | - | Alligatorの値を算出するバーの位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。例えば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。 |
使用例
iAlligator関数による各Alligator値の計算
iAlligator関数を使って、現在の各Alligator値を計算します。計算するAlligator値の各移動平均線は次の設定にします。
① Jaw(顎):8日間先にシフトした、13日間の平滑移動平均線
② Teeth(歯):5日間先にシフトした、8日間の平滑移動平均線
③ Lips(唇):3日間先にシフトした、5日間の平滑移動平均線
コード
// iAlligator関数による各Alligator値の計算
#property strict
void OnInit() {
double Jaw = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, 2, 0, 1, 0); // Jaw(顎) 青ライン
double Teeth = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, 2, 0, 2, 0); // Teeth(歯) 赤ライン
double Lips = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, 2, 0, 3, 0); // Lips(唇) 黄ライン
Print("Jaw(顎)値:" , Jaw);
Print("Teeth(歯)値:", Teeth);
Print("Lips(唇)値:" , Lips);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
3本線の配置から買いエントリーの状態になっていると判断されます。