完整的MQL新手手册 - 页 3 12345 新评论 jay 2009.09.15 00:53 #21 8284 wrote>> 哦,CB,哦,CB ! 你是一个艰难的人。你真的不想牵着我的手度过这个难关。这也是我逃离的那本用希腊语、拉丁语和火星语写的书。诚然,如果不学习术语,就不可能熟练掌握一种职业,但.....。 你让我想起了我的逻辑学讲师Otakpor博士(我指的是哲学下的逻辑)。如果你不知道自己在问什么,最好不要问他问题。CB,关于数组的书对我来说是相当技术性的(这是我第一次尝试编码)。我对它的内容有一个模糊的概念,但没有完全理解。不过,我把这当作一个挑战。 我将寻找那个小小的"...a",把我的 "啊... "变成 "aha"。 我将阅读和写作,然后给你我所知道的关于数组的知识(实际上我最需要知道的是它们的应用)。 唯一的问题是,这将导致一个非常长的帖子。在一些代码中,我看到数组被使用[],但我不太明白其中的逻辑。我希望如果有人向我解释,我就不会有那么多的问题(有点像拼图中缺少的一块)。 你向我提出了挑战,我认为这对我的发展有好处,但是我请求你对我的态度再柔和一点,因为我是科学上的残疾人。我的背景是在艺术领域。当我和女士们交谈时,她们说我说话像个诗人。我只希望我不会像诗人一样写代码!!。 说真的,我今天没有睡觉,在24小时内,我将恢复我对数组的理解。我希望你能纠正我的错误,并帮助我理解数组在编程中的应用。 哦,CB,哦,CB! 顺便说一下,我的三个最好的讲师是Otakpor博士,Barr Richard Idubor,和Barr Bob Osamor!!!。 Otakpor博士(教授逻辑学和哲学)通过用自己的问题来反驳学生的问题,使他们回答自己的问题,从而激发了学生的兴趣。 这使得整个课程具有互动性。如果你被卡住了,他会轻轻地催促你,暗示你,直到你得到答案。 如果你不知道,嗯......那就另当别论了。 [删除] 2009.09.15 01:13 #22 你的问题更多的是关于你为什么要使用数组而不是如何使用? 如果是这样,那么从我的角度来看,数组是一种更整齐的方式来存储同一变量的一组实例,每个实例都可以通过描述其位置来找到。 举个例子,如果你写了一个应用程序,实现了一个非常简单的密码,其中A=1,B=2,C=3等等,你可以把字母表中的字母存储在一个一维(1x26)的字符串数组中,通过替换数字来定位每个字母。如果(作为一个例子)你写了一个EA,它存储了每个新小时过去3分钟后的第一个点的卖出价和买入价,并以滚动方式存储了过去5小时的这些值,那么你可以用一个二维(2x5)的双数组来完成。 CB jay 2009.09.15 02:26 #23 cloudbreaker wrote>> 你的问题更多的是关于你为什么要使用数组而不是如何使用? 如果是这样,那么从我的角度来看,数组是一种更整齐的方式来存储同一变量的一组实例,每个实例都可以通过描述其位置来找到。 举个例子,如果你写了一个应用程序,实现了一个非常简单的密码,其中A=1,B=2,C=3等等,你可以把字母表中的字母存储在一个一维(1x26)的字符串数组中,通过替换数字来定位每个字母。如果(作为一个例子)你写了一个EA,它存储了每个新小时过去3分钟后的第一个点的卖出价和买入价,并以滚动方式存储了过去5小时的这些值,那么你可以用一个二维(2x5)的双数组来完成。 CB 好吧,CB,我的问题更多的是集中在如何,而不是为什么。我知道为什么;为了方便。我理解你上面写的大部分内容,但不是全部!你又对我说技术问题了。 你又开始对我说技术了,看,为了让我们前进,你需要婴儿的谈话和耐心。我们肯定会让你感到骄傲,但这需要一段时间。考虑到就在3天前,你的上述帖子对我来说毫无意义,我恭敬地问,你的 "滚动基础 "是什么意思? 我相信当你解释的时候,我就会觉得自己被打了,但现在我很困惑 总之,我明白了原因,但不明白怎么做。 我正在写一篇关于阵列的文章,将在接下来的24小时内提交给大家,如果我漏掉了什么,我希望得到纠正。如果没有,我将会询问关于阵列的方法和时间。 非常感谢。 我很感谢你的帮助! jay 2009.09.15 04:02 #24 好吧,CB,我准备好了我的文章。我确信我犯了一两个错误,我很高兴有人给我指出来。就其价值而言,我认为在某些方面,我听起来有点技术性(谈论初始化和声明和其他东西)。写这篇文章让我对事情有了一些不同的看法,但无论如何我也从写这篇文章中学到了东西。 我将阅读关于多维数组的资料。 我希望你(以及其他所有人)能对这篇文章提出真诚的批评。 如果有哪个新手从中受益,我也想听听你的意见。 也许我也会写一篇关于函数 的文章,因为写这些东西会让我更深入地了解它! jay 2009.09.15 04:08 #25 什么是数组? 给数组下定义可能会使新手失望,所以最好是对它进行描述。之后,任何人都可以查到它的技术定义! 一个数组可以被认为是一组类似的数据。 一个例子。 人口每年都在变化。 2004年人口=4 2005年人口=5 2006年人口=6 2007年人口=7 2008年人口=8 2009年人口=9,以此类推。 如果我们用mql4编程,为了使用这些数据,我们可以将它们声明为变量,例如 int 2004pop = 4; int 2005pop = 5; int 2006pop = 6; int 2007pop = 7; 以此类推,直到我们到达2009年或无穷大。 这可以工作,但很麻烦。这就是数组的作用。 整个人口数据是一个数组。 要使用数组,你必须首先声明它们。 它们是用这些"[ ]"来声明的 你必须做的第一件事是告诉程序数组的类型,它是一个整数,一个双数,等等,在我们的例子中它是一个整数。 然后给数组起一个描述性的名字,我们称之为yearpop(年份人口的缩写)。 在描述性名称之后是大括号[],在大括号内我们披露我们正在处理的内容。在我们的例子中,我们有6个数据,所以在括号内我们要填上6,就像这样 [6] 。 到目前为止,我们的数组声明看起来是这样的 int yearpop [6]; 我们可以进一步初始化数组,显示各个年份的值,像这样 int yearpop [6] = {4,5,6,7,8,9}; 现在mql4从0而不是1开始计数。这里我们有六个值,所以mql4不是从1到6进行编号,而是从0到5进行编号。为了获得第一年的值,你必须使用0,对于第二年,你必须使用1,以此类推。 再看一下这个 int yearpop [6] = {4,5,6,7,8,9} 。 数字4、5、6、7、8、9被称为元素 你获得元素值的方法是通过它们的索引(我希望我没有在这里混淆事情)。 索引从0开始到任何数字(在我们的例子中是5)。 因此,如果你想获得第一年的数值,你要使用它的索引,即0,像这样 yearpop [0] // 这将给你第一年的人口。 yearpop [1] // 第二年的人口。 通过这种方式,你可以方便地 进行很多计算(我想)。 例如 int overpopulation ; overpopulation = yearpop[0] +yearpop [3] / yearpop [2]; 这如何适用于mql4? 到目前为止我所知道的是,在mql4中,当前条形或时间框架或符号或图表总是0或NULL。 其次mql4是这样向后计数的 543210(从右到左)。 举个例子,在任何图表上(抱歉我不能做图形) 当前的条形图,尚未形成,其值为0。 紧挨着它的左边的柱子的值是1,而左边的下一个柱子的值是2,以此类推。 价值为0的条形图完成后,它的价值为1,而新形成的条形图的价值为0,所有其他的条形图也相应地发生变化。 现在,假设我们有一个条形图的最高价位数组(实际上我们有),我们可以做这样的事情 double highlevels [200];//意味着我们的数组里有200个条形的//价值的数据 实际上在mql4中有一个函数可以告诉我们所有条形的最高价和最低价。 假设你想知道第150个柱子和第一个柱子之间的差异。 如果没有数组,你将不得不声明,并可能初始化至少150条,这将是非常耗时的(CB,这就是数组的原因)。 但是,既然我们有数组,我们需要做的就是通过索引号来引用它们,然后进行计算,就像这样 双倍差值。 difference = highlevels [0] - highlevels[149] // 记住我们是从0开始计算的。 0是当前形成的柱子。如果我们想用一个已经完成的柱子进行计算,我们用高位[1]代替。 到目前为止,我只谈到了一维数组。它就像一个只有一行的表。 Mql4允许高达4维的数组,这是我还没有想好的事情。 面向初学者的 MQL4 语言。技术指标和内置函数 深入了解累积/派发以及它的作用 谬误,第 2 部分统计学是一门伪科学,亦或是一部记录艰难生计的编年史 jay 2009.09.18 17:45 #26 有谁见过这个吗? Niko 2009.10.30 13:08 #27 嘿,伙计们 看到在我消失之后,这个主题还有帖子,真是太美了。我在这个论坛上一个相当出色的人的指导下,进入了背景工作的策略。因此,从现实的角度讲,我恐怕在不久的将来不会对这个主题做出什么贡献,至少不会像以前那样 "深入"。) 同时,对所有的新手来说:保持对交易的热情,记住,如果你帮助了别人,当你需要帮助的时候,帮助也会找到你 :) [删除] 2010.04.26 01:52 #28 你好。 作为一个新手,我想问一下,内置的metastock函数: ref()和stochmomentum()是否由metatrader中的一些函数实现? 谢谢 Boyan Atanassov 2010.06.06 04:28 #29 Huckleberry: 嘿,尼科。 今天是7月4日。你从土耳其回来了吗? 问候 Huckleberry 对于那些需要通过搜索文件来寻找其中内容的人来说,这里有整个文件的PDF版本... 它是从一个编译的HTML帮助文件转换到PDF的... jay 2010.06.29 16:07 #30 cloudbreaker: 8284 - 好的程序员努力追求模块化--即创建可重复使用的构件,这些构件可以重复地拼接在一起,每一个新的程序都只需要编写最少的新代码。你必须明白,这种方法也适用于培训材料。有很多资源可以用来学习你提到的编程基础知识,因为它们在所有技术中都是通用的。在每一种编程语言中重复这些学习材料是没有效率的。 CB 嗨,CB。 自上述情况以来,发生了很多事情。我在代码编写方面已经比我想象的要熟练得多(虽然还有很多需要打磨的地方)。我发现你上面的这句话是如此的有见地(这是我当时没有体会到的)。 我想说,感谢你的帮助(我也从你对别人的帮助中学习),并祝贺你被任命为版主(我认为是当之无愧的)! 也祝贺Gordon和BB! 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
哦,CB,哦,CB !
你是一个艰难的人。你真的不想牵着我的手度过这个难关。这也是我逃离的那本用希腊语、拉丁语和火星语写的书。诚然,如果不学习术语,就不可能熟练掌握一种职业,但.....。
你让我想起了我的逻辑学讲师Otakpor博士(我指的是哲学下的逻辑)。如果你不知道自己在问什么,最好不要问他问题。CB,关于数组的书对我来说是相当技术性的(这是我第一次尝试编码)。我对它的内容有一个模糊的概念,但没有完全理解。不过,我把这当作一个挑战。
我将寻找那个小小的"...a",把我的 "啊... "变成 "aha"。
我将阅读和写作,然后给你我所知道的关于数组的知识(实际上我最需要知道的是它们的应用)。
唯一的问题是,这将导致一个非常长的帖子。在一些代码中,我看到数组被使用[],但我不太明白其中的逻辑。我希望如果有人向我解释,我就不会有那么多的问题(有点像拼图中缺少的一块)。
你向我提出了挑战,我认为这对我的发展有好处,但是我请求你对我的态度再柔和一点,因为我是科学上的残疾人。我的背景是在艺术领域。当我和女士们交谈时,她们说我说话像个诗人。我只希望我不会像诗人一样写代码!!。
说真的,我今天没有睡觉,在24小时内,我将恢复我对数组的理解。我希望你能纠正我的错误,并帮助我理解数组在编程中的应用。
哦,CB,哦,CB!
顺便说一下,我的三个最好的讲师是Otakpor博士,Barr Richard Idubor,和Barr Bob Osamor!!!。
Otakpor博士(教授逻辑学和哲学)通过用自己的问题来反驳学生的问题,使他们回答自己的问题,从而激发了学生的兴趣。
这使得整个课程具有互动性。如果你被卡住了,他会轻轻地催促你,暗示你,直到你得到答案。
如果你不知道,嗯......那就另当别论了。
你的问题更多的是关于你为什么要使用数组而不是如何使用?
如果是这样,那么从我的角度来看,数组是一种更整齐的方式来存储同一变量的一组实例,每个实例都可以通过描述其位置来找到。
举个例子,如果你写了一个应用程序,实现了一个非常简单的密码,其中A=1,B=2,C=3等等,你可以把字母表中的字母存储在一个一维(1x26)的字符串数组中,通过替换数字来定位每个字母。如果(作为一个例子)你写了一个EA,它存储了每个新小时过去3分钟后的第一个点的卖出价和买入价,并以滚动方式存储了过去5小时的这些值,那么你可以用一个二维(2x5)的双数组来完成。
CB
你的问题更多的是关于你为什么要使用数组而不是如何使用?
如果是这样,那么从我的角度来看,数组是一种更整齐的方式来存储同一变量的一组实例,每个实例都可以通过描述其位置来找到。
举个例子,如果你写了一个应用程序,实现了一个非常简单的密码,其中A=1,B=2,C=3等等,你可以把字母表中的字母存储在一个一维(1x26)的字符串数组中,通过替换数字来定位每个字母。如果(作为一个例子)你写了一个EA,它存储了每个新小时过去3分钟后的第一个点的卖出价和买入价,并以滚动方式存储了过去5小时的这些值,那么你可以用一个二维(2x5)的双数组来完成。
CB
好吧,CB,我的问题更多的是集中在如何,而不是为什么。我知道为什么;为了方便。我理解你上面写的大部分内容,但不是全部!你又对我说技术问题了。
你又开始对我说技术了,看,为了让我们前进,你需要婴儿的谈话和耐心。我们肯定会让你感到骄傲,但这需要一段时间。考虑到就在3天前,你的上述帖子对我来说毫无意义,我恭敬地问,你的 "滚动基础 "是什么意思?
我相信当你解释的时候,我就会觉得自己被打了,但现在我很困惑
总之,我明白了原因,但不明白怎么做。
我正在写一篇关于阵列的文章,将在接下来的24小时内提交给大家,如果我漏掉了什么,我希望得到纠正。如果没有,我将会询问关于阵列的方法和时间。
非常感谢。
我很感谢你的帮助!
好吧,CB,我准备好了我的文章。我确信我犯了一两个错误,我很高兴有人给我指出来。就其价值而言,我认为在某些方面,我听起来有点技术性(谈论初始化和声明和其他东西)。写这篇文章让我对事情有了一些不同的看法,但无论如何我也从写这篇文章中学到了东西。
我将阅读关于多维数组的资料。
我希望你(以及其他所有人)能对这篇文章提出真诚的批评。
如果有哪个新手从中受益,我也想听听你的意见。
也许我也会写一篇关于函数 的文章,因为写这些东西会让我更深入地了解它!
什么是数组?
给数组下定义可能会使新手失望,所以最好是对它进行描述。之后,任何人都可以查到它的技术定义!
一个数组可以被认为是一组类似的数据。
一个例子。
人口每年都在变化。
2004年人口=4
2005年人口=5
2006年人口=6
2007年人口=7
2008年人口=8
2009年人口=9,以此类推。
如果我们用mql4编程,为了使用这些数据,我们可以将它们声明为变量,例如
int 2004pop = 4;
int 2005pop = 5;
int 2006pop = 6;
int 2007pop = 7; 以此类推,直到我们到达2009年或无穷大。
这可以工作,但很麻烦。这就是数组的作用。
整个人口数据是一个数组。
要使用数组,你必须首先声明它们。
它们是用这些"[ ]"来声明的
你必须做的第一件事是告诉程序数组的类型,它是一个整数,一个双数,等等,在我们的例子中它是一个整数。
然后给数组起一个描述性的名字,我们称之为yearpop(年份人口的缩写)。
在描述性名称之后是大括号[],在大括号内我们披露我们正在处理的内容。在我们的例子中,我们有6个数据,所以在括号内我们要填上6,就像这样 [6] 。
到目前为止,我们的数组声明看起来是这样的
int yearpop [6];
我们可以进一步初始化数组,显示各个年份的值,像这样
int yearpop [6] = {4,5,6,7,8,9};
现在mql4从0而不是1开始计数。这里我们有六个值,所以mql4不是从1到6进行编号,而是从0到5进行编号。为了获得第一年的值,你必须使用0,对于第二年,你必须使用1,以此类推。
再看一下这个
int yearpop [6] = {4,5,6,7,8,9} 。
数字4、5、6、7、8、9被称为元素
你获得元素值的方法是通过它们的索引(我希望我没有在这里混淆事情)。
索引从0开始到任何数字(在我们的例子中是5)。
因此,如果你想获得第一年的数值,你要使用它的索引,即0,像这样
yearpop [0] // 这将给你第一年的人口。
yearpop [1] // 第二年的人口。
通过这种方式,你可以方便地 进行很多计算(我想)。
例如
int overpopulation ;
overpopulation = yearpop[0] +yearpop [3] / yearpop [2];
这如何适用于mql4?
到目前为止我所知道的是,在mql4中,当前条形或时间框架或符号或图表总是0或NULL。
其次mql4是这样向后计数的
543210(从右到左)。
举个例子,在任何图表上(抱歉我不能做图形)
当前的条形图,尚未形成,其值为0。
紧挨着它的左边的柱子的值是1,而左边的下一个柱子的值是2,以此类推。
价值为0的条形图完成后,它的价值为1,而新形成的条形图的价值为0,所有其他的条形图也相应地发生变化。
现在,假设我们有一个条形图的最高价位数组(实际上我们有),我们可以做这样的事情
double highlevels [200];//意味着我们的数组里有200个条形的//价值的数据
实际上在mql4中有一个函数可以告诉我们所有条形的最高价和最低价。
假设你想知道第150个柱子和第一个柱子之间的差异。
如果没有数组,你将不得不声明,并可能初始化至少150条,这将是非常耗时的(CB,这就是数组的原因)。
但是,既然我们有数组,我们需要做的就是通过索引号来引用它们,然后进行计算,就像这样
双倍差值。
difference = highlevels [0] - highlevels[149] // 记住我们是从0开始计算的。
0是当前形成的柱子。如果我们想用一个已经完成的柱子进行计算,我们用高位[1]代替。
到目前为止,我只谈到了一维数组。它就像一个只有一行的表。
Mql4允许高达4维的数组,这是我还没有想好的事情。
嘿,伙计们
看到在我消失之后,这个主题还有帖子,真是太美了。我在这个论坛上一个相当出色的人的指导下,进入了背景工作的策略。因此,从现实的角度讲,我恐怕在不久的将来不会对这个主题做出什么贡献,至少不会像以前那样 "深入"。)
同时,对所有的新手来说:保持对交易的热情,记住,如果你帮助了别人,当你需要帮助的时候,帮助也会找到你 :)
作为一个新手,我想问一下,内置的metastock函数: ref()和stochmomentum()是否由metatrader中的一些函数实现?
谢谢
嘿,尼科。
今天是7月4日。你从土耳其回来了吗?
问候
Huckleberry
对于那些需要通过搜索文件来寻找其中内容的人来说,这里有整个文件的PDF版本...
它是从一个编译的HTML帮助文件转换到PDF的...
8284 - 好的程序员努力追求模块化--即创建可重复使用的构件,这些构件可以重复地拼接在一起,每一个新的程序都只需要编写最少的新代码。你必须明白,这种方法也适用于培训材料。有很多资源可以用来学习你提到的编程基础知识,因为它们在所有技术中都是通用的。在每一种编程语言中重复这些学习材料是没有效率的。
CB
嗨,CB。
自上述情况以来,发生了很多事情。我在代码编写方面已经比我想象的要熟练得多(虽然还有很多需要打磨的地方)。我发现你上面的这句话是如此的有见地(这是我当时没有体会到的)。
我想说,感谢你的帮助(我也从你对别人的帮助中学习),并祝贺你被任命为版主(我认为是当之无愧的)!
也祝贺Gordon和BB!