- 数组,缓冲器和时序列中索引方向
- 组织数据存储
- 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
访问时间序列和指标数据
该组函数使用时序列和指标,时序列与通常的倒序的数据数组不同――时序列的元素从数组末尾到开头进行索引(大多从当前数据到最早数据),为了复制时序列值和指标数据,仅使用 动态数组 即可完成,因为复制函数为收到的值分配数组的必要大小。
这项规则有一个重要的例外情况:如果时序列和指标的值需要经常复制吗,例如,每次在EA交易中调用 OnTick() 或者在指标中调用 OnCalculate() ,最好使用静态分配的数组 ,因为动态数组的内存分配操作需要额外时间,在测试和最佳化中会起到作用。
当使用函数访问时序列和指标的值时,要考虑索引方向,在 数组和时间序列中索引方向章节中有所描述。
指标和时序列数据的访问应用不考虑要求数据是否准备完好(也就是所谓的 异步访问),这对于自定义指标的计算来说非常重要,因此,如果没有数据,函数 Copy...() 类型会立即返回错误值。然而,当形成EA交易和脚本的访问时,接收数据的尝试会短暂停歇,只是为时序列要求的指标计算值的下载提供必要的时间。
组织访问数据 章节在MT5客户端中描述接收、存储和需求价格数据的细节。
历史上在数组中接收价格数据从末尾开始,物理上,新的数据通常从数组末尾开始编写,但数组索引通常是0,时序列数组中的0索引表示当前字节中的数据,也就是,在时间表中未完成的时间间隔。
时间表中单一价格字节可以形成,在 标准时间表 中预先定义21个。
函数 |
功能 |
---|---|
返回历史资料信息 |
|
返回规定交易品种和周期的历史字节数量 |
|
错误情况下(还没有计算数据)返回指标缓冲区计算的数据量或者-1 |
|
返回通过MqlParam参量类型数据创建的指定技术指标处理器 |
|
基于指定的句柄,返回指标输入参数的数量,以及参数的值和类型 |
|
如果没有其他,移除指标处理器并释放指标计算模块 |
|
从指定指标获得特定缓冲区数据到数组中。 |
|
将指定交易品种 比率结构的历史数据和周期放在数组中 |
|
从MqlRates结构获取指定交易品种周期和指定数量的同步时间序列。数据被收入到指定的数组集中。元素从现在到过去倒数,这意味着起始位置等于0表示当前柱形图。 |
|
将指定交易品种 开盘时间柱的历史数据和周期放在数组中 |
|
将指定交易品种 开盘价格柱的历史数据和周期放在数组中 |
|
将指定交易品种最大价格柱的历史数据和周期放在数组中 |
|
将指定交易品种最小价格柱的历史数据和周期放在数组中 |
|
将指定交易品种收盘价格柱的历史数据和周期放在数组中 |
|
指定交易品种订单交易量历史数据和周期放在数组中 |
|
指定交易品种交易量历史数据和周期放在数组中 |
|
指定交易品种点差历史数据和周期放在数组中 |
|
获得程序端为当前工作期积累的报价并写入数组 |
|
该函数可以在指定日期范围内以MqlTick格式接收报价到ticks_array |
|
返回可用于历史记录的相应交易品种和周期的柱形图的数量 |
|
根据时间搜索柱形图。这个函数返回与指定时间对应的柱形图指数 |
|
返回对应的图表上柱形图的收盘价(通过'shift'参数表示) |
|
返回对应的图表上柱形图的最高价(通过'shift'参数表示) |
|
返回在对应图表上找到的最高值的指数(相对于当前柱形图的转移) |
|
返回对应的图表上柱形图的最低价(通过'shift'参数表示) |
|
返回在对应图表上找到的最小值的指数(相对于当前柱形图的转移) |
|
返回对应的图表上柱形图的开盘价(通过'shift'参数表示) |
|
返回对应的图表上柱形图的开盘时间(通过'shift'参数表示) |
|
返回对应的图表上柱形图的报价量(通过'shift'参数表示) |
|
返回对应的图表上柱形图的真实交易量(通过'shift'参数表示) |
|
返回对应的图表上柱形图的报价量(通过'shift'参数表示) |
|
返回对应的图表上柱形图的点差值(通过'shift'参数表示) |
尽管通过 ArraySetAsSeries() 函数可能像在时序列一样建立 数组 接入元素,数组元素存储的可能是同一个――只有索引方向不同,为证明这个事实,提供如下示例:
datetime TimeAsSeries[];
|
结果我们可以如下输出:
TimeCurrent = 2009.06.11 14:16:23
|
从结果中可以看到,TimeAsSeries数组增加的索引,索引减少的时间值,也就是说,从当前移到过去,对于普通数组ArrayNotSeries来说,结果是不同的――一旦索引增加,从过去移动到当前。
另见
数组动态 ,, ArrayGetAsSeries , ArraySetAsSeries , 数据系列