MQL4函数哥 发表于 2020-4-12 21:02:14

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


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;
      if(Year()==TimeYear(last_day) && Month()==TimeMonth(last_day) && Day()==TimeDay(last_day)) break;
   }
}
if(Time>=daytimes) dayshift=0;
else
{
   dayshift=ArrayBsearch(daytimes,Time,WHOLE_ARRAY,0,MODE_DESCEND);
   if(Period()<PERIOD_D1) dayshift++;
}
Print(TimeToStr(Time)," 相应 ",dayshift," day bar opened at ", TimeToStr(daytimes));

1514135115 发表于 2020-9-5 22:20:20

新手学习启蒙

thekof32 发表于 2021-2-23 17:35:07

谢谢分享!

lsxforx 发表于 2021-10-10 13:02:18

头像不错,大美妞

yuwentao4761 发表于 2021-12-16 04:07:17

[微笑] 感谢分享!

手艺人 发表于 2022-1-10 12:41:59

谢谢分享

紫竹青荷 发表于 2022-4-23 00:40:47

感谢分享

pengjhl 发表于 2022-4-23 08:31:11

谢谢分享

nanaliu 发表于 2022-4-23 08:43:39

看看。。感谢分享。。。。
页: [1]
查看完整版本: ArrayCopySeries()数组复制系列走势【数组篇-MQL4函数】