从专业人员到超级专业人员的任何问题 - 1。 - 页 31

 
valenok2003:

打消疑虑

与以下相同

还是先选择一个订单是正确的?

第2个选项更正确。
 
谢谢你
 
valenok2003:

打消疑虑
与以下内容相同
还是先选择一个订单是正确的?

在C/C++中&&=短路和。
这意味着,如果不满足第一个条件--
那么就不应该在第二种情况下运行操作员。

如果Mql在教科书上有正常的措辞就好了。
而不是这块垃圾https://book.mql4.com/ru/basics/expressions#Log
有一个奇怪的措辞 "True(1) if all values are true"。
具体内容会更有表现力。

所以...如果&&工作正常--那么两个变体就完全相同。

 
jartmailru:


所以...如果&&工作正常--那么两者就完全相同。


但愿如此,但愿如此。

在MQL中,逻辑表达式是完整计算的,也就是说,所谓的 "短评价 "方案不适用于它们

 
第二个选项不仅更正确,而且是唯一正确的选项:-)。
而文件是...是有点奇怪。
 

在这个例子中,如果没有选择订单,那么检查关闭时间就没有意义。因此,第一种情况也会正确地工作。或者说,该订单 "未被选中 "是否有其他原因,而不是它不存在?

但是,逻辑表达式 的计算顺序是什么?也就是说,如果我们把所有的东西都限制在一个表达中,我们是否会首先选择订单,然后检查其收盘时间?

例如,你可以这样写

if(OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime() > 0){

而不是像这样

if(OrderCloseTime() > 0 && OrderSelect(Ticket, SELECT_BY_TICKET)){
 

这是不允许的,这也是不允许的。在C++中,它是UB,在这里,根据正常编程的原则,它是非常不可取的。

如果我以前有疑虑,现在我肯定不会100%使用BlueDream。我也不建议其他人这样做。

 
TheXpert:
这是不允许的,这也是不允许的。在C++中,它是UB,在这里,根据正常编程的原则,它是非常不可取的。

谢谢 ,所有的疑虑都解决了。
 
TheXpert:

如果我以前有疑虑,现在我肯定不会再使用BlueDream了。而且我不会向其他人推荐它。

你在嫉妒他,对吗?

就像你没有得到楔子?

 

顺便说一下,这只适用于MQL4。 在MQL5中,简短的评估工作