从头开始自学MQL5语言 - 页 31

 
Valeriy Yastremskiy:

完全符合逻辑,不是字符串,因为中间有一个I.))))。

所以,我并没有完全理解你的问题。当你问"......这是什么类型的变量...... "时,我错过了重点。我正在学习。谢谢你的提示!

问候,弗拉基米尔。

 
Igor Makanu:

这与上面的情况完全不同,这与视觉上的差异无关。

这是关于 "与 "的左边部分和 "与 "的右边部分的同时执行。

你好,伊戈尔!我已经明白错误是什么了。谢谢你的提示!

问候,弗拉基米尔。

 
MrBrooklin:

你好,伊戈尔!已经知道错误在哪里了。谢谢你的提示!

问候,弗拉基米尔。

昨天瓦西里-索科洛夫就如何学习语言提出了建议,主要强调的是理解功能

这是正确的,也是实用的--它可以加快开发速度,让你把任务分成若干块,让你可以重复使用代码....。

但是,我认为,你需要先学习如何处理逻辑条件,找到现成的用户定义的函数或使用MQL的标准函数只是时间问题。

但正确地创造逻辑条件,以及将问题形式化,这是一体的,更重要。


逻辑错误是最糟糕的--一切都会工作,但何时何地会出错......。你不会发现它 ))))


好了,关于破坏,如果关于条件,请写出2个MA的交集的条件,虽然所有的主题论坛都充满了这个问题和答案,但经常发生的情况是,对于一个人来说,这样一个简单的问题,可能不那么容易以逻辑条件的形式正式化;)


UPD: 你好!

 

我想再次感谢Valery和Igor,他们用这样一个简单的例子帮助我理解了bool 数据类型 的工作原理。

问候,弗拉基米尔。

 
Igor Makanu:
...好了,关于这个问题,如果关于条件,请写出2个MA的交集的条件,虽然所有的主题论坛都充满了这个问题和答案,但经常发生的是,对一个人来说,这样一个简单的问题可能不那么容易以逻辑条件的形式被形式化;)...

我一定会试一试,但要晚一点。我被流感隔离了,感觉我的脑袋不太能消化新的信息。

问候,弗拉基米尔。

 
Aliaksandr Hryshyn:
测试问题。
"足够的时间"--这可以是什么类型的变量,以便不会出现编译器警告

伙计们,不要胡闹了。不要把布鲁克林放在一边。不要专注于类型。

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b)
     {
      Print("я выучу язык MQL 5");
     }
  }

该代码工作正常。因为 在内核层,定义了一个字符串比较函数,如果字符串相等,则返回true,否则返回false。当我们写a != b时,通过字面意义上的!=比较两个字符串的函数被调用。顺便说一下,这取决于用户为他自己的用户类型定义一个比较函数,然后他们将以类似的方式工作。所以,这不是关于类型,而是关于功能

但是,尽管被正确地执行,代码内部却不一致。实际上,作者想表达的是,"如果我有足够的时间 "和 "足够的耐心",结果将是 "我将学会MQL5"。事实上,其结果是,一个数值必须不等于另一个数值才能学习语言。

 
Vasiliy Sokolov:

伙计们,不要胡闹了。不要把布鲁克林放在一边。不要专注于类型。

该代码工作得非常好。因为 在内核层,定义了一个字符串比较函数,如果字符串相等则返回true,否则返回false。当我们写a != b时,通过字面意义上的!=比较两个字符串的函数被调用。顺便说一下,这取决于用户为他自己的用户类型定义一个比较函数,然后他们将以类似的方式工作。所以,这不是关于类型,而是关于功能

但是,尽管被正确地执行,代码内部却不一致。实际上,作者想表达的是,"如果我有足够的时间 "和 "足够的耐心",结果将是 "我将学会MQL5"。事实上,结果是,一个数值不一定等于另一个数值,就可以学习语言。

你好,瓦西里!谢谢你的支持和清晰的解释无论如何,感谢你们所有人与我分享你们的知识。它们对我来说非常重要,尤其是在这个阶段。

真诚的,弗拉基米尔。

 
MrBrooklin:

你好,瓦西里!谢谢你的支持和澄清!你是一个很好的例子。无论如何,感谢所有与我分享知识的人。它们对我来说非常重要,尤其是在这个阶段。

现在感觉好多了。我们将在之后继续。

 
Vasiliy Sokolov:

祝你健康。之后我们将继续。

谢谢你!

真诚的,弗拉基米尔。

 
Vasiliy Sokolov:
"...然而,该代码虽然执行正确,但内部却不一致。实际上,作者想表达的是,"如果我有足够的时间 "和 "足够的耐心",结果将是 "我将学会MQL5"。事实上,其结果是,一个数值必须不等于另一个数值才能学习语言"。

首先是这个版本的剧本。

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b && b!=a)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

其中我使用了一个逻辑上的 "AND"。然后我看了一下, ,在条件中就可以打印出 "我将学习MQL5"的表达式a!=b。简而言之,我没有抓住问题的核心,这是瓦莱里和伊戈尔向我建议的。

问候,弗拉基米尔。