ArrayCopyRates()

 ArrayCopyRates()関数は、レート情報を、指定した配列にコピーするために使用します。

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

int ArrayCopyRates(
MQLRates& rates_array[],
string symbol=NULL,
int timeframe=0
);

又は

int ArrayCopyRates(
void& dest_array[][],
string symbol=NULL,
int timeframe=0
);

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

  • MQLRates& rates_array[]
    レート情報のコピー先となるMQLRates型の配列を指定します。
  • void& dest_array[][]
    レート情報のコピー先となるdouble型の二次元配列を指定します。
  • string symbol=NULL
    レート情報を取得したい通貨ペア名を指定します。
  • int timeframe=0
    以下の表に従って、レート情報を取得したい時間軸を指定します。

    種 類
    定 数
    内 容
    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
    月 足

戻り値

 以下の値を返します。

  • 関数が正常に実行された場合
    レート情報がコピーされたバーの本数
  • 関数の実行に失敗した場合
    -1

 チャートを開いていない通貨ペアや時間軸のレート情報をコピーしようとすると、「ERR_HISTORY_WILL_UPDATED」(=エラーコード「4066」:ヒストリーデータを更新中)が生じ、定義済み変数「_LastError」に当該情報が格納されることがあります。

 この場合は、後で再試行する必要があります(ArrayCopySeries()関数も参照)。

注意点

 ArrayCopyRates()関数によってコピーされたレート情報を格納する配列は、通常、DLL関数にデータを渡すために使用されます

 上記の2つの型のうち、最初の型においては、ArrayCopyRates()関数は、MQLRates型の配列に仮想データをコピーするように実行されます。これは、時系列データが更新された場合は、配列rates_array[]は、常に実際のデータを参照することを意味します。

 上記の2つの型のうち、2番目の型においては、ArrayCopyRates()関数は、配列dest_array[][]に実際のデータをコピーするように実行されます。コピー先の配列は、静的配列として宣言されていたとしても、時系列データのサイズにリサイズされます

 RateInfo配列の最初の次元にはバーの総数が格納されており、2番目の次元には以下の6つの要素が格納されています。

  • -時間
  • -始値
  • -安値
  • -高値
  • -終値
  • -出来高

具体例

 「ターミナルウィンドウ」のエキスパートタブに、ユーロドルの1時間足チャートにおける、現在のバーの形成開始時刻と始値を表示させたい場合は、以下のように記述します。


#property strict

#property show_confirm

void OnStart()
{
  double array[][6];
  
  ArrayCopyRates(array,"EURUSD",PERIOD_H1);
  
  Print("Current Bar ",TimeToStr((datetime)array[0][0]),
        " Open ",array[0][1]);
}

関連ツール

インジケーターつくーる

インジケーターつくーる
MQL言語の学習ができ、裁量トレーダーもインジケーター開発が可能に
MQL言語の学習ができ、裁量トレーダーもインジケーター開発が可能に?|?fx-on.com

GogoJungleで購入する

 プログラミングの知識がなくても、ほぼマウスで選ぶだけで独自のインジケーターを作成することができるツールです。

 以下は、「インジケーターつくーる」の紹介動画です。

EAつくーる

『EAつくーる』
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!?|?fx-on.com

GogoJungleで購入する

 MT4で作動するEAをプログラミング不要で作成するためのツールです。

特 徴

  • インジケーターを組み合わせることで、EAを簡単に作ることができます。
    インジケーターは、MT4に標準で装備されているもののほか、市販のものも使用することができます
  • EAはmq4ファイルで作成されるので、mqlの学習にも役立ちます。
  • 作成したEAの著作権は本ツールを使用してEAを作成した本人に属し、販売なども自由です
  • シンプルなロジックのEAから高度なオプション付きのEAまで、簡単に作成することができます。

セット

EAつくーる&インジケーターつくーるセット販売
EAつくーる&インジケーターつくーるセット販売
EAつくーる&インジケーターつくーるセット販売?|?fx-on.com

GogoJungleで購入する

 「インジケーターつくーる」と「EAつくーる」をそれぞれ単品で購入すると、合計34,600円(税込)必要となるところ、両者をセット購入することによって、13%OFFの29,800円(税込)で購入することができます。