为自定义交易品种传递市场深度的状态。该函数可以推广市场深度,类似于价格从交易商服务器到达。
int CustomBookAdd(
|
参数
交易品种
[in] 自定义交易品种名称。
books[]
[in] MqlBookInfo数组类型数据充分描述了市场深度状态 ― 所有买卖请求。该传递的市场深度状态完全取代了过去的深度。
count=WHOLE_ARRAY
[in] 将要传递到函数的'books'数组元素的数量。默认使用整个数组。
返回值
添加报价的数量或错误情况下的-1。
注意
CustomBookAdd函数仅适用于市场深度所开放的自定义交易品种 ― 通过平台界面或MarketBookAdd函数。
当交易品种卖价和买价加入到市场深度时,不会更新。您应该控制最佳价格的变化,并使用CustomTicksAdd将其加入到报价中。
检查传递数据的有效性:价格和交易量不应是负值,并且类型、价格和交易量(MqlBookInfo.volume or MqlBookInfo.volume_real)应该为每一个元素而指定。如果至少有一个市场深度元素描述错误,系统将完全丢弃传递的状态。
MqlBookInfo.volume_real提高精确度交易量拥有高于常规MqlBookInfo.volume的优先级。如果两个值都为市场深度元素指定,那么会使用volume_real的值。
MqlBookInfo元素在'books'数组中的顺序并不重要。当保存数据时,程序端将根据其价格进行排序。
当保存数据时,检查接收人自定义交易品种的"Book depth" (SYMBOL_TICKS_BOOKDEPTH)参数。如果在传递的市场深度中,卖出请求的数量超过该值,则丢弃超出的部分。购买请求也是如此。
'books'数组的采样填充:
市场深度状态 |
Filling books[] |
---|---|
books[0].type=BOOK_TYPE_SELL; |
例如:
//+------------------------------------------------------------------+ |
另见