将时间序列复制到矩阵和向量
matrix<T>::CopyRates 方法将具有报价历史记录的时间序列直接复制到矩阵或向量。该方法的工作方式类似于我们将在第五章关于 时间序列章节中提到的函数,即: CopyRates 和单独的 Copy 函数 ,用于 MqlRates 结构体的每个字段。
bool matrix<T>::CopyRates(const string symbol, ENUM_TIMEFRAMES tf, ulong rates_mask,
ulong start, ulong count)
bool matrix<T>::CopyRates(const string symbol, ENUM_TIMEFRAMES tf, ulong rates_mask,
datetime from, ulong count)
bool matrix<T>::CopyRates(const string symbol, ENUM_TIMEFRAMES tf, ulong rates_mask,
datetime from, datetime to)
在这些参数中,你需要指定交易品种、时间范围以及请求的柱线的范围:按编号和数量,或按日期范围。复制数据时,将最旧的元素放在矩阵/向量的开头。
rates_mask 参数指定带有一组可用字段的来自 ENUM_COPY_RATES 枚举的标志组合。该标记组合允许你在一个请求中从历史记录获取若干时间序列。在此情况下,矩阵中的行顺序将对应于 ENUM_COPY_RATES 枚举中的值顺序,尤其是矩阵中具有 High 数据的行将始终在具有 Low 数据的行上面。
复制到向量时,仅可指定一个来自 ENUM_COPY_RATES 枚举的值。否则将会出错。
标识符 |
值 |
说明 |
|---|---|---|
COPY_RATES_OPEN |
1 |
Open 价格 |
COPY_RATES_HIGH |
2 |
High 价格 |
COPY_RATES_LOW |
4 |
Low 价格 |
COPY_RATES_CLOSE |
8 |
Close 价格 |
COPY_RATES_TIME |
16 |
柱线打开次数 |
COPY_RATES_VOLUME_TICK |
32 |
分时报价交易量 |
COPY_RATES_VOLUME_REAL |
64 |
真实交易量 |
COPY_RATES_SPREAD |
128 |
点差 |
|
组合 |
|
COPY_RATES_OHLC |
15 |
Open, High, Low, Close |
COPY_RATES_OHLCT |
31 |
Open, High, Low, Close, Time |
我们将在 解方程 一节查看该函数的使用示例。