没错。我的 "MQL Recipes "的任务是用新的非繁琐类扩展标准 MQL 库,使交易者的工作更加方便。
至于价格书,提供最有效的二级数据访问机制至关重要。在这种情况下,通过中间类进行操作比在每个 OnBookEvent 上完全搜索堆栈要快得多(当然也更方便)。价格玻璃类中嵌入的算法是有原因的。
这篇文章尚未发表(篇幅较小,与您的文章不同),但您可以在我的博客中阅读。
P/S 在邻近的主题中阅读有关方向...
顺便说一句,关于这篇文章。
你不能按照你写的方式来做:
//+------------------------------------------------------------------+ //| BookEvent 函数| //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { //--- printf("价格玻璃" + symbol + "改变"); }
因为 BookEvent 事件是广播式的。
只要您订阅接收,您就会在 OnBookEvent() 中接收到所有信息、
中打开的所有内容。
这就是为什么您需要过滤选定符号的事件:
//+------------------------------------------------------------------+ //| BookEvent 函数| //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { //--- if ( symbol == _Symbol ) { printf("价格玻璃" + symbol + "改变"); } }
这篇文章没有发表(篇幅较小,与您的文章不同),但您可以在我的博客中阅读。
P/S 在邻近的主题中阅读关于方向....
顺便说一句,关于这篇文章。
你不能按照你写的方式来做:
因为 BookEvent 事件是广播式的。
只要您订阅接收,您就会在 OnBookEvent() 中接收到所有内容、
中打开的所有内容。
这就是为什么您需要只针对选定的符号过滤事件:
迈克尔,来自文档:
为指定工具打开价格簿,并订阅接收指定 价格簿变化的通知。
bool MarketBookAdd( |
也就是说,开发人员引入MarketBookAdd 的目的是,只有当 MarketBookAdd 中预定义的符号堆栈发生变化时,才会调用 OnBookEvent。因此,除了预定义的符号外,其他任何符号都不会被调用到 OnBookEvent。
读取 OnBookEvent()
В отличие от других событий, событие BookEvent является широковещательным. Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие. Поэтому необходимо анализировать имя символа, которое передается в обработчик в качестве параметра const string& symbol.
您好、
非常感谢你的贡献。
这正是我一直在寻找的。
市场深度对于黄牛来说是一个很好的指示。
但问题是,我从未在我的终端上真正看到过市场深度的交易量信息。
如何获取经纪人提供的交易量信息?
新文章 MQL5 酷客宝典: 实现您自己的市场深度已发布:
本文展示了如何利用市场深度 (DOM) 编程, 并介绍了 CMarketBook 类的操作原理, 它可扩展 MQL5 标准库的类, 并提供使用 DOM 的便利方法。
MQL5 语言持续发展, 并在每年当中提供更多交易信息的操作机会。其中一类交易数据是有关市场深度的信息。这是一个特殊的表格, 显示价格水平和限价指令的交易量。MetaTrader 5 有一个内置的市场深度用于显示限价单, 但是这还不够。首先, 您的 EA 必须要可以简单、便利的访问市场深度。当然, MQL5 语言有一些特别的功能可以操作这些信息, 但它们有一些低级功能需要附加的数学计算。
然而, 能够避免所有中间计算。您所有要做的就是编写一个特殊的类, 用于操作市场深度。所有复杂计算都在市场深度内执行, 且类本身可以提供操纵 DOM 价格和级别的便利方法。这个类能够以指标的形式简单地创建一个有效的面板, 它可以即刻反应出市场深度的价格状态:
图示. 1. 作为面板显示的市场深度
读完本文的第一章之后, 对于 MetaTrader 5 提供的规范市场深度所具有的令人印象深刻的能力更加清晰。我们不会在我们的指标里试图重复所有这些, 因为我们的任务将是完全不同的。通过实施创建用户友好的市场深度交易面板的例程, 我们将展示面向对象编程简单处理复杂数据结构的原理。我们将确保利用 MQL 5 从您的 EA 里直接访问市场深度不会很困难, 以及据此产生的视觉示意能够为我们提供便利。
作者:Vasiliy Sokolov