文章 "MQL5 简介(第 5 部分):MQL5 数组函数入门指南"

 

新文章 MQL5 简介(第 5 部分):MQL5 数组函数入门指南已发布:

在第 5 部分中探索 MQL5 数组的世界,该部分专为绝对初学者设计。本文简化了复杂的编码概念,重点在于清晰性和包容性。加入我们的学习者社区,在这里解决问题,分享知识!

我们系列的第 5 部分将向您介绍 MQL5 的迷人世界,该部分专为希望了解复杂数组函数的完全新手而设计。本节旨在消除经常与数组函数相关的误解,确保每一行代码不仅能被看懂,而且能被透彻地理解。无论之前编码经验如何,我都真诚地相信,每个人都应该有机会学习 MQL5 语言,这就是为什么我将始终致力于创造一个包容的环境。

在这篇文章中,简单明了是首要目标。我想为那些对编码和未知领域充满好奇的人提供一个渠道。虽然它们一开始可能会让人感到困惑,但我还是打算一行一行地教你学习每个数组函数,让你有一个寓教于乐的学习体验。我们将一起解决围绕数组函数的难题,让您掌握必要的知识,成功应对复杂的算法交易世界。这不仅仅是一篇文章,而是一份请您踏上编码转型的奇妙之旅的邀请。 

但事情并没有到此为止。除了代码之外,我们还希望创建一个社区,让新手和经验丰富的程序员都能聚集在一起,交流想法、提出问题并促进团队合作。这是一次改变人生的编码探险邀请,而不仅仅是一篇文章。来自第 5 部分的问候,在这里,知识和可访问性碰撞在一起,每个编码的人都应会得到赞赏。享受编码的乐趣吧!

作者:Israel Pelumi Abioye

 
感谢您分享关于 ArrayGetAsSeries 和 ArrayIsSeries 之间区别的知识,我一直想弄明白这两者之间的区别。我喜欢你用一种对初学者友好的方式解释复杂的主题,并辅以类比......我对 ArrayCopy 和 ArrayInsert 之间的区别也有些困惑。如果你能在下一篇文章中加入这一点,我将不胜感激。
 
Oluwatosin Mary Babalola #:
感谢您分享了 ArrayGetAsSeries 和 ArrayIsSeries 之间的区别,我一直想弄明白这两者之间的区别。我喜欢你用一种对初学者友好的方式来解释复杂的主题,并辅以类比......我对 ArrayCopy 和 ArrayInsert 之间的区别也有些困惑。如果你能在下一篇文章中加入这一点,我将不胜感激。
你好,Oluwatosin,您的请求已被记录。
 
Oluwatosin Mary Babalola #:
感谢您分享了 ArrayGetAsSeries 和 ArrayIsSeries 之间的区别,我一直想弄明白这两者之间的区别。我喜欢你用一种对初学者友好的方式来解释复杂的主题,并辅以类比......我对 ArrayCopy 和 ArrayInsert 之间的区别也有些困惑。如果您能在下一篇文章中加入这一点,我会非常感激。

你知道 MQL5 编程书吗?具体来说,它涵盖了数组 "序列性"(方向)函数,以及复制和插入--以下是摘录:

ArrayInsert 函数 不同ArrayCopy 函数 不会移动接收数组中的现有元素,而是将新元素写入旧元素的指定位置

这两部分都包含示例程序。

MQL5 Book: Common APIs / Working with arrays / Timeseries indexing direction in arrays
MQL5 Book: Common APIs / Working with arrays / Timeseries indexing direction in arrays
  • www.mql5.com
Common APIs - MQL5 Programming for Traders - MetaTrader 5 algorithmic/automatic trading language manual
 
Oluwatosin Mary Babalola #:
感谢您分享了 ArrayGetAsSeries 和 ArrayIsSeries 之间的区别,我一直想弄明白这两者之间的区别。我喜欢你用一种对初学者友好的方式来解释复杂的主题,并辅以类比......我对 ArrayCopy 和 ArrayInsert 之间的区别也有些困惑。如果你能在下一篇文章中加入这一点,我将不胜感激。

ArrayInsert 和 ArrayCopy 的区别:

ArrayInsert() "和 "ArrayCopy() "的主要区别在于它们如何处理已经存在的元素。"ArrayCopy() "可以修改原始数组,用另一个数组中的元素替换指定位置上的元素。另一方面,"ArrayInsert() "通过移动当前元素为新元素腾出空间来保持数组的结构和顺序。从本质上讲,"ArrayInsert() "提供了一种在 MQL5 中操作数组的通用方法,类似于在序列中添加一个新元素,而不会导致其他元素移动。理解了这一区别,您就能在编程过程中精确地操作数组。

请注意,对于静态数组,如果要插入的元素数量等于或超过数组大小,"ArrayInsert() "将不会将源数组中的元素添加到目标数组中。在这种情况下,插入只能从目标数组的索引 0 开始。在这种情况下,目标数组实际上被源数组完全取代。

类比

想象一下,你有两组积木(数组),每组都有自己独特的排列方式。现在,假设你想在不破坏现有结构的情况下合并这两组数组。"ArrayInsert() "就像一个神奇的工具,能让你顺利地从一个数组中插入新的积木到另一个数组的特定位置,从而扩展整个集合。

现在,我们来比较一下 "ArrayInsert() "和 "ArrayCopy()":当你使用 "ArrayCopy() "时,它有点像重新排列原始集合,将一些数据块替换成另一个集合中的新数据块。相反,"ArrayInsert() "则更为精细。它通过移动数据块来为新加入的数据块腾出空间,从而确保现有顺序保持不变。这就像有一个一丝不苟的助手,知道该把每个数据块放在哪里,从而保持数据集的原始设计。

对于静态集(数组),有一条重要规则。如果新块的数量对集合来说太多,"ArrayInsert() "就不会强行插入。不过,从集合的最开始(索引 0)开始插入,可以有效地用新块替换整个集合。