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)错误。

flags

[in]  确定请求报价类型的标记。COPY_TICKS_INFO – 卖价和/或买价变化的报价, COPY_TICKS_TRADE – 最后价和交易量变化的报价, COPY_TICKS_ALL – 全部报价。对于任何请求类型,之前的报价值添加到其余的MqlTick结构的字段。

from_msc

[in]   您想请求报价的开始日期。从1970.01.01开始以毫秒计算。如果没有指定from_msc 参数,则从历史记录中最初的报价开始发送。报价时间 >= from_msc 已发送。

to_msc

[in]   您想请求报价的截至日期。从1970.01.01开始,以毫秒计算。报价时间 <= to_msc 已发送。如果没有指定to_msc 参数,则发送截至到历史记录结束的报价。

返回值

复制的报价数或错误时显示-1。GetLastError()可能返回以下错误:

  • ERR_HISTORY_TIMEOUT – 报价同步等待时间到达上限,函数已发送具有的全部报价。
  • ERR_HISTORY_SMALL_BUFFER – 静态缓冲区过小。只有数组可存储的数量已经发送。
  • ERR_NOT_ENOUGH_MEMORY – 接收指定范围的历史记录到动态报价数组的内存不足。无法为报价数组分配足够的内存。

注意

CopyTicksRange()函数用于严格的从一个指定范围请求报价,例如,从历史的某一天。与此同时,CopyTicks() 还可以仅指定开始日期,例如 – 接收月初至当前时间的全部报价。

另见

SymbolInfoTick当前价格结构OnTickCopyTicks