当前市场信息(分时报价)
在 获取交易品种的最新分时报价一节中,我们已经遇到过 SymbolInfoTick 函数,其以 MqlTick 结构体的形式提供了关于最后一条分时报价(价格变化事件)的完整信息。如有必要,MQL 程序可以分别请求与该结构体的字段相对应的价格和交易量的值。二者表示为不同类型的特性,这些特性为 ENUM_SYMBOL_INFO_INTEGER 和ENUM_SYMBOL_INFO_DOUBLE 枚举的一部分。
标识符 |
说明 |
特性类型 |
---|---|---|
SYMBOL_TIME |
最新报价时间 |
datetime |
SYMBOL_BID |
买入价;最佳卖出价格 |
double |
SYMBOL_ASK |
卖出价;最佳买入价格 |
double |
SYMBOL_LAST |
最后一笔;最后一笔交易的价格 |
double |
SYMBOL_VOLUME |
最后一笔交易的成交量 |
long |
SYMBOL_TIME_MSC |
自 1970 年 01 月 01 日以来最后一次报价的时间(以毫秒为单位) |
long |
SYMBOL_VOLUME_REAL |
最后一笔交易的成交量(精度更高) |
double |
注意,两个与成交量相关的特性 SYMBOL_VOLUME 和 SYMBOL_VOLUME_REAL 的代码在两个枚举中是相同的。这是不同枚举的元素 ID 发生重叠的唯一情况。事实上,二者返回本质上相同的分时报价特性,只是表示精度不同而已。
与结构体不同的是,特性未提供类似 uint flags 的字段,该字段表示市场上哪种变化导致了分时报价的生成。该字段仅在结构体中有意义。
我们来尝试单独请求分时报价特性,并将其与 SymbolInfoTick 调用的结果进行比较。在快速变化的市场上,结果可能会有所不同。函数调用之间可能会出现一条新分时报价(甚至几条分时报价)。
void OnStart()
|
在特定情况下,很容易验证信息是否一致。
TimeToString(SymbolInfoInteger(_Symbol,SYMBOL_TIME),TIME_DATE|TIME_SECONDS)
|