サンプルコード 一覧へ戻る

MQL5サンプルコード

【MT5(MQL5)サンプルコード】iLowest

スポンサーリンク

MT4(MQL4)/MT5(MQL5)のiLowest

 指定した期間の最小値を取得できます。

int  iLowest(
  const string        symbol,             // 銘柄
  ENUM_TIMEFRAMES     timeframe,          // 期間
  ENUM_SERIESMODE     type,               // 時系列識別子
  int                count=WHOLE_ARRAY,   // 要素数
  int                start=0             // インデックス
 );

「start」は、現在の足の何本前からカウントを開始するかを表します。

MT4→MT5になっても変わらず使えます。

使用できるENUM_SERIESMODEは以下の通りです。

識別子説明
MODE_OPEN始値
MODE_LOW安値
MODE_HIGH高値
MODE_CLOSE終値
MODE_VOLUMEティックボリューム
MODE_REAL_VOLUME実のボリューム
MODE_SPREADスプレッド

例えばENUM_SERIESMODEに「MODE_OPEN」をセットした場合、指定期間の始値の最も小さい値のインデックスが取得できます。

注意点としては、戻り値はインデックス番号なので、実際の始値を取得する場合はiOpen関数などを使用しなければいけないという事です。

iLowと似ていますが、iLowestは指定した期間内のすべての足の中で最小値のインデックスを返すのに対して、iLowは指定した足単体の安値を返します。

サンプルコード

過去の指定した期間の最小値を取得してログに出力します。

void OnInit()  
{

    Print("iLowest(""NZDUSD"", PERIOD_H1 , MODE_OPEN , 3 , 0) = ",iLowest("NZDUSD", PERIOD_H1 , MODE_OPEN , 3 , 0));
    Print("iLowest(Symbol(), Period() , MODE_OPEN , 3 , 0) = ",iLowest(Symbol(), Period() , MODE_OPEN , 3 , 0)," ※やっている事は↑と同じ");
    Print("iLowest(Symbol(), 16385 , MODE_OPEN , 3 , 0) = ",iLowest(Symbol(), 16385 , MODE_OPEN , 3 , 0)," ※やっている事は↑と同じ");
    Print("----------");
    Print("現在値の始値 = ",iOpen("NZDUSD", PERIOD_H1 , 0));
    Print("1本前の足の始値 = ",iOpen("NZDUSD", PERIOD_H1 , 1));
    Print("2本前の足の始値 = ",iOpen("NZDUSD", PERIOD_H1 , 2));
    Print("現在値~2本前までの3本の足の最も小さい始値 = ",iOpen(Symbol(), 16385 , iLowest(Symbol(), 16385 , MODE_OPEN , 3 , 0)));
    
   return;
}

ちょっと分かり辛いので図解すると、こんな感じです。

PERIOD_H1が”60”ではなく”16385”になっているのは、MT4→MT5の仕様変更によるものです。

詳しくは【MT5(MQL5)サンプルコード】_Period、Period()を参照。

結果

現在値のデータ。

1本前のデータ。

2本前のデータ。

出力結果。

現在~2本前までの3本の足の中で、始値の最小値が出力されています。

iLowest(NZDUSD, PERIOD_H1 , MODE_OPEN , 3 , 0) = 0
iLowest(Symbol(), Period() , MODE_OPEN , 3 , 0) = 0 ※やっている事は↑と同じ
iLowest(Symbol(), 16385 , MODE_OPEN , 3 , 0) = 0 ※やっている事は↑と同じ
----------
現在値の始値 = 0.66945
1本前の足の始値 = 0.6699
2本前の足の始値 = 0.66982
現在値~2本前までの3本の足の最も小さい始値 = 0.66945

コメント

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