MQL5参考自定义交易品种CustomTicksReplace 

CustomTicksReplace

MqlTick类型数组数据完全替换指定时间间隔内自定义交易品种的价格历史。

int  CustomTicksReplace(
   const string     symbol,            // 交易品种名称
   long             from_msc,          // 开始日期
   long             to_msc,            // 结束日期
   const MqlTick&   ticks[],           // 即将用于自定义交易品种的数据数组
   uint             count=WHOLE_ARRAY  // 即将使用的ticks[]数组元素的数量
   );

参数

交易品种

[in]  自定义交易品种名称。

from_msc

[in]  即将移除的指定范围内价格历史的第一个报价时间。时间以毫秒为单位从01.01.1970开始计算。

to_msc

[in]  即将移除的指定范围内价格历史的最后报价时间。时间以毫秒为单位从01.01.1970开始计算。

ticks[]

[in]   以升序时间顺序排列的MqlTick类型报价数据数组。

count=WHOLE_ARRAY

[in]  即将用于在指定时间间隔内进行替换的ticks[]数组元素的数量。WHOLE_ARRAY意味着所有ticks[]数组元素都应被使用。

返回值

已更新报价的数量,错误情况下为-1。

注意

由于多个报价常常在报价流中有最多1毫秒的相同时间(正确报价时间保存在MqlTick结构的time_msc文件里),CustomTicksReplace函数不会根据时间自动排序ticks[]数组元素。因此,报价数组一定要及时以升序提前排列。

报价会日复一日的持续被替换,直至到达to_msc指定的时间或出现错误为止。从指定范围的第一天开始处理,然后是第二天。当检测到报价时间和升序(非降序)不匹配时,那么当日的报价替换停止。如果之前全部报价被成功替换,那么当日(错误报价时间)和指定间隔内全部剩余日保持不变。

如果ticks[] 数组包含任何时间的非报价数据(通常是任何时间间隔),那么使用ticks[]报价数据后,丢失数据对应的“hole”显示在自定义交易品种的历史中。换句话说,调用丢失报价的CustomTicksReplace函数等同于删除部分报价历史,就好比调用“hole”间隔的CustomTicksDelete函数。

如果报价数据库在指定时间间隔内没有数据,那么CustomTicksReplace将添加到数据库报价构成的ticks[]数组。

CustomTicksReplace函数通过报价数据库直接工作。

 

另见

CustomRatesDeleteCustomRatesUpdateCustomTicksDeleteCopyTicksCopyTicksRange