【MQL4定数】ヒストリーデータの取得定数(ENUM_SERIES_INFO_INTEGER)

【辞書】MQLリファレンス

ヒストリーデータの取得定数

ヒストリーデータの取得定数は、ヒストリーデータを取得するときに使用されます。

主に、SeriesInfoInteger関数で使用されます。

それぞれ、SeriesInfoInteger関数の引数として使用されます。

 

関数の返り値は、引数に入れる定数によって変わるので、確認しましょう。

 

ヒストリーデータの取得定数(ENUM_SERIES_INFO_INTEGER)

定数返り値の型説明
SERIES_BARS_COUNTlongヒストリーデータのバー数
SERIES_FIRSTDATEdatetimeヒストリーデータの最古のバー日付(時間軸関係あり)
SERIES_LASTBAR_DATEdatetimeヒストリーデータの最新のバー日付
SERIES_SERVER_FIRSTDATEdatetimeヒストリーデータの最古のバー日付(時間軸関係なし)

ヒストリーデータの取得定数の使い方

主に、SeriesInfoInteger関数で使用されます。

それぞれ、SeriesInfoInteger関数の引数として使用されます。

例えば、以下のように使用します。

  //SeriesInfoInteger関数
  //ヒストリーデータのバー数を取得
  long seriesInfoInteger = SeriesInfoInteger(Symbol(), PERIOD_CURRENT, SERIES_BARS_COUNT);

 

返り値は long型です。

 

プログラム例

以下は、ヒストリーデータの取得定数を使って各種情報を取得するプログラム例です。

void OnStart()
{
   // ヒストリーデータのバー数を取得
   long barsCount = SeriesInfoInteger(Symbol(), PERIOD_CURRENT, SERIES_BARS_COUNT);
   Print("バー数: ", barsCount);

   // ヒストリーデータの最古のバー日付(時間軸関係あり)を取得
   datetime firstDate = (datetime)SeriesInfoInteger(Symbol(), PERIOD_CURRENT, SERIES_FIRSTDATE);
   Print("最古のバー日付(時間軸あり): ", TimeToString(firstDate, TIME_DATE | TIME_MINUTES));

   // ヒストリーデータの最新のバー日付を取得
   datetime lastBarDate = (datetime)SeriesInfoInteger(Symbol(), PERIOD_CURRENT, SERIES_LASTBAR_DATE);
   Print("最新のバー日付: ", TimeToString(lastBarDate, TIME_DATE | TIME_MINUTES));

   // ヒストリーデータの最古のバー日付(時間軸関係なし)を取得
   datetime serverFirstDate = (datetime)SeriesInfoInteger(Symbol(), PERIOD_CURRENT, SERIES_SERVER_FIRSTDATE);
   Print("最古のバー日付(時間軸なし): ", TimeToString(serverFirstDate, TIME_DATE | TIME_MINUTES));
}

 

上記のプログラムでは、4つの定数をそれぞれ使用して、バー数・最古のバー日付・最新のバー日付・サーバーの最古のバー日付を取得し、Print関数でエキスパートログに出力しています。

 

【補足】ヒストリーデータの取得定数の列挙型(ENUM_SERIES_INFO_INTEGER)

ヒストリーデータの取得定数は、ENUM_SERIES_INFO_INTEGER​という列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_SERIES_INFO_INTEGER seriesInfoInteger = SERIES_BARS_COUNT;

上記のようにプログラムすると、seriesInfoInteger変数に SERIES_BARS_COUNTの数値が代入されます。