感谢您提供这篇文章。
关于错误的一点说明:
Все программы, работающие по данным стакана, по форме будут являться советниками, ведь обработчик события BookEvent есть только в советниках. Правда, можно сделать связку "советник-индикатор", где истинный индикатор сможет принимать данные от советника и обрабатывать состояние стакана.
这是不正确的,指标也可以处理 OnBookEvent。
没错,文件需要更正。您是否正在为此事撰写 ServiceDesk?
本文有一个小错误,仅供参考:
All programs working with Depth of Market data will have a form of an Expert Advisor, as only Expert Advisors feature the event handler of BookEvent. There is a possibility, however, to write an "Expert-Indicator" pair , where the indicator can receive data from the EA and process the Depth of Market state.
并非如此, 指示符也可以处理 BookEvent。这个错误是基于文档的错误,应该很快就会得到纠正。我们已与文章作者和服务台取得联系。
下午好,感谢您的文章,非常有用!
有这样一个问题,假设我处理BookEvent 事件,我的处理程序将删除、下订单,这反过来又将再次启动该事件.....,那么在下订单(删除订单)的截止日期和新的 BookEvent 事件再次形成的时刻,我最初的程序会被中断吗?因为我注意到代码执行并没有到达终点....。不是所有代码都被执行了...我希望我已经说清楚了 ))
下午好,感谢您的文章,非常有用!
有这样一个问题,假设我处理BookEvent 事件,我的处理程序将删除、下订单,这反过来又将再次启动该事件.....,那么在下订单(删除订单)的截止日期和新的 BookEvent 事件再次形成的时刻,我最初的程序会被中断吗?因为我注意到代码执行并没有到达终点....。不是所有代码都被执行了...我希望我已经说得很清楚了 ))
谢谢您的意见!
不会,当一个事件正在处理时,程序控制不会在新事件发生时自动转移到另一个处理程序...您可以使用 Print() 函数检查这一点(最好添加一个暂停的 Sleep())。
有一个 "事件队列 "的概念。
根据文档说明
程序只接收来自运行图形的事件。所有事件都会按照接收顺序一个接一个地处理。如果队列中已经有一个NewTick 事件,或者该事件正处于处理状态,则新的 NewTick 事件不会被放入 mql5 程序队列。同样,如果 mql5-program 队列中已有ChartEvent 事件或该事件正在处理中,则不会将该类型的新事件放入队列。定时器事件的处理方法与此相同--如果队列中已有定时器 事件或该事件已被处理,则不会将新的定时器事件放入队列。
事件队列的大小有限但足够大,因此对于正确编写的程序来说,队列溢出的可能性不大。如果队列溢出,新事件就会被丢弃,不会进入队列。
下午好。这篇文章信息量很大。我有以下问题。
有一项任务是根据执行订单的类型(市场订单/限价订单)过滤在交易工具上执行的交易。
如何将 OnBookEvent 事件和 OnTick 事件联系起来以完成这项任务,即如何确定交易中涉及的订单类型?据我所知,仅靠 OnBookEvent 是无法解决这个问题的。
Rubick:
......如何将 OnBookEvent 事件和 OnTick 事件联系起来解决这个问题,即如何确定交易中涉及哪些类型的订单?据我所知,这样的任务不能只通过 OnBookEvent 来解决。
新文章 MQL5 Cookbook: 处理 BookEvent已发布:
本文研究 BookEvent - 一个市场深度事件,以及它的处理原理。一个处理市场深度状态的 MQL 程序,作为例程。它采用面向对象方法编写。处理结果作为面板显示在屏幕上,还有市场深度级别。
正如众所周知的那样,MetaTrader 5 交易终端是一个多市场的平台,便于外汇,股市,期货和差价合约的交易。根据 自由职业 版块统计,交易者的交易数量不光在外汇市场增长。
在这篇文章中我希望给 MQL5 编程新手介绍 BookEvent 处理。这个事件与市场深度连接 - 股票资产和其衍生物的交易工具。然而,外汇交易员也发现市场深度很有用。在 ECN 账户中,流动性提供商提供订单数据,虽然只在他们的聚合模式。这些账户变得越来越流行。
1. BookEvent
根据文档,这个事件在市场深度状态变化时产生。让我们认可 BookEvent 是一个市场深度事件。
市场深度是一个订单数组,包括不同方向 (卖和买),价格和交易量。市场深度的价格接近市场,且因此认为是最佳的。
图例.1 MetaTrader 5 中的市场深度
在 MetaTrader 5 中,一个 "订单预定" 名为 "市场深度" (图例.1)。有关市场深度的详细信息可在客户终端的用户指南里找到。
作者:Dennis Kirichenko