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

 
MrBrooklin:

是的,开头和结尾的括号在 "造型 "之后垂直汇聚,但背光要么不理解它是什么,要么我看不到它。目前,编程技巧的水平,几乎为零。

问候,弗拉基米尔。

突出显示的是函数标题后第一个亮起的括号,它应该与底部的括号成对亮起,即每个括号都应该有一对,它们都是亮起的,如果没有,就意味着缺少一个封闭的括号。

 
Fast235:

突出显示的是功能标题后第一个亮起的括号,它应该与底层括号配对,即每个括号应该有一对,它们是亮起的,如果没有,则缺少封闭的括号。

谢谢你的提示。事实证明,它们在我的屏幕上没有被突出显示,而是被厚度突出显示。是的,所有的托架都在那里。现在,只要把功能块移到底部的OnStart括号后面,错误就消失了。谢谢你的帮助!

问候,弗拉基米尔。

 
MrBrooklin:

谢谢你的提示。事实证明,它们在我的屏幕上没有被突出显示,但在厚度上很突出。是的,所有的托架都在那里。现在,只要把功能块移到底部的OnStart括号后面,错误就消失了。谢谢你的帮助!

问候,弗拉基米尔。

所有的函数都是在全局范围内声明的,即在其他函数的空间之外,这是由它们的括号限制的。
 
Реter Konow:
所有的函数都是在全局范围内声明的,即在其他函数的空间之外,这是由它们的括号限定的。

亲爱的彼得,请告诉我们你是如何创建你所谓的标记语言()的,这对新人来说很有用,我需要它来发展逻辑思维,这在这里是非常重要的。

也许有什么东西吃了很多,爬上了一棵树
 
MrBrooklin:

大家晚上好!

尊敬的编程专家,请您告诉我,编译器产生的错误是什么意思:"函数 声明只允许在全局、命名空间 或类区域内进行",更准确地说,我感兴趣的是什么是命名空间,它应该位于脚本的什么地方?

这个问题与编写 "Enough_time "和 "Enough_patience "的函数代码有关。

问候,弗拉基米尔。

全局区域,即函数之外的区域。 在哪里没有区别,你可以在函数之间,我希望你明白它们在哪里开始和结束,你可以在全局范围内做任何事情,声明全局变量、属性或其他什么。在全局范围内声明的变量在任何地方都是可见的,真的。局部范围是指从函数的开始到结束,关闭大括号的区域。在本地区域声明的变量只在这个区域可见。

请注意,代码是从上到下和从左到右阅读的。编译器不会重新排列字符串。所以,规则是,一个变量总是在对它的引用的上方或左边声明。而且只在它自己的范围内。在不同的地方,变量可以有相同的名称。而且顺便说一句,如果他们也是有自己领域的职能部门的话)

 
Valeriy Yastremskiy:

全局范围,即函数之外的区域。在哪里都一样,你可以在函数之间,我希望你明白它们的起点和终点,你可以在全局范围的最后做一切事情,声明全局变量、属性或其他什么。在全局范围内声明的变量在任何地方都是可见的,真的。局部范围是指从函数的开始到结束,关闭大括号的区域。在本地区域声明的变量只在这个区域可见。

请注意,代码是从上到下和从左到右阅读的。编译器不会重新排列字符串。所以,规则是,一个变量总是在对它的引用的上方或左边声明。而且只在它自己的范围内。在不同的地方,变量可以有相同的名称。(顺便说一下,循环和if也是有自己作用域的函数)

我们应该写一本书,我们大家一起写。

 
Реter Konow:
所有的函数都在全局范围内声明,即在其他函数的空间之外,这是由它们的括号所限制的。

谢谢你,彼得!我已经得到了帮助,了解了这个问题。

我正在继续学习MQL5编程语言,今天我粘贴了一个脚本的代码,这是本主题参与者的一个任务的延续。我在所有模式下测试了该脚本。一切都在正常运行。我已经把输入参数设置到最低限度,开始时。

问候,弗拉基米尔。

//+------------------------------------------------------------------+
//|                                                Learning_MQL5.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"
//---
#property script_show_inputs
//--- Зададим входные параметры скрипта 
input ushort Период_обучения=500; //Полный период обучения в днях
input ushort Прошло_дней=10;      //Сколько дней прошло с начала обучения
input bool   Терпение=true;       //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные
ushort Достаточность_времени;
bool Достаточность_терпения;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   if(Достаточно_времени()==0 && Достаточно_терпения()==true)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//--- Создадим функцию Достаточно_времени
ushort Достаточно_времени()
  {
   Достаточность_времени=(Период_обучения-Прошло_дней);
   return(Достаточность_времени);
  }
//--- Создадим функцию Достаточно_терпения
bool Достаточно_терпения()
  {
   Достаточность_терпения=Терпение;
   return(Достаточность_терпения);
  }
//+------------------------------------------------------------------+
 
MrBrooklin:

谢谢你,彼得!我已经得到了帮助,了解了这个问题。

我继续学习MQL5编程语言,今天我粘贴了一个脚本的代码,这是本主题参与者的一个任务的延续。我在所有模式下测试了该脚本。一切都在正常运行。我已经把输入参数设置到最低限度,开始时。

真诚的,弗拉基米尔。

从结构上看,这些函数写得很正确,但逻辑却很蹩脚。仔细看看所有的代码。

Sufficient_time()函数的结果应该大于零,这是一个逻辑条件。
 
MrBrooklin:

谢谢你,彼得!我已经得到了帮助,了解了这个问题。

我正在继续学习MQL5编程语言,今天我粘贴了一个脚本的代码,这是本主题参与者的一个任务的延续。我在所有模式下测试了该脚本。一切都在正常运行。我已经把输入参数设置到最低限度,开始时。

问候,弗拉基米尔。

描述(写)你的剧本是做什么的。而且一开始就这样做总是更好。的目标,为什么。哪些任务可以实现目标。如何解决这些任务,解决这些任务的算法,然后是代码。顺便说一句,任务的分工就是分解)

 
Fast235:

我们应该写一本书,我们应该一起

这个问题早就该解决了。谢尔盖-科瓦廖夫(Sergey Kovalev)已经为MQL4编程语言写了一本手册。 现在,必须激励另一位专家为MQL5 做这件崇高的事。

最好的问候,弗拉基米尔。