- 数组,缓冲器和时序列中索引方向
- 组织数据存储
- SeriesInfoInteger
- Bars
- BarsCalculated
- IndicatorCreate
- IndicatorParameters
- IndicatorRelease
- CopyBuffer
- CopyRates
- CopySeries
- CopyTime
- CopyOpen
- CopyHigh
- CopyLow
- CopyClose
- CopyTickVolume
- CopyRealVolume
- CopySpread
- CopyTicks
- CopyTicksRange
- iBars
- iBarShift
- iClose
- iHigh
- iHighest
- iLow
- iLowest
- iOpen
- iTime
- iTickVolume
- iRealVolume
- iVolume
- iSpread
CopySpread
函数在特定量中获得指定交易品种周期的特定点差价值数据到spread_array数据中。元素注释的命令是从现在到过去,例如,从当前位置0开始表示当前字节。
当复制未知数量数据时,推荐使用动态数组为目标数组,因为如果要求数据账户少于(或多于)目标数值的长度,函数试图重新分配内存以完全适应要求数据。
如果知道所需复制的数据数量,为了阻止内存过多分配,最好使用静态分配缓冲区。
无论目标数组- as_series=true 或者 as_series=false的属性是什么,数据就会复制,以至于最旧的数组元素会在记忆内存开始中放置。有3个变量函数可供调用。
调用第一位置和要求元素的数量
int CopySpread(
|
调用起始位置日期和要求元素数量
int CopySpread(
|
调用起始位置和要求时间间隔的日期末尾
int CopySpread(
|
参量
symbol_name
[in] 交易品种名称。
timeframe
[in] 周期。
start_pos
[in] 复制第一元素起始位置。
count
[in] 复制数据点。
start_time
[in] 复制第一元素起始位置。
stop_time
[in] 字节时间,复制最后元素相一致。
spread_array[]
[out] 整型 类型数组
返回值
返回数组中元素数量或者错误情况下-1。
注释
如果要求的数据的全部间隔没有在可行数据的服务器中,函数返回-1,如果外部数据TERMINAL_MAXBARS(图表中的最大字节量)是要求的,函数也会返回-1。
当向指标要求数据,如果要求的时序列没有建立或者需要从服务器上下载,函数很快会返回-1,但是下载/建立的过程将会开始。
当EA交易或脚本要求数据时,来自服务器的下载会开始,如果终端本地没有这些数据,要求建立的时序列就会开始,如果数据可以从本地历史建立但尚未准备好。函数在超时期满时,会返回一定数量的准备好的数据,但是历史下载会继续,在下一个类似要求函数中会返回更多数据。
当通过起始日期和所需的元素数量请求数据时,只有日期小于(早于)或等于指定日期的数据。这意味着,任何柱的开盘时间的返回值(交易量,点差,指标缓冲区,开盘价,最高价,最低价,收盘价或开盘时间)始终少于或等于指定的值。
当在日期指定范围内要求数据,只有间隔中的数据才能返回,间隔建立并指到秒。这表示,任意字节的开始时间,返回的值(成交量,传播,指标缓冲区的值,开仓价,最高阶,最低价,收盘价或者开仓时间)是间隔要求范围内的。
因此,如果当前日期是星期六,想要复制指定的一周的时间表 start_time=Last_Tuesday 和 stop_time=Last_Friday ,函数的返回值是0,因为每周开盘时间是星期日,但是一周字节不能分成特殊的间隔。
如果需要返回与当前未完成字节相类似的值,可以调用指定的 start_pos=0 和 count=1第一种形式。
示例:
#property indicator_separate_window
|
请见对象绑定方法部分请求数据历史记录的详细示例。该部分可用的脚本显示了如何获得最近1000柱上指标iFractals 的值和如何显示过去10的上下分形图。类似的技术可以用于所有丢失数据的指标并通常使用以下类型绘制: