CopyTicks

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

bool  matrix::CopyTicks(
  string          symbol,                // 銘柄名
  ulong           flags,                 // 受け取るティックの種類を定義するフラグ
  ulong            from_msc,             // ティック要求の開始時刻
  ulong            count                 // 受信するティックの数
  );

ベクトルメソッド

bool  vector::CopyTicks(
  string          symbol,                // 銘柄名
  ulong           flags,                 // 受け取るティックの種類を定義するフラグ
  ulong            from_msc,             // ティック要求の開始時刻
  ulong            count                 // 受信するティックの数
  );

パラメータ

symbol

[in] 銘柄

flags

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

from_msc

[in] ティック要求範囲の開始時刻。時刻は、1970年1月1日からのミリ秒単位で指定されます。from_msc=0の場合、countに等しい最後のティック数が返されます。

count

[in] 要求されたティックの数。from_msc及びcountパラメータが指定されない場合、2000個を超えない全てのティックが書き込まれます。

 

戻り値

成功の場合は true、エラーが発生した場合は false

注意事項

CopyTicks()の最初の呼び出しでは、ハードドライブに保存されている関連する銘柄のティックデータベースの同期を開始します。ローカルデータベースが要求されたすべてのティックを提供しない場合、不足しているティックは取引サーバから自動的にダウンロードされます。CopyTicks()で指定したfrom_mscから現在までのティックが同期されます。その後、この銘柄に到着するすべてのティックがティックデータベースに追加され、同期状態が維持されます。

from_msc及びcountパラメータが指定されない場合、2000個を超えない全てのティックが行列/ベクトルに書き込まれます。

指標では、CopyTicks()メソッドはすぐに結果を返します。指標から呼び出されると、CopyTick()は銘柄の利用可能なすべてのティックをすぐに返し、利用可能なデータが不十分な場合はティックデータベースの同期を開始します。 同じ銘柄のすべての指標は1つの共通スレッドで動作するため、指標は同期の完了を待つことができません。同期後、CopyTicks()は、次の呼び出し時に要求されたすべてのティックを返します。指標では、各ティックの到着後にOnCalculate()関数が呼び出されます。

エキスパートアドバイザーとスクリプトでは、CopyTicks()は最大45秒間結果を待機できます。指標とは異なり、すべてのエキスパートアドバイザーまたはスクリプトは個別のスレッドで動作するため、最大で同期が完了するまで45秒待機できます。この間に必要な量のティックが同期されなかった場合、CopyTicks()はタイムアウトまでに利用可能なティックを返し、同期を続行します。エキスパートアドバイザーのOnTick()はすべてのティックのハンドラではなく、エキスパートアドバイザーに市場の変化を通知するだけです。これは一括変更である可能性があります。端末は複数のティックを同時に受信できますが、OnTick()は1回だけ呼び出され、エキスパートアドバイザーに最新の市場状態を通知します。

データリターン率:端末は、高速アクセスキャッシュ内の各金融商品の直近の4096ティックを保存します(市場深度が実行されている銘柄の場合は65536 ティック)。このデータに関する要求は最速で実行されます。現在の取引セッションで要求されたティックがキャッシュを超えている場合、CopyTicks()は端末メモリに保存されているティックを呼び出します。これらの要求は、完了するまでにより多くの時間を必要とします。最も低速の要求は他の日のティックに対するするものです。この場合、データはドライブから読み取られます。

ENUM_COPY_TICKS

ENUM_COPY_TICKS列挙には、行列または配列に渡されるデータの型を指定するフラグが含まれています。フラグの組み合わせにより、1回の要求で履歴から複数のシリーズを取得できます。行列の行の順序は、ENUM_COPY_TICKS列挙の値の順序に対応します。言い換えれば、行列内でHighデータを含む行は常にLowデータを含む行よりも高くなります。

ID

説明

COPY_TICKS_INFO

1

買い気配値および/または売り気配値の変化を含むティック

COPY_TICKS_TRADE

2

Lastおよび/またはVolume価格の変化を含むティック

COPY_TICKS_ALL

3

すべてのティック

COPY_TICKS_TIME_MS

1<<8

ミリ秒単位でのティック時刻

COPY_TICKS_BID

1<<9

Bid値

COPY_TICKS_ASK

1<<10

Ask値

COPY_TICKS_LAST

1<<11

Last値(最終約定値)

COPY_TICKS_VOLUME

1<<12

Last値の数量

COPY_TICKS_FLAGS

1<<13

ティックのフラグ

データ配置

 

 

COPY_TICKS_VERTICAL

32768

ティックは縦軸に沿って行列にコピーされます。受信したティックは行列内で垂直に配置されます。つまり、最も古いティックが行列最初の行に配置され、最新のティックが最後の行に配置されます。

 

デフォルトのコピーでは、ティックが横軸に沿って行列に追加されます。

 

このフラグは、行列にコピーする場合にのみ適用されます。

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

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

 

参照

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