学习逻辑 - 页 9

 

是的 :) 我有点夸张了。

这里有另一个例子:)但我怀疑它在MQL中是否有效,它在C++中会有效。

for (int i = OrdersTotal(); i--;)
{
   if (!OrderSelect(i - 1, SELECT_BY_POS)) continue;

   //...
}
 
Mathemat:

毕竟是要卖的?

好吧,好吧。我们里面有一个逻辑操作数,而我读错了。事实证明这是真的,当

- 是这样吗?

那么,这就是废话的平方。代码无法阅读 :)


这段代码是相当可读的。你不应该这样。
 

为了避免不得不破译什么意思(任何卖出订单),写出订单类型的标识符更有意义。它将更短,但更清晰。

从简洁的角度来看,是的,这是一个解决方案,但不是很可靠。开发者并不保证这些常数的数值永远不会改变。

 
Mathemat:

为了避免不得不破译什么意思(任何卖出订单),写出订单类型的标识符更有意义。它将更短,但更清晰。

就简洁而言--是的,这是一个解决方案,但不是很可靠。开发者并不保证这些常数的数值永远不会改变。


这就是问题所在。有可能做出一个灵巧的代码,但突然停止工作。
 
TheXpert:

这里有另一个例子:)但它不太可能在MQL中正常工作,它在C++中会工作。

for (int i = OrdersTotal(); i--;)
{
   if (!OrderSelect(i - 1, SELECT_BY_POS)) continue;

   //...
}
我没有检查过,但我自己不会这样写。
 
TheXpert:

是的 :) 我有点夸张了。

这里有另一个例子:)但它不太可能在MQL中正常工作,它在C++中会工作。


这不是优化,而是变态......。原谅我,这是一种变态...

我想到了一个很好的小任务:如何在两个数字变量之间交换数值而不使用第三个变量。))

 
Vinin:
你可以做一个灵巧的代码,突然停止工作。

这就是问题的关键--这段代码并不优雅。这样更优雅。

bool IsActiveType(int orderType)
{
   return (type == OP_BUY || type == OP_SELL);
}

bool IsAnySellType(int orderType)
{
   return (type == OP_SELL || type == OP_SELLLIMIT || type == OP_SELLSTOP);
}

{
   if (IsActiveType(OrderType()))
   {
      //...
   }

   if (IsAnySellType(OrderType()))
   {
      //...
   }
}

denis_orlov:

这不是优化,而是倒行逆施......请原谅我...

我想起了一个不错的小任务,如何在两个数字变量之间交换数值而不使用第三个变量。))

是的 :) 算是吧。
 
TheXpert:

这就是问题的关键--这段代码并不优雅。这个人比较优雅。

是的,这就对了。单行体功能从未被取消过,它们实际上非常有用。
 
TheXpert:

这就是问题的关键--这段代码并不优雅。这个人比较优雅。


我喜欢它。它看起来很美。
[删除]  
TheXpert:

这就是问题的关键--这段代码并不优雅。这样更优雅。



你只需要删除函数参数,使其更加错综复杂。如果没有指定参数,则由订单的OrderType()决定,如果指定了,则由参数决定。

我在这里很无聊:)))