MQL4MQL5 テクニカル指標
iAlligator()
- できること
- アリゲーターの各線の値を取得する
- 対応
- MQL4・MQL5
iAlligator() とは
アリゲーター(期間とずらしの違う3本の平滑移動平均:ジョー・ティース・リップス)を計算する関数です。3本が順に並んで開いているとトレンド、絡み合っているとレンジの目安です。
iAlligator() の書式と引数
MQL4 の場合MT4
double iAlligator(
string symbol,
int timeframe,
int jaw_period,
int jaw_shift,
int teeth_period,
int teeth_shift,
int lips_period,
int lips_shift,
int ma_method,
int applied_price,
int mode,
int shift
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | string | 必須 | 銘柄名。チャートの銘柄なら _Symbol(NULL も可)。 |
timeframe | int | 必須 | 時間足。0 または PERIOD_CURRENT でチャートの時間足。 |
jaw_period | int | 必須 | ジョー(青)の期間(13)。 |
jaw_shift | int | 必須 | ジョーのずらし(8)。 |
teeth_period | int | 必須 | ティース(赤)の期間(8)。 |
teeth_shift | int | 必須 | ティースのずらし(5)。 |
lips_period | int | 必須 | リップス(緑)の期間(5)。 |
lips_shift | int | 必須 | リップスのずらし(3)。 |
ma_method | int | 必須 | 平均の種類。標準は MODE_SMMA。 |
applied_price | int | 必須 | 計算に使う価格。PRICE_CLOSE など。 |
mode | int | 必須 | 取得する線。MODE_GATORJAW、MODE_GATORTEETH、MODE_GATORLIPS。 |
shift | int | 必須 | 値を取得するバーの位置。0 が現在(未確定)のバー、1 が確定したひとつ前のバー。 |
戻り値(MQL4)
指定した線の値。
MQL5 の場合MT5
int iAlligator(
string symbol,
ENUM_TIMEFRAMES period,
int jaw_period,
int jaw_shift,
int teeth_period,
int teeth_shift,
int lips_period,
int lips_shift,
ENUM_MA_METHOD ma_method,
int applied_price
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | string | 必須 | 銘柄名。チャートの銘柄なら _Symbol(NULL も可)。 |
period | ENUM_TIMEFRAMES | 必須 | 時間足。PERIOD_CURRENT でチャートの時間足。 |
jaw_period | int | 必須 | ジョー(青)の期間(13)。 |
jaw_shift | int | 必須 | ジョーのずらし(8)。 |
teeth_period | int | 必須 | ティース(赤)の期間(8)。 |
teeth_shift | int | 必須 | ティースのずらし(5)。 |
lips_period | int | 必須 | リップス(緑)の期間(5)。 |
lips_shift | int | 必須 | リップスのずらし(3)。 |
ma_method | ENUM_MA_METHOD | 必須 | 平均の種類。標準は MODE_SMMA。 |
applied_price | int | 必須 | 計算に使う価格。PRICE_CLOSE など。 |
戻り値(MQL5)
インジケーターのハンドル。バッファ 0 がジョー(GATORJAW_LINE)、1 がティース(GATORTEETH_LINE)、2 がリップス(GATORLIPS_LINE)です。
iAlligator() の使い方(コード例)
MQL4
double jaw = iAlligator(_Symbol, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, 1);
double teeth = iAlligator(_Symbol, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, 1);
double lips = iAlligator(_Symbol, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, 1);
if(lips > teeth && teeth > jaw) Print("上昇トレンドの並び");MQL5
int h = iAlligator(_Symbol, PERIOD_CURRENT, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN);
double jaw[], teeth[], lips[];
if(h != INVALID_HANDLE && CopyBuffer(h, GATORJAW_LINE, 1, 1, jaw) == 1
&& CopyBuffer(h, GATORTEETH_LINE, 1, 1, teeth) == 1 && CopyBuffer(h, GATORLIPS_LINE, 1, 1, lips) == 1)
if(lips[0] > teeth[0] && teeth[0] > jaw[0]) Print("上昇トレンドの並び");
IndicatorRelease(h);OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
iAlligator() の注意点
- MQL5 では値ではなく「ハンドル」が返ります。ハンドルは OnInit() で1回だけ作り、CopyBuffer() で値を読み出します。












