错误、漏洞、问题 - 页 2106

 
Andrey Khatimlianskii:

超时表示在合理时间内没有收到服务器的响应。但不是命令的结果。


你好。

谢谢你。

在这种情况下:当超时时,你必须等待新的票据出现在交易历史 中,如果出现新的票据,那么交易或订单就会打开。

顺便说一下,这只发生在MQL5 VPS上。

在家庭服务器上,这不是一个问题。

我将考虑一下...


我将考虑一下。

Пользовательский интерфейс - Начало работы - MetaTrader 5
Пользовательский интерфейс - Начало работы - MetaTrader 5
  • www.metatrader5.com
Интерфейс платформы предоставляет доступ ко всем инструментам, необходимым для торговли на финансовых рынках. Он включает в себя различные меню, панели инструментов и служебные окна. Главное меню В главном меню собраны практически все команды и функции, которые можно выполнять в торговой платформе. Оно позволяет работать с графиками...
 
Vladislav Andruschenko:

在这种情况下:当你超时时,你必须等待一个新的票据出现在交易历史 中,如果一个新的票据出现,那么交易或订单是开放的。

如果一个交易订单是通过同步OrderSend发送的,那么就没有办法退出OrderSend的执行。一切看起来都像是VPS终端的一个错误。
 
fxsaber:
如果一个交易订单是通过同步OrderSend发送的,那么就没有办法退出OrderSend的执行。一切看起来都像是VPS终端的一个错误。


通过它。

这个问题原则上是可以解决的,在收到一个超时错误后,可以运行在历史上搜索新票的功能。

否则,EA只是发送一个新的请求,并再次得到一个超时错误,而没有得到一张票。

谢谢你。

 
Vladislav Andruschenko:

这个问题原则上是可以解决的,在收到超时错误后,运行检索历史上的新票的功能。

你必须把它写在SD中。否则,在每次OrderSend 之后,你将等待三分钟的超时,获得相应的交易风险。

 
fxsaber:

你需要写到CD上。否则,在每次OrderSend之后,你将等待三分钟的超时,并获得相应的交易风险。


于是我就这样做了。

这个错误发生在1000次中的1次,而且到目前为止,它只发生在 MQL的VPS上...
 
Vladislav Andruschenko:

因此,专家顾问得到错误10012,并试图再次下单。

我愿意为市场上的这样一个代码取消我一年的卖家身份。
 
A100:
我会因为市场上的这样一个代码而剥夺你一年的卖家资格。

这是我第一次遇到这样的错误。

我的代码中没有这样的错误。没有票据意味着交易没有打开。这意味着EA正试图再次打开交易。
 
Vladislav Andruschenko:

这个问题原则上是可以解决的,在收到超时错误后,运行历史上的新票据检索功能。

历史与此毫无关系。OrderSend发送了订单,并在终端出现ORDER_STATE_STARTED 状态。

但这并不意味着OrderSend已经执行完毕。OrderSend将继续执行,直到订单状态改变。

因此,如果你看到超时,99%可以肯定订单状态是ORDER_STATE_STARTED(我看到了,但我截图的时候不清楚)。

此外,同样的超时也可能在没有你的订单发送时发生--当MT5服务器自己进行订单发送时(TP/SL/MC/Expiration)。但你不会在终端看到它。

 
Vladislav Andruschenko:
我的代码中没有这样的错误。没有票据--这意味着交易没有打开。这意味着专家顾问正试图再次打开交易。

这是不正确的逻辑。在OrderSend 失败和OrderSend 成功后,必须完全重新读取当前的交易环境。这一规则应始终有效。

关于退货代码。我不在我的EA中分析它们。我认为交易逻辑不应该依赖于它们。

 
fxsaber:

这是不正确的逻辑。在OrderSend失败和OrderSend成功后,必须再次完全读出当前的交易环境。这一规则应始终有效。


我同意。它必须被改变。