CopyTicksRange

この関数は指定された期間内のティックをMqlTick形式で ticks_arrayで受け取ります。インデックスは過去に始まって現在に終わるので、インデックス 0 を持つティックが配列で一番古いものです。ティックの分析のためにはflagsフィールドを確認します。これは何が変わったのかを正確に示します。

int  CopyTicksRange(
  const string    symbol_name,          // 銘柄名
  MqlTick&         ticks_array[],        // ティックを受け取る配列
  uint            flags=COPY_TICKS_ALL// 受け取るティックの種類を定義するフラグ
  ulong           from_msc=0,            // ティックがリクエストされた初めの日
  ulong            to_msc=0              // ティックがリクエストされた最後の日
  );

パラメータ

symbol_name

[in]  シンボル

ticks_array

[out]  ティックを受け取る MqlTick 型の静的もしくは動的配列。静的配列が要求された時間間隔のすべてのティックを保持できない場合、可能な最大量のティックが受信されます。この場合、この関数はERR_HISTORY_SMALL_BUFFER (4407) エラーを生成します。

フラグ

[in] 要求されたティックのタイプを定義するフラグCOPY_TICKS_INFO – 買値と売値の変更でのティック、COPY_TICKS_TRADE –ラストと数量の変更でのティック、COPY_TICKS_ALL – 全てのティック。任意のタイプの要求に対して、前のティックの値がMqlTick構造体の残りのフィールドに追加されます。

from_msc

[in]  ティックリクエストの初めの日。1970.01.01 から経過したミリ秒。from_mscパラメータが指定されていない場合、履歴の先頭からのティックが送信されます。time >= from_msc を持つティックが送信されます。

to_msc

[in]  ティックリクエストの最後の日。1970.01.01 から経過したミリ秒。time <= to_msc を持つティックが送信されます。to_mscパラメータが指定されていない場合、履歴の最後までのティックが送信されます。

戻り値

複製されたティック数(エラーの場合は -1 )GetLastError()は下記のエラーを返します。

  • ERR_HISTORY_TIMEOUT – ティック同期の待機時間が終わり、関数はすべてのものを送信しました。
  • ERR_HISTORY_SMALL_BUFFER – 静的バッファーが小さすぎます。配列が格納できる量だけが送信されました。
  • ERR_NOT_ENOUGH_MEMORY – 指定された範囲から動的ティック配列に履歴を受け取るためのメモリが不十分です。ティック配列に十分なメモリを割り当てられませんでした。

注意事項

CopyTicksRange() 関数は、指定された範囲(例えば履歴の特定の日など)から厳密にティックを要求するために使用されます。同時に、CopyTicks()では開始日のみを指定することができます。例えば、月の初めから現在の瞬間までのすべてのティックを受け取ります。

参照

SymbolInfoTick現在価格の構造体OnTickCopyTicks