跳至内容

CopyTime

CopyTime

该函数用于获取指定符号-周期对的历史数据,包括每个条形图的开盘时间,且数量有限。需要注意的是,元素的排序是从现在到过去,即起始位置0表示当前条形图。

CopyTime

当复制未知数量的数据时,建议使用动态数组作为目标数组,因为如果请求的数据量少于(或多于)目标数组的长度,函数会尝试重新分配内存,以确保请求的数据能够完全容纳。

如果你知道需要复制的数据量,最好将其存储到静态分配的缓冲区中,以避免过度分配内存。

无论目标数组的属性是as_series=true还是as_series=false,数据都会被复制,使得最旧的元素位于数组实际分配的内存起始位置。该函数调用有3种方式。

通过起始位置和所需元素数量调用

int  CopyTime(
   string           symbol_name,     // symbol name
   ENUM_TIMEFRAMES  timeframe,       // period
   int              start_pos,       // start position
   int              count,           // data count to copy
   datetime         time_array[]     // target array to copy open times
   );

通过起始日期和所需元素数量调用

int  CopyTime(
   string           symbol_name,     // symbol name
   ENUM_TIMEFRAMES  timeframe,       // period
   datetime         start_time,      // start date and time
   int              count,           // data count to copy
   datetime         time_array[]     // target array to copy  open times
   );

通过所需时间区间的起始和结束日期调用

int  CopyTime(
   string           symbol_name,     // symbol name
   ENUM_TIMEFRAMES  timeframe,       // period
   datetime         start_time,      // start date and time
   datetime         stop_time,       // stop date and time
   datetime         time_array[]     // target array to copy open times
   );

参数

symbol_name

[in] 符号名称。

timeframe

[in] 周期。

start_pos

[in] 第一个要复制的元素的起始位置。

count

[in] 要复制的数据数量。

start_time

[in] 第一个要复制的元素的开始时间。

stop_time

[in] 最后一个要复制的元素的条形图时间。

time_array[]

[out] datetime类型的数组。

返回值

如果发生错误,则返回复制的数据数量,否则返回-1。

注意

如果请求的数据范围完全不在服务器上的可用数据范围内,函数将返回-1。如果请求的数据超过TERMINAL_MAXBARS(图表上最多数量的条形图),函数也将返回-1。

如果请求的时间序列尚未构建或需要从服务器下载,函数将立即返回-1。

当通过起始日期和所需元素数量请求数据时,只有日期小于或等于指定日期的数据才会被返回。这意味着,任何条形图的开盘时间(无论是成交量、价差、指标缓冲区的值、开盘价、高价、低价、收盘价还是开盘时间Time)总是小于或等于指定日期。

当在指定的日期范围内请求数据时,只有该区间内的数据会被返回。这个区间以秒为单位计算。这意味着,任何条形图的开盘时间(无论是成交量、价差、指标缓冲区的值、开盘价、高价、低价、收盘价还是开盘时间Time)始终在请求的区间内。

因此,如果当前日期是星期六,尝试复制周周期数据的start_time=Last_Tuesday和stop_time=Last_Friday时,函数将返回0,因为周周期数据的开盘时间总是星期日,而一周的条形图并不在指定的区间内。

如果你需要返回与当前未完成的条形图对应的值,可以使用第一种调用方式,指定start_pos=0和count=1。

有关请求历史数据的详细示例,请参阅对象绑定方法部分。该部分提供的脚本展示了如何获取最近1000个条形图上iFractals的值,以及如何在图表上显示最近的10个上升和10个下降的碎形图。这种技术可以用于所有缺少数据且通常使用以下风格绘制的指标:

  • DRAW_SECTION,
  • DRAW_ARROW,
  • DRAW_ZIGZAG,
  • DRAW_COLOR_SECTION,
  • DRAW_COLOR_ARROW,
  • DRAW_COLOR_ZIGZAG.
最后更新于