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

[输入]  品种。

flags

[输入] ENUM_COPY_TICKS 枚举中的标志组合,指示所请求数据的内容。当复制到向量时,只能从 ENUM_COPY_TICKS 枚举中指定一个值,否则会发生错误。

from_msc

[输入]  请求跳价的开始时间。 自 1970 年 01 月 01 日起,时间以毫秒为单位指定。 如果 from_msc=0,则返回等于 'count' 的最后跳价数字。

count

[输入]  所请求跳价的数量。 如果参数 'from_msc' 和 'count' 未指定,则将写入所有可用的跳价,但不超过 2000。

 

返回值

成功时返回 true,如果发生错误则 false。

注意

首次调用 CopyTicks() 会启动硬盘驱动器上存储的相关品种跳价数据库的同步。 如果本地数据库没有提供全部请求的跳价,则缺失的跳价将自动从交易服务器下载。 跳价的同步自 CopyTicks() 中指定的 from_msc 到当前时刻。 之后,该品种所有到达的跳价都将添加到跳价数据库之中,从而使其保持同步状态。

如果 from_msccount 参数未指定,则把全部可用跳价,但不超过 2000 个,写入矩阵/向量之中。

在指标中,CopyTicks() 方法立即返回结果:当从指标调用时,CopyTick() 会立即返回品种的所有可用跳价,如果可用数据不足,则启动跳价数据库的同步。 同一品种上的所有指标都在一个公用线程中运行,因此指标不能等待同步完成。 同步后,CopyTicks() 将在下一次调用期间返回所有请求的跳价。 在指标中,OnCalculate() 函数在每次跳价到达后调用。

在智能系统和脚本中,CopyTicks() 可以等待结果 45 秒:与指标不同,每个智能系统或脚本都在单独的线程中运行,因此为完成同步最多可以等待 45 秒。 如果在此期间无法同步所需数量的跳价,CopyTicks() 将在超时后返回可用的跳价,并继续同步。 智能系统里的 OnTick() 并非每次跳价都会处理,它只通知智能系统行情有所变化。 这可能是一批变化:终端可以同时接收多次跳价,而 OnTick() 只会调用一次,通知智能系统最新的行情状态。

数据返回率终端在高速访问缓存中为每个金融产品存储了 4096 个最后的跳价(市场深度为运营品种存储 65536 个跳价)。 有关此数据的请求执行速度最快。 如果当前交易时段请求的跳价超出缓存,CopyTicks() 将调用存储在终端内存中的跳价。 这些请求需要更多时间才能完成。 最慢的请并非那些请求其它日期的跳价,因为在这种情况下,数据是从驱动器读取的

ENUM_COPY_TICKS

ENUM_COPY_TICKS 枚举包含指定要传递给矩阵或数组的数据类型的标志。 标志组合允许在一个请求中从历史记录中获取多个序列。 矩阵中行的顺序将与 ENUM_COPY_TICKS 枚举中数值的顺序相对应。 换言之,含有最高价数据的行在矩阵中将始终高于含有最低价数据的行。

ID

说明

COPY_TICKS_INFO

1

包含卖价(Bid)和/或买价(Ask)价格变化的报价

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

最后价(最后成交价)

COPY_TICKS_VOLUME

1<<12

最后价交易量

COPY_TICKS_FLAGS

1<<13

跳价标志

数据排列

 

 

COPY_TICKS_VERTICAL

32768

报价沿垂直轴复制到矩阵中。接收到的报价将在矩阵中垂直排列,即最早的报价将位于第一行,而最新的报价将位于矩阵的最后一行。

 

使用默认复制时,报价会沿水平轴添加到矩阵中。

 

该标识仅在复制到矩阵时适用。

分析跳价标志以便找出哪些数据已变化:

  • TICK_FLAG_BID ― 跳价改变了出价
  • TICK_FLAG_ASK ― 跳价改变了要价
  • TICK_FLAG_LAST ― 跳价改变了最后成交价
  • TICK_FLAG_VOLUME ― 跳价改变了交易量
  • TICK_FLAG_BUY ― 跳价是买入成交的结果
  • TICK_FLAG_SELL ― 跳价是卖出成交的结果

 

参见

访问时间序列和指标CopyTicks