CopyIndicatorBuffer

将指定数量中指定指标缓冲区的数据获取到向量

数据将被复制到向量中,定位到为该向量分配的物理内存开头的最早元素。共有三个函数选项。

根据初始位置和所需元素的数量进行访问

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // 指标句柄
   ulong     buffer_index,         // 指标缓冲区编号
   ulong     start_pos,            // 要复制的开始位置
   ulong     count                 // 要复制的元素数量
   );

根据开始日期和所需元素的数量进行访问

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // 指标句柄
   ulong     buffer_index,         // 指标缓冲区编号
   datetime  start_time,           // 复制的开始日期
   ulong     count                 // 复制的元素数量
   );

根据所需时间间隔的初始日期和最终日期进行访问

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // 指标句柄
   ulong     buffer_index,         // 指标缓冲区编号
   datetime  start_time,           // 复制的开始日期
   datetime  stop_time             // 复制的结束日期
   );

参数

indicator_handle

[in] 由相关指标函数获得的指标句柄。

buffer_index

[in]  指标缓存区的编号。

start_pos

[in]  第一个复制元素的索引编号。

count

[in]  复制的元素数。

start_time

[in]  第一个元素对应的柱形图时间。

stop_time

[in]  最后一个元素对应的柱形图时间。

返回值

如果成功,函数返回'true',如果出现错误则返回'false'。

注意

复制数据的元素(索引为buffer_index的指标缓冲区)从现在到过去进行计数,因此起始位置等于0表示当前柱形图(当前柱形图的指标值)。

当复制未知数量的数据时,您应该声明一个不指定大小的向量(不为数据分配内存),因为CopyBuffer()函数试图将接收向量的大小分配给复制数据的大小。

当需要部分复制指标值时,应该使用一个中间向量,将所需的数量复制到其中。从这个中间向量,您可以逐个成员地将所需数量的值复制到接收向量的所需位置

如果要复制预定数量的数据,建议预先声明一个向量并指定其大小,以避免不必要的内存重新分配。

从指标请求数据时,如果请求的时间序列尚未构建或需要从服务器下载,则该函数立即返回false,同时启动加载/构建。

当从EA或脚本请求数据时,如果程序端在本地没有合适的数据,则启动从服务器下载,或者如果可以从本地历史构建数据,但所需的时间序列尚未准备好,则开始构建必要的时间序列。该函数返回在超时到期时将准备好的数量。

另见

CopyBuffer