错误、漏洞、问题 - 页 2107

 
Vladislav Andruschenko:

我同意。我们必须改变它。

在这个规则上有一个分支。

Организация цикла перебора ордеров
Организация цикла перебора ордеров
  • 2017.09.16
  • www.mql5.com
MQL4 и MetaTrader 4: Организация цикла перебора ордеров
 
fxsaber:

在这个规则上有一个分支。


是的,我读过关于只有在环境改变时才有历史访问功能的片段,而且我在其他主题中看到了你的链接。

我想说的是,这个错误是在阅读了你的方案后出现的。

 
fxsaber:

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

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

理论上,超时可能发生在与经纪人的服务器失去连接的时候。

在这种情况下,最好不要做任何事情,直到它被恢复,交易环境与服务器完全同步。

如果不 返回代码进行分析,如何避免陷入这种情况?

 

编译错误


Test.mqh文件。

int Tmp = 1;


主要代码

#include "Test.mqh"

void OnStart()
{
  Print(Tmp);
  Print(Tmp2); // 'Tmp2' - undeclared identifier
}

#define  Tmp Tmp2
#include "Test.mqh"


事实证明,重复的嵌套被忽略了。但在这种情况下,它是错误的!

我们需要这样一个结构,以达到以下目的。一个专家顾问包含在一个.mqh文件中。但我需要能够在真实账户(第一套)和我的测试器(第二套)中运行它。

 
Andrey Khatimlianskii:

理论上,超时可能发生在与经纪人的服务器失去通信的时候。

在这种情况下,最好不要做任何事情,直到它被恢复,交易环境与服务器完全同步。

如果不对返回代码进行分析,如何避免陷入这种情况?

我们发送了一个OrderSend,但没有等来服务器的回复,在日志中得到了一个超时和_LastError。我们忽略了_LastError,只收到false。

之后,如果我们有了联系,我们就会重新组合交易环境并做出决定。

当然,在收集信息之前,最好先检查一下选定的环境。

 
fxsaber:

发送了OrderSend,但没有等到服务器的响应,在日志中得到一个超时和_LastError。我们忽略了_LastError,只收到false。

之后,如果我们有了联系,我们就会重新组合交易环境并做出决定。

当然,在收集信息之前,最好先检查一下选定的环境。

如果我们与OnTick一起工作,这是有可能的。如果没有呢?

如何检查连接?

 
Andrey Khatimlianskii:

如果你在OnTick中工作,这就可以了。如果没有呢?

你如何检查连接?

TerminalInfoInteger(TERMINAL_CONNECTED);
 
fxsaber:
TerminalInfoInteger(TERMINAL_CONNECTED);

从历史上看,我不相信它。我必须在5分钟内进行测试...

 

超时的问题不是没有连接,而是请求已经收到超时。

一方面,我是这样看的:有一个开仓的信号,我们提出请求,我们得到了一个超时--但交易已经打开。

虽然专家顾问收到了一个错误。

检查交易环境--我们看到了一个开放的交易。

如果有10个信号,如何理解该交易是由这个信号打开的呢?

即检查是否有新的交易出现在历史上(在终端)。


我还没有理解这个想法

@A100

你认为有什么解决办法?

 
fxsaber:

事实证明,重新编码被忽略了。但在这种情况下,这是不对的!

我们需要这样的一个结构,用于下面的工作。一个专家顾问包含在一个mqh-文件中。但我需要能够在真实账户(第一套)和我的测试器(第二套)中运行它。

一切都是正确的,它被适当地忽略了。

Cish黑客不通过。