新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1796

 

将布尔条件和其他条件混为一谈...好吧,如果你不想写好代码,就不要写。我不会试图说服你并与你争论。

MakarFX #:

如果我们谈论的是功能的普遍性,那么......。

嗯,这比你之前的功能更接近于常识。

的确,可读性还有待提高......。但有谁想过......?:)

 
Nerd Trader #:
按惯例是真实的那一个

不,"line_name "将被分配到最后的名字。

 
Mihail Matkovskij #:

将布尔条件和其他条件混为一谈...好吧,如果你不想写好代码,就不要写。我不打算劝说或与你争论。

好吧,好吧,我就用你的例子。

 
没有必要一直创建和删除行。时间框架上有成交量的可视性标志。需要隐藏和显示。
 
Mihail Matkovskij #:

将布尔条件和其他条件混为一谈...好吧,如果你不想写好代码,就不要写。我不会劝说你和与你争论。

嗯,这比你之前的功能更接近于常识。

的确,可读性还有待提高......。但 谁会想到这些呢?:)

具体来说,有什么问题?

而你仍然没有回答你的函数在"-1 "时返回什么?

 
MakarFX #:

不,"line_name "将被分配到最后的名字。

是的,为什么会有这样的问题呢?无论如何,通过该条件的对象将被删除。
 
MakarFX #:

具体来说,有什么问题?

而且你还没有回答你的函数在"-1 "时将返回什么。

它将返回错误 - 我已经检查过了。
 
Nerd Trader #:
它将返回错误--我已经检查过了
它应该返回真。
 
MakarFX #:
它必须是真实的。
有了逻辑上的NOT,它就会成为事实 :)
 
MakarFX #:

具体来说,有什么问题?

bool FindObject(string name, int win)
{
   if(ObjectFind(0, name) == win) 
     return(true);
   return(false);
}
一个更紧凑的版本。
bool FindObject(string name,int win) { return (ObjectFind(0,name) == win); } 

但我以为你说你的功能声称是普遍的......?那么你忘记了一个非常重要的细节。

bool FindObject(const long chart_id, const string name, const int win) { return (ObjectFind(chart_id, name) == win); } 

最普遍和最可靠的选择。

而且你从未回答过你的函数将返回"-1"

你是不是懒得写一个简单的脚本来检查?好的。我是为了你才这样做的。

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  for (int i = -10; i <= 10; i++) 
    if (i)
      printf("%d - true", i);
    else
      printf("%d - false", i);
}
//+------------------------------------------------------------------+

现在看看结果吧。

-10为真。

-9为真。

-8为真。

-7 - 真实

-6 - 真实

-5 - 真实

-4 - 真实

-3 - 真实

-2 - 真实

-1 - 真

0 - 错误

1 - 真实

2 - 真实

3 - 真实

4 - 真实

5 - 真实

6 - 真实

7 - 真实

8 - 真实

9 - 真实

10 - 真实



所有的负数都是真的。0是假的。这就是它的运作方式...:)

所以,你的函数将返回真。

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

新手对MQL4和MQL5的任何问题,或对算法和代码的任何提示和讨论

MakarFX, 2021.12.06 12:14

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }

我的将返回错误

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!

因为它应该是负值。

原因: