MT4智能交易编程教程-CopyOpen函数
当复制未知数量数据时,推荐使用 动态数组 为目标数组,因为如果要求数据账户少于(或多于)目标数值的长度,函数试图重新分配内存以完全适应要求数据。 如果知道所需复制的数据数量,为了阻止内存过多分配,最好使用 静态分配缓冲区。 无论目标数组- as_series=true 或者 as_series=false的属性是什么,数据就会复制,以至于最旧的数组元素会在记忆内存开始中放置。有3个变量函数可供调用。 调用第一位置和要求元素的数量 int CopyOpen(
string symbol_name, // 交易品种名称
ENUM_TIMEFRAMES timeframe, // 周期
int start_pos, // 启动位置
int count, // 复制的数据计算
double open_array[] // 复制开仓时间的目标数组
); |
调用起始位置日期和要求元素数量 int CopyOpen(
string symbol_name, // 交易品种名称
ENUM_TIMEFRAMES timeframe, // 周期
datetime start_time, // 启动日期和时间
int count, // 复制的数据计算
double open_array[] // 用于开盘柱的目标数组
); |
调用起始位置和要求时间间隔的日期末尾 int CopyOpen(
string symbol_name, // 交易品种名称
ENUM_TIMEFRAMES timeframe, // 周期
datetime start_time, // 启动日期和时间
datetime stop_time, // 结束日期和时间
double open_array[] // 用于开盘柱的目标数组
); |
参量 symbol_name [in] 交易品种名称。 timeframe [in] 周期。 start_pos [in] 复制的第一元素起始位置。 count [in] 复制的数据点。 start_time [in] 复制的第一元素起始时间。 stop_time [in] 复制的最后元素的起始时间。 open_array[] [out] 双精度 类型数组 返回值 返回数组中元素数量或者错误情况下-1。 注释 如果要求的数据的全部间隔没有在可行数据的服务器中,函数返回-1,如果外部数据TERMINAL_MAXBARS(图表中的最大字节量)是要求的,函数也会返回-1。 当向指标要求数据,如果要求的时序列没有建立或者需要从服务器上下载,函数很快会返回-1,但是下载/建立的过程将会开始。 当EA交易或脚本要求数据时,来自服务器的下载会开始,如果终端本地没有这些数据,要求建立的时序列就会开始,如果数据可以从本地历史建立但尚未准备好。函数在超时期满时,会返回一定数量的准备好的数据,但是历史下载会继续,在下一个类似要求函数中会返回更多数据。 When requesting data by the start date and the number of required elements, only data whose date is less (earlier) or equal to the date specified. It means, the open time of any bar, for which value is returned (volume, spread, value on the indicator buffer, prices Open, High, Low, Close or open time Time) is always less or equal to the specified one. 当在日期指定范围内要求数据,只有间隔中的数据才能返回,间隔建立并指到秒。这表示,任意字节的开始时间,返回的值(成交量,传播,指标缓冲区的值,开仓价,最高阶,最低价,收盘价或者开仓时间)是间隔要求范围内的。 因此,如果当前日期是星期六,想要复制指定的一周的时间表 start_time=Last_Tuesday 和 stop_time=Last_Friday ,函数的返回值是0,因为每周开盘时间是星期日,但是一周字节不能分成特殊的间隔。 如果需要返回与当前未完成字节相类似的值,可以调用指定的start_pos=0和count=1第一种形式。 See a detailed example of requesting history data in section Object Binding Methods. The script available in that section shows how to get the values of indicator iFractals on the last 1000 bars and how to display the last 10 up and 10 down fractals on the chart. A similar technique can be used for all indicators that have missing data and that are usually drawn using the following styles: ·DRAW_SECTION, ·DRAW_ARROW, ·DRAW_ZIGZAG, ·DRAW_COLOR_SECTION, ·DRAW_COLOR_ARROW, ·DRAW_COLOR_ZIGZAG.
|