EATC

 找回密码
 立即注册
查看: 898|回复: 1

ArrayCopySeries()数组复制系列走势【数组篇-MQL4函数】

[复制链接]

283

主题

2119

帖子

1148

积分

客服

Rank: 7Rank: 7Rank: 7

积分
1148
发表于 2023-2-19 14:01:52 | 显示全部楼层 |阅读模式
int ArrayCopySeries( void array[], int series_index, void symbol, void timeframe)
复制一个系列的走势图数据到数组上.

对于数据数组内存没有真正的分配,没有真正地执行复制。当数组访问时,将会改变方向。在客户指标内禁止数组作为 数组下标分配。这种情况下,数组被真正复制。

如果数据从不同货币对/时间周期图表复制,数据可能缺乏。这种情况下, 错误 ERR_HISTORY_WILL_UPDATED (4066 - 拒绝刷新历史数据)将被放置到 last_error 变量中,并且在确定的时间周期内将重新尝试复制。

注解: 如果series_index是MODE_TIME, 那么第一个参量必须是日期型的数组

参数:
array[]   -   目标第一维数字数组。
series_index   -   连续数组识别符。必须是连续数组列表识别符其中的值。
symbol   -   当前货币对名称
timeframe   -   图表时间周期。可以是 列出时间周期的任意值。

示例:

datetime daytimes[];
int      shift=10,dayshift,error;
//---- 此Time[] 数组被排列在后面的命令
ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
error=GetLastError();
if(error==4066)
  {
   //---- 使两个以上接受只读
   for(int i=0;i<2; i++)
     {
      Sleep(5000);
      ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
      //---- 检查但前每日柱时间
      datetime last_day=daytimes[0];
      if(Year()==TimeYear(last_day) && Month()==TimeMonth(last_day) && Day()==TimeDay(last_day)) break;
     }
  }
if(Time[shift]>=daytimes[0]) dayshift=0;
else
  {
   dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND);
   if(Period()<PERIOD_D1) dayshift++;
  }
Print(TimeToStr(Time[shift])," 相应 ",dayshift," day bar opened at ", TimeToStr(daytimes[dayshift]));

回复

使用道具 举报

494

主题

1658

帖子

4071

积分

交易元老

Rank: 8Rank: 8

积分
4071
发表于 2023-12-14 10:59:38 | 显示全部楼层
谢谢
回复

使用道具 举报

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

本版积分规则

收藏本站|法律声明|Archiver|小黑屋|support@ea198.com|EATC ( 桂ICP备2022005787号 )

风险提示与免责声明:擅自从事外汇保证金交易的双方不受法律保护!社区内展示内容,均为网友自发分享,不构成投资建议,社区无法全面监控由第三方上传至社区的资源,因此不保证资源的合法性、安全性、完整性、真实性或品质等。您下载时,同意自行判断并承担所有风险。社区内的资源,仅限用于学习和研究目的,不得将用于商业或者非法用途,否则,一切后果请用户自负。社区信息来自网络,版权争议与社区无关,您下载后须在24个小时之内进行删除。如果您喜欢该内容,请支持正版。如有侵权请邮件与我们联系处理。