将分时报价历史记录复制到矩阵或向量
与柱线一样,你可以将分时报价复制到向量或矩阵。通过 CopyTicks 和 CopyTicksRange 方法重载即可实现。它们的工作原理依据类似于 CopyTicks 和 CopyTicksRange 函数,但它们将数据接收到调用方中。这些函数将在第五章中关于 真实分时报价数组 (MqlTick 结构体)一节中详述。在这里我们将仅描述原型和要点。
bool matrix<T>::CopyTicks(const string symbol, uint flags, ulong from_msc, uint count)
bool vector<T>::CopyTicks(const string symbol, uint flags, ulong from_msc, uint count)
bool matrix<T>::CopyTicksRange(const string symbol, uint flags, ulong from_msc, ulong to_msc)
bool matrix<T>::CopyTicksRange(const string symbol, uint flags, ulong from_msc, ulong to_msc)
symbol 参数设置为其请求分时报价的金融工具的名称。分时报价范围可以不同的方式指定:
- 在 CopyTicks 中,可以指定为分时报价数(count 参数),从毫秒单位的某一刻 (from_msc) 开始。
- 在 CopyTicksRange 中,它可以是两个时间点的范围(从 from_msc 到 to_msc)。
至于复制的数据要包含每个分时报价的哪些组成部分,可在 flags 参数中以 ENUM_COPY_TICKS 枚举值的位掩码指定。
标识符 |
值 |
说明 |
---|---|---|
COPY_TICKS_INFO |
1 |
由 Bid 和/或 Ask 变化生成的分时报价 |
COPY_TICKS_TRADE |
2 |
由 Last 和 Volume 变化生成的分时报价 |
COPY_TICKS_ALL |
3 |
所有分时报价 |
COPY_TICKS_TIME_MS |
1 << 8 |
以毫秒为单位的时间 |
COPY_TICKS_BID |
1 << 9 |
Bid 价格 |
COPY_TICKS_ASK |
1 << 10 |
Ask 价格 |
COPY_TICKS_LAST |
1 << 11 |
Last 价格 |
COPY_TICKS_VOLUME |
1 << 12 |
交易量 |
COPY_TICKS_FLAGS |
1 << 13 |
前三位(低字节)确定请求的分时报价集,而其余位(高字节)确定这些分时报价的特性。
高字节标志只能用于矩阵组合,因为仅具有来自所有分时报价的特定字段的值的一行放在向量中。因此,应仅选择最高有效字节的一位来填充向量。
在填充矩阵的过程中选择分时报价的若干特性时,其中的行顺序将对应于枚举中元素的顺序。例如,Bid 价格将始终出现在高于具有 Ask 价格的行的具有更低索引的行中。
处理分时报价和向量的一个示例将在关于 机器学习的章节中提供。