MarketBookRelease
Обеспечивает закрытие стакана цен по указанному инструменту, а также отменяет подписку на получение извещений об изменении указанного стакана.
boolMarketBookRelease(
string symbol // 字符名
);
Параметры
symbol
[in] Имя символа.
Возвращаемое значение
Значение true в случае успешного закрытия, иначе false.
Примечание
Обычно эта функция должна вызываться из функции OnDeinit() в том случае, если в функции OnInit() была вызвана соответствующая функция MarketBookAdd(). Либо должна вызываться из деструктора класса, если в конструкторе этого класса вызывается соответствующая функция MarketBookAdd().
Определение трендов, построение каналов, выявление циклов и уровней поддержки/сопротивления — все эти и многие другие задачи решаются при помощи аналитических объектов. Всего в торговой платформе доступно 46 таких инструментов. Среди них имеются геометрические фигуры, различные каналы, инструменты Ганна, Фибоначчи, Эллиотта и многое другое. В...
我在问题中写的字难道没有任何意义吗?
您的示例
该代码由该主题的作者在类https://www.mql5.com/zh/articles/3336 的描述中发布。
所以这个问题至少不应该向我提出...
这些话对我来说没有任何意义,只有一点--你没有研究过这个例子的代码。
您给出了一个通过以下方式删除的示例
m_book_market.SetMarketBookSymbol(Symbol())如果我们打开这个方法,就会看到一个订阅传递的股票。
但不是订阅删除 )) 订阅删除是通过函数完成的:
一定是复制粘贴。就是这样。作者可能在浏览器中编写了部分代码。
而不是
CMarketBook MarketBook.mqh
写入
CMarketBook MarketBook;
这是给你的同名人出的一个难题 )) 他不喜欢读代码,而是等待现成的答案 ))
这对我的同名人来说是个棘手的问题 )) 他不喜欢读代码,而是等待现成的答案 ))
这正是我一直在做的事情,最初我是按照你的示例来移除玻璃的,这实际上是在使用帮助中的玻璃时所需要的。
但当我使用这种方法时、
会出现以下错误
P|S发现了问题所在,原来如果在类的构造函数中使用了这个方法,就没有必要在OnDeinit中使用它。
我收回我的问题,你可以给我一颗糖。
如果不在类中使用析构函数
该构造正常工作
但也许我只是不知道如何使用析构函数,或者析构函数的实现方式有问题,因此不能正常工作。
订阅函数是广播式的,它保证在 OnDeinit 时删除所有订阅,如果代码中对象过多且删除延迟,则可能没有足够的时间分配给 OnDeinit 处理,这意味着某些对象不会被删除。
在这种情况下,你可以寻找代码中的问题,这是更正确的做法,因为问题显然存在,而且总有一天会让你吃不了兜着走;或者直接在 OnDeinit 中删除它们,然后忘掉它。
ps.
我一直都是这么做的。
很明显,你没有解析这个示例,或者你从一开始就写了一段错误的代码,比如,把它拆开,我会笑的 ))
有了这样一个对象CMarketBook MarketBook.mqh,编译器 就能编译代码了吗? 你创建了一个 对象 MarketBook .mqh,编译器忽略了这一亵渎,但你在 使用对象 MarketBook 时,在OnInit阶段会出现错误,因为你 没有这样一个对象。我立刻注意到了这一点,因为这个示例显然是行不通的,所以我问了你一个问题,但你尽职尽责地把一切都归咎于类的开发者和他的示例....
要么提供一个可以重现这个错误的工作代码示例,要么像你现在这样一次性解释清楚所有问题,而不需要多余的代码,这样你也可以节省时间。
订阅函数是广播式的,它保证在 OnDeinit 时删除所有订阅,如果代码中的对象过多,且删除延迟,则可能没有足够的时间分配给 OnDeinit 处理,这意味着有些对象不会被删除。
在这种情况下,你可以在代码中查找问题(这是比较正确的做法,因为很明显存在问题,而且总有一天会给你带来麻烦),或者直接在 OnDeinit 中删除它们,然后忘掉它。
ps.
你显然没有解析这个示例,或者从一开始就写了一段错误的代码,好像你想让我取笑它似的 )).
有了这样一个对象CMarketBook MarketBook.mqh,编译器 就能编译代码了吗? 嗯,你创建了一个对象MarketBook .mqh,编译器错过了这一亵渎,但你 使用的是对象 MarketBook,在 OnInit 阶段会出现错误,因为你没有创建这样一个对象,我马上就给了你。我立刻注意到了这一点,因为这个例子显然是行不通的,所以我问了你一个问题,但你尽职尽责地把一切都推卸给了类的开发者....。
你要么提供一个可以重现这个错误的工作代码示例,要么就像现在这样一次性解释清楚所有内容,而不需要多余的代码,这样你也可以节省时间。
你只是在故弄玄虚,我才不管作者在示例中做了什么,犯了什么错误,你必须是个彻头彻尾的白痴才会意识不到这只是个错误。
问题完全不同。
在他的示例中,有初始化--调用玻璃,然后通过 Refresh() 方法更新,但没有通过
MarketBookReleaseOnDeinit 或相同的实现来删除,而是在类的析构函数中。
这就是为什么我问作者一个问题,在他看来使用他的类杀死玻璃杯更正确,因为在主要示例和类本身中都缺少这项工作,如果能在之前实现就好了,我并不是说有什么不好等,只是在我看来缺少了这一点。
我的问题是向作者提出的,而且是正常提出的,为什么要问和讨论我的问题,并喋喋不休地说我读了什么,我想从谁那里得到什么等等。我自己能够理解我代码中的一切,这正是我所做的....。问题完全不同。
在代码的上方,我用黄色添加了在我看来应该出现在所附指标中的内容。
你只是在故弄玄虚,我不管作者在例子中做了什么,印错了什么,你必须是个彻头彻尾的白痴,才会意识不到这只是个错别字。
问题完全不同。
在他的例子中,有初始化--调用 glass,然后通过 Refresh() 方法更新,但没有通过
OnDeinit 或相同的实现来删除,而是在类的析构函数中。
这就是为什么我问作者一个问题,在他看来,使用他的类杀死玻璃是更正确的做法,因为在他的主要示例和类本身中都缺少这项工作。
问题是向作者提出的,也是正常的,为什么要花几页纸来询问和讨论我的问题和蛊惑人心的东西,比如我读到了什么,我想从某人那里得到什么,等等。问题完全不同
在上面的代码中,我用黄色添加了在我看来应该出现在所附指标中的内容。
这里没有 "心灵感应",您在原始问题中给出的示例并没有重现您所写的问题,此外,所有机制都存在于类中,解决方案已提供给您,但我只看到了责难,争议已结束。
这里没有心灵感应者,你在原问题中举的例子也没有再现你所写的问题,此外,所有的机制在课堂上都存在,解决办法也给了你,但我除了责备之外什么也没看到,争论已经结束了。
- 首先,我的问题中根本没有问题。
- 其次,我并没有责备任何人,我只是向作者提出了一个简单的问题,以澄清我的猜测......而你在每条信息中都对我的代码提出了一些可笑的指责和问题,而这些代码根本不是我写的,而是以文章中对该类的描述为例。
帮助中说
析构 函数是一个特殊函数,当一个类的对象被销毁 时会自动调用。析构函数的名称写成类名,并加上斜杠(~)。无论是否存在析构函数,字符串、动态数组和需要去初始化的对象都会被去初始化。如果存在析构函数,这些操作将在调用析构函数后执行。
该类中没有析构函数会关闭价格玻璃的方法
MarketBookRelease此外,在指标本身的
中也没有,我被问到一个简单的问题--如何正确地使价格玻璃去初始化。
我希望得到这个问题的答案、
- 不要发明任何东西,类本身会关闭一切,即使类中没有声明析构函数。
- 添加
或者在类中添加一个析构函数。
你会很高兴的......然后你就开始大放厥词,指责我在别人的代码中写了一些错误的地方,说我的代码无法编译,这一点我不用你也知道,我读不懂....。在俄语中,你把我当成了一只鹿。
完美 !非常 完美!干得好新文章《使用 CGraphic 库实施市场深度扫描》已发布:
作者: Vasiliy Sokolov瓦西里-索科洛夫
谢谢,这是个很棒的工具,非常容易修改。