CopyTicksRange

MqlTick構造体から指定された日付範囲内のティックを取得して行列/ベクトルにします。要素は過去から現在までカウントされます。つまり、 インデックス0のティックが最も古いティックです。ティックの分析のためには、変更内容を正確に示すflagsフィールドを確認します。

bool  matrix::CopyTicksRange(
  string          symbol,                // 銘柄名
  ulong           flags,                 // 受け取るティックの種類を定義するフラグ
  ulong            from_msс,             // ティック要求の開始時刻
  ulong            to_msc                 // ティック要求の終了時刻
  );

ベクトルメソッド

bool  vector::CopyTicksRange(
  string          symbol,                // 銘柄名
  ulong           flags,                 // 受け取るティックの種類を定義するフラグ
  ulong            from_msс,             // ティック要求の開始時刻
  ulong            to_msc                 // ティック要求の終了時刻
  );

パラメータ

symbol

[in] 銘柄

flags

[in] 要求されたデータの内容を示すENUM_COPY_TICKS列挙からのフラグの組み合わせ。ベクトルにコピーする場合、ENUM_COPY_TICKS 列挙から1つの値のみを指定できます。そうしないと、エラーが発生します。

from_msc

[in] ティック要求範囲の開始時刻。時刻は、1970年1月1日からのミリ秒単位で指定されます。from_mscパラメータが指定されていない場合、履歴の先頭からのティックが送信されます。time >= from_mscを持つティックが返されます。

to_msc

[in] ティックが要求される最後の時刻。時刻は、1970年1月1日からのミリ秒単位で指定されます。time <= to_mscを持つティックが返されます。to_mscパラメータが指定されていない場合、履歴の最後までのティックが送信されます。

戻り値

成功の場合は true、エラーが発生した場合は falseGetLastError()は下記のエラーを返す場合があります。

  • ERR_HISTORY_TIMEOUT — ティック同期のタイムアウトが時間切れになり、関数が持っているものだけが返された
  • ERR_HISTORY_SMALL_BUFFER — 静的バッファが小さすぎるため、配列が格納できる量だけが返された
  • ERR_NOT_ENOUGH_MEMORY — 指定された範囲から動的ティック配列に履歴を受け取るためのメモリが不十分で、ティック配列に十分なメモリを割り当てられなかった

 

ティックフラグを分析して、どのデータが変更されたかを調べます。

  • TICK_FLAG_BID – Bid値が変更
  • TICK_FLAG_ASK  – Ask値が変更
  • TICK_FLAG_LAST – 直近約定値が変更
  • TICK_FLAG_VOLUME – 取引量が変更
  • TICK_FLAG_BUY — 買い取引の結果
  • TICK_FLAG_SELL — 売り取引の結果

注意事項

CopyTicksRange()メソッドは、正確に指定された範囲からのティックを要求するために使用されます。例は、履歴の特定の日のティックです。CopyTicks()では、開始日のみを指定して、月初から現在までのすべてのティックを受け取ることなどができます。

参照

時系列と指標へのアクセスCopyTicksRange