错误、漏洞、问题 - 页 895

 
Konstantin83: 一个带有魔力的订单被打开。然后这种魔力被转移到交易和位置上。然后,当头寸 以盈利或止损平仓 时,这个神奇的数字就不会转移到平仓单上。

我如何通过神奇的交易来了解头寸的利润?收盘交易没有去那里,因为它没有魔力。

位置标识符

职位ID是给每个新开的职位的唯一号码,在整个生命周期内不会改变。位置的翻转不会改变position_identifier。

交易_职位_ID

参与该交易的开仓、修改或平仓的头寸的标识符。每个头寸都有一个独特的标识符,它被分配给该头寸有效期内的所有交易。

 
异常终止意味着专家顾问被循环,不检查IsStopped,被终端强行停止。
 
Renat:
异常终止意味着专家顾问是循环的,它没有检查IsStopped,而是被终端强制停止。

我可以注意到,异常终止不仅是由于MQL代码造成的,也是由于运行时本身的内部打嗝造成的。因此,让我们说,从MQL中不可控制的异常终止。

例如,当MQL代码发送一个命令,从已经存在的图表中删除ObjectDelete一个对象(既不是对象也不是图表)。但在命令发出的那一刻,它就在那里。
而MQL代码将不会等待来自命令的响应,因为挂起不是发生在MQL代码中,而是发生在执行的深处。也就是在ObjectDelete本身。结果我们会得到一个异常的终止。
第二种常见情况是对ObjectsDeleteAll函数 的操作。因为它是同步的,所以在删除已经被删除的对象时也会挂起,但只是在它被调用之后。
第三种情况是最有害的,当运行时间不能完成来自Deinit的Expert Advisor命令时,因为EA已经从图表中删除,并且图表被关闭。我们还将得到环境冻结和不受控制的异常终止。

我上面描述的一切,都与OnDeinit函数中expander工作的终止有关。 在代码的某个深处,结束动作之间存在不一致,首先是与图表的存在,其次是与专家Deinit时的环境行为不一致。
有人提前做了一些事情,导致非正常终止。

当然,在某些情况下,我能够通过额外检查可用性来解决这个问题。但是,很少会出现上述同步问题中的一种。在一个试图关闭的图表上删除/安装一个指标,删除对象。

 

我想知道怎么会有绝对提款超过初始余额的情况。

虽然根据定义。

 Absolute Drawdown
Просадка от начального баланса показывает, насколько уменьшался баланс относительно первоначального значения. Максимально может быть равно начальному балансу, если потеряны все деньги.

详见专题https://www.mql5.com/ru/forum/8996

 
Renat:
异常终止意味着EA是循环的,没有检查IsStopped,被终端强行停止。

错了。

sergeev:

我可能会注意到,异常终止不仅是由于MQL代码造成的,也是由于运行时本身的内部打嗝造成的。

是的,而且有很多这样的惊喜。

我遇到过终端挂起的情况,由于内存不足,无法删除专家顾问。在这种情况下,即使是记录也不一定能被记录下来。

 
komposter:

错了。

是的,而且有很多这样的惊喜。

我遇到过终端挂起,如果没有足够的内存,就无法删除EA。在这种情况下,即使是记录也不一定有效。

按照我的理解,这个主题https://www.mql5.com/ru/forum/8278,涉及的正是这个问题。
Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс.
 
Yedelkin:

位置标识符

职位标识符是一个唯一的数字,分配给每个新开的职位,在整个生命周期内不会改变。一个位置的颠倒并不改变position_identifier。

交易_职位_ID

参与该交易的开仓、修改或平仓的头寸的标识符。每个头寸都有一个独特的标识符,它被分配给该头寸有效期内的所有交易。

谢谢你,这很有帮助)
 
iTC:
据我所知,这个话题https://www.mql5.com/ru/forum/8278,正是涉及这个问题。

不,是关于指标。

超过某些内存限制的专家顾问只是默默地挂断终端。例如,当加载许多带有指标的不同符号/时期的图表时,就会发生这种情况。

 
sergeev:

我可以注意到,异常终止不仅是由于MQL代码造成的,也是由于运行时本身的内部打嗝造成的。所以我们说,异常终止是无法从MQL中控制的。

例如,当MQL代码发送一个命令,从已经存在的图表中删除一个ObjectDelete对象(既不是一个对象,也不是一个图表)。但在发送命令的时候,它就在那里。
而MQL代码将不会等待来自命令的响应,因为挂起不是发生在MQL代码中,而是发生在执行的深处。也就是在ObjectDelete本身。结果我们会得到一个异常的终止。
第二种常见情况是对ObjectsDeleteAll函数 的操作。因为它是同步的,所以在删除已经被删除的对象时也会挂起,但只是在它被调用之后。
第三种情况是最有害的,当运行时间不能完成来自Deinit的Expert Advisor命令时,因为EA已经从图表中删除,并且图表被关闭。我们还将得到环境冻结和不受控制的异常终止。

我上面描述的一切,都与OnDeinit函数中expander工作的终止有关。 在代码的某个深处,结束动作之间存在不一致,首先是与图表的存在,其次是与专家Deinit时的环境行为不一致。
有人提前做了一些事情,导致非正常终止。

当然,在某些情况下,我能够通过额外检查可用性来解决这个问题。但是,很少会出现上述同步问题中的一种。在一个试图关闭的图表上删除/安装一个指标,删除对象。

谢谢你,这将被检查。
 
komposter:

不,是关于指标。

超过某些内存限制的专家顾问只是默默地挂断终端。例如,当加载许多带有指标的不同符号/时期的图表时,就会发生这种情况。

谢谢,我们一定会检查的。