【MQL4勉強プログラミング】通貨ペアやマルチタイムフレームで使うバーの位置を指定して終値を取得する方法

ザフナーラボブログ

iClose()関数は、通貨ペア・時間軸・バーの位置を指定して終値を取得するために使用します。

iClose()関数は、以下のように定義されています。

double iClose(
string symbol,
int timeframe,
int shift
);

各引数の意味は、以下のとおりです。

  • string symbol
    終値を取得したい通貨ペア名を指定します。
    通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
    特定の通貨ペア名を指定せず、EA等を適用したチャートの通貨ペアの終値を取得したい場合は、「NULL」と記述します。
  • int timeframe
    以下の表に従って、終値を取得する時間軸を指定します。

    timeframeの種類

    種 類
    定 数
    内 容
    PERIOD_CURRENT
    現在の時間足
    PERIOD_M1
    1分足
    PERIOD_M5
    5分足
    PERIOD_M15
    15
    15分足
    PERIOD_M30
    30
    30分足
    PERIOD_H1
    60
    1時間足
    PERIOD_H4
    240
    4時間足
    PERIOD_D1
    1440
    日 足
    PERIOD_W1
    10080
    週 足
    PERIOD_MN1
    43200
    月 足
  • int shift
    終値を取得したいバーの位置を指定します。
    終値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。

戻り値

引数に指定した通貨ペア・時間軸・バーの位置における終値が返されます。

引数に指定した通貨ペア・時間軸・バーの位置における終値のデータがない場合(エラーが生じた場合)は、「0」が返されます。

エラーをチェックするためには、GetLastError()関数(詳細は「こちら」を参照してください。)を使用します。

注意点

EA等を適用したチャートにおける終値は、定義済み配列であるClose[](詳細は「こちら」を参照してください。)に格納されています。

したがって、EA等を適用したチャートにおける終値を取得したい場合はClose[]を使用し、EA等を適用したチャート以外の通貨ペアや時間軸における終値を取得したい場合(他の通貨ペアや時間軸における動きをチェックしたい場合)はiClose()関数を使用します。

  • EA等を適用したチャートの通貨ペアの始値を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアの高値を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアの安値を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアの出来高を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアとは異なる通貨ペアや時間軸の始値を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアとは異なる通貨ペアや時間軸の高値を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアとは異なる通貨ペアや時間軸の安値を取得したい場合は「こちら」を参照してください。
  • EA等を適用したチャートの通貨ペアとは異なる通貨ペアや時間軸の出来高を取得したい場合は「こちら」を参照してください。