错误、漏洞、问题 - 页 1925

 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2017.07.10 20:16

为了缓解很多关于正确填写MqlTradeRequest-结构的问题,我建议当你在终端按F9键手动填写字段时,做一个脚注 "Details",在这里可以看到相应交易结构的所有字段(有一键复制选项)。现在,如果你在按下F9窗口动作后,在OnTradeTransaction 中抓住这个结构,就可以完全使用。

失败了。通过OnTradeTransaction捕捉填充结构的实现可以在这里 看到。

 
Yury Kirillov:

至少从Build 1625开始,MT5在测试时就会下降。

图片1626。

至少在 "每个刻度...... "和 "所有刻度 "模式下播放。


下午。需要播放的步骤。需要专家/指示器和测试设置。请写信给Servicedesk。

 
Alexander:

下午好。需要播放的步骤。需要专家/指示器和测试设置。请写信给Servicedesk。


已写信给TA#1794147

当使用HistoryDealGetTicket(i)时,如果参数大于可用的交易数量,似乎会产生崩溃。

 
Yury Kirillov:

我给TP#1794147 写信。

当使用HistoryDealGetTicket(i)时,如果参数大于可用的交易数,似乎会产生崩溃。

是的,我看到了。谢谢

 

没有错误信息

struct A {
        int z;
};
void OnStart()
{
        int const b; //'b' - 'const' variable must be initialized
        A   const a; //нет сообщения об ошибке //по сути равнозначно записи: int const а.z; 
}
必须有一个明确的构造函数或一个初始化序列。
 
A100:

没有错误信息

因为构造函数的原因。因此,它是可以的。

 
fxsaber:

因为构造函数的原因。因此,它是可以的。

因为有一个什么都不做的构造者?

struct A {
        A() {}
        int a;
}; 
void OnStart()
{
        const A a; //нормально
}

如果可以不初始化const int A::a,那么为什么在前面的情况下一定要初始化const int b?

 
A100:

因为有一个什么都不做的构造函数?

是的,因为默认 构造函数是空的。

如果你可以不初始化const int A::a,那么为什么在前面的情况下一定要初始化const int b呢?

为什么显示错误而不是警告?嗯,可以这样做

void OnStart()
{
  int a;
  const int b = a;
}

IMHO,当一个简单类型的常量变量没有被初始化时,必须有一个警告。当OrderSend 值没有被选中时,不应该有Warning。但这似乎是开发者的正确观点。也就是说,推理是主观的。

 
fxsaber:

为什么显示错误而不是警告?毕竟,你可以这样做

因为使用一个未初始化的常量变量是没有意义的--因此出现了错误(它包含一个随机值,以后不能改变)。

 
A100:

因为使用未初始化的常量 变量是没有意义的--因此出现了错误(它包含一个随机值,进一步使用它将导致难以发现的错误)。

我在引文中划掉了一个词,但如果将来只有只读操作,意思不会改变。对于非静态的,它给出警告,对于静态的,它给出错误。这只是开发商的一个有争议的决定。