路路发智能交易研发中心

 找回密码
 立即注册
查看: 2352|回复: 0

MT4智能交易编程教程-CopyHigh函数

[复制链接]

管理员

MT4软件工程师

Rank: 9Rank: 9Rank: 9

积分
6521
帖子
2771
主题
2761
QQ
发表于 2014-3-27 09:55:58 | 显示全部楼层 |阅读模式
MT4智能交易编程教程-CopyHigh函数
当复制未知数量数据时,推荐使用动态数组为目标数组,因为如果要求数据账户少于(或多于)目标数值的长度,函数试图重新分配内存以完全适应要求数据。
如果知道所需复制的数据数量,为了阻止内存过多分配,最好使用 静态分配缓冲区 。
无论目标数组- as_series=true 或者 as_series=false的属性是什么,数据就会复制,以至于最旧的数组元素会在记忆内存开始中放置。有3个变量函数可供调用。
调用第一位置和要求元素的数量
int  CopyHigh(
   string           symbol_name,      // 交易品种名称
   ENUM_TIMEFRAMES  timeframe,        // 周期
   int              start_pos,        // 启动位置
   int              count,            // 复制的数据计算
   double           high_array[]      // 复制的目标数组
   );

调用起始位置日期和要求元素数量
int  CopyHigh(
   string           symbol_name,      // 交易品种名称
   ENUM_TIMEFRAMES  timeframe,        // 周期
   datetime         start_time,       // 启动日期和时间
   int              count,            // 复制的数据计算
   double           high_array[]      // 复制的目标数组
   );

调用起始位置和要求时间间隔的日期末尾
int  CopyHigh(
   string           symbol_name,      // 交易品种名称
   ENUM_TIMEFRAMES  timeframe,        // 周期
   datetime         start_time,       // 启动日期和时间
   datetime         stop_time,        // 结束日期和时间
   double           high_array[]      // 复制的目标数组
   );

参量
symbol_name
[in] 交易品种名称。
timeframe
[in] 周期。
start_pos
[in]  复制的第一元素起始位置。
count
[in]  复制数据点。
start_time
[in]  复制第一个元素的起始时间。
stop_time
[in] 字节时间,与复制最后元素相一致。
high_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第一种形式。


外汇智能交易,成就财富梦想!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


MT4编程培训|EA定制开发|QQ在线咨询|路路发智能交易研发中心

GMT+8, 2024-12-22 22:19 , Processed in 0.144806 second(s), 26 queries .

© 2009-2022 520EA.com EA668.com

快速回复 返回顶部 返回列表