文章 "通过应用程序了解MQL5中的函数"

 

新文章 通过应用程序了解MQL5中的函数已发布:

函数在任何编程语言中都是至关重要的东西,它有助于开发人员应用(DRY)的概念,这意味着不要重复自己,还有许多其他好处。在本文中,您将找到更多关于函数的信息,以及我们如何使用简单的应用程序在MQL5中创建自己的函数,这些应用程序可以在任何系统中使用或调用。您必须在不使事情复杂化的情况下丰富您的交易系统。

假设我们需要软件来在净值达到最大回撤时执行关闭所有未结订单的任务,并且我们需要在软件的许多部分中执行此任务,最好在这里创建一个函数,并包含执行此任务所需的所有代码或逻辑,然后在其他部分调用此函数,但在许多部分中编写和重复相同的代码来执行此任务是不好的,或者会不堪重负。

如果你问我们为什么需要使用这种类型的函数,这个问题的答案将引导我们学习使用用户定义函数的功能,如下所示:

  • 它有助于应用DRY的概念(do not repeat yourself, 不要重复自己):通过使用用户定义的函数将帮助我们不要一遍又一遍地重复相同的代码,但我们将创建一个函数,可以执行我们的任务一次,然后在软件中的任何合适的部分调用它。
  • 可重用性:创建我们的函数后,我们可以随时重用它。
  • 这有助于应用分而治之的概念:当我们创建软件时,解决问题的代码可能很复杂,但如果我们将大问题划分为小问题,并通过函数解决每个问题,这将非常有助于实现我们解决大问题的目标。
  • 这有助于代码更具可读性和可理解性:当我们使用函数时,它有助于使我们的代码可读,因为它变得更有组织性,因为它有函数,每个人都处理特定的问题和特定的任务。
  • 它有助于应用抽象的概念:使用函数提供了一种抽象代码的方法,因为如果我们不使用它们,我们可能会发现我们需要编写比使用函数更多的代码行。
  • 它有助于应用封装的概念:当我们使用函数时,它允许我们比不使用它们更安全和管理我们的代码和数据。
  • 它改进了调试过程:当我们使用函数时,它有助于改进错误,更容易地探索和解决它们。

根据我们提到的使用函数的特点,我们可以很容易地发现,当我们在软件中使用这些用户定义的函数时,会有多大的好处。

作者:Mohamed Abdelmaaboud

 

有帮助

非常感谢

希望在指点和相关问题上也能找到同样的帮助

 
Mohamed Hassan Mohamed Hassan Alsherbiny #:

有帮助

多谢

希望在指点和相关问题上也能找到同样的帮助

感谢您的善意评论。

我会尽力而为。

 

感谢作者撰写这篇文章!我认为这对所有初学者学习MQL5 编程语言 非常有用。我已将其添加到我的收藏夹。

敬上,弗拉基米尔。

补充:在俄语论坛上发表文章时,我唯一的愿望是所有评论都应使用俄语。这样更容易消化信息。下面是一个例子。而不是

//加法函数
// 返回的数据类型是整数 - 函数名称是 add - 参数或参数是两个 int 变量 val1 和 val2
int add(int val1, int val2)
  {
   // 我们在调用函数时需要执行的函数的主体
   //创建一个结果新变量,由 val1 和 val2 的加法结果赋值
   int result = val1+val2;
   //在专家选项卡中打印结果
   Print(result);
   //返回值
   return 0;
  }

如果能马上看到译文就更好了:

//加法函数
//返回的数据类型为整数。函数名称是 add。参数是两个 int 类型的变量 val1 和 val2。
int add(int val1, int val2)
   {
    // 我们希望函数在被调用时执行的函数体
    // 创建一个新的结果变量,将 val1 和 val2 相加的结果赋值给它
    int result = val1+val2;
    //在 "专家 "选项卡上打印结果
    Print(result);
    //返回值
    return 0;
   }

顺便说一句,当我把评论翻译成俄语时,我还提出了一个问题:为什么这个函数的return 返回 的是0 而不是result

这难道不是作者的失误吗?

 
MrBrooklin #:

顺便说一句,在把注释翻译成俄语时,我又提出了一个问题:为什么这个函数的return 返回 的是0 而不是结果

这难道不是作者的失误吗?

程序员先生们难道我的大脑已经干涸到无法理解return 操作符的作用,还是说 这仍然是作者的失误?

再见,弗拉基米尔

 
MrBrooklin #:

各位程序员是我的大脑干涸到无法理解返回 操作符的作用,还是 作者的失误?

敬上,弗拉基米尔。

你好,弗拉基米尔。我认为你已经成为一名经验丰富的程序员,足以猜到这只是一个错误...

 
Alexey Viktorov #:

你好,弗拉基米尔。我想您已经成为一名经验丰富的程序员,足以猜到这只是一个错误....。

早上好,阿列克谢!当然,谢谢你,不过我离有经验的程序员还很远,就像我离北京一样。))我只是想知道他们是如何让 这样错误的 文章 进入论坛的

再见,弗拉基米尔。

 
MrBrooklin #:

早上好,阿列克谢!当然,谢谢你,但我离经验丰富的程序员还很远,就像我离北京一样远。))我只是想知道他们是如何让 这样错误的 文章 进入论坛的

弗拉基米尔

弗拉基米尔,"经验丰富 "并不意味着大师。这不是拍马屁。

函数是写出来的,并没有经过调试,因此由于注意力不集中,可能会出现这样的错误。而他们所怀念的.........,你们需要多少人手来仔细 重读所有文章并纠正这些错误?这是不现实的......如果您发现了一个错误,您可以报告它,它就会被纠正,然后大家都会很高兴。

 
Alexey Viktorov #:

弗拉基米尔,"经验丰富 "并不意味着大师。这不是拍马屁。

功能是写出来的,并没有经过调试,因此由于注意力不集中,可能会出现这样的错误。而他们所怀念的.........,你们需要多少人手来仔细 重读所有文章并纠正这些错误?这是不现实的......如果您发现了一个错误,您可以报告它,它就会被纠正,大家都会很高兴。

问题的关键在于,初学者,包括零基础的人,都要从这些文章中学习,他们没有机会去评估代码是否正确,只能信以为真。))

再见,弗拉基米尔。

 
MrBrooklin MQL5 编程语言 非常有用。我已将其添加到我的收藏夹。

敬上,弗拉基米尔

补充:在俄语论坛上发表文章时,我唯一的愿望是所有评论都用俄语。这样更容易消化信息。下面是一个例子。而不是

而不是: it would be great to see a translation right away:

顺便说一下,当我把注释翻译成俄语时,我又以提问的形式补充了一个问题:为什么这个函数的return 返回 的是0 而不是结果

这难道不是作者的失误吗?

你好,布鲁克林先生!

感谢您的评论和通知。该错误已被编辑并发表。


非常感谢

 
Mohamed Abdelmaaboud #:

你好,布鲁克林先生

感谢您的评论和通知。该错误已被编辑并发送,以便发布正确的内容。

非常感谢

下午好,感谢您的回复。

再见,弗拉基米尔。