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]));
复制代码
|