关于MQL4编程的在线书籍的测试版 - 由Sergey Kovalev (SK.)撰写。 - 页 3 12345678910...12 新评论 Сергей Ковалев 2008.01.05 18:07 #21 Climber: 一周前我第一次尝试Meta Trader,发现它比我以前的终端(Rumus和Forex Trader)要方便得多。大约两年前,当我了解到外汇并开了第一个模拟账户时,我想知道如何将一切都自动化。然后我打开终端,在邮件部分看到了自动交易的信息。而我就在这里))))。我认真地阅读了这本书,我希望很快就能为我开发的战略编写第一个专家顾问。我以前完全没有接触过编程,甚至很难想象我将会学习编程))))。在我阅读的过程中,问题出现了,但它们也随着我的阅读而消失了。问题出现了,我往前看了看,很满意,因为我在看了几章后就看到了答案,于是又按顺序看了一遍。 我尤其被在历史数据上测试策略并因此调整策略的可能性所吸引。 无论如何,非常感谢你的书。 它是非常好的。你是一个新的MT用户。而你目前对编程几乎一无所知。 请允许我建议你每月至少报告两到三次事情的进展情况(如果你愿意,可以更频繁地报告)。这将是非常有趣的。 同时,如果你允许的话,我有一个问题。你说,出现了一个问题,在下面的章节中会有回答。我已经试图把它放在一起,以避免这种情况。能否请你澄清一下你指的是什么问题? Сергей 2008.01.05 19:34 #22 SK. писал (а): Climber: 一个星期前,我第一次安装并试用了Meta Trader。事实证明,这个终端比我以前的终端(Rumus和Forex Trader)要方便得多。大约两年前,当我了解到外汇并开了第一个模拟账户时,我想知道如何将一切都自动化。然后我打开终端,在邮件部分看到了自动交易的信息。而我就在这里))))。我认真地阅读了这本书,我希望很快就能为我开发的战略编写第一个专家顾问。我以前和编程完全没有关系,甚至很难想象我会学习编程))))。在我阅读的过程中,问题出现了,但它们也随着我的阅读而消失了。问题出现了,我往前看,很满意,因为我在几章之后就看到了答案,于是又按顺序去读所有的东西。我尤其被在历史数据上测试该策略的可能性所吸引,并因此而对其进行修正。 无论如何,非常感谢你的书。 它是非常好的。你是一个新的MT用户。而你目前对编程几乎一无所知。 请允许我向你提出:每月至少让我知道你的情况(如果你愿意,也可以更频繁)。这将是非常有趣的。 同时,如果你允许的话,我有一个问题。你说,出现了一个问题,在下面的章节中会有回答。我已经试图把它放在一起,以避免这种情况。能否请你澄清一下你指的是哪个问题? 我曾经用Sign of Misery来使我的工作更容易,在这里你可以在不了解任何编程的情况下写一个程序。你只需要按照执行的顺序指定动作(我主要把它作为一个自动机,虽然还有更多的可能性)。假设我在Excel中的4列中有很多数值(地球物理学的电测数据,每20厘米)。为了进一步处理这些数据,我需要只从仪表上获取数据(即从0、1、2、3、4 ....)。我做了这个程序来自动化操作,通过命令来模拟按键和改变鼠标的坐标。我把它编入了Ehe。但这只是一个离题。该程序必须制作标签,并设置过渡到这些标签的条件,即进行一个操作周期,并有条件退出这个周期。当我谈到构建EA的问题时,我对代码结构的总体看法有了一些了解。但当我开始读这本书时,我对程序结构有点困惑,然后由函数int start()在每个tick上重复,如果在其执行时我发现了bid的价格,它被写入一个变量并在整个执行过程中被存储在其中,那么我如何知道价格何时发生了变化,程序可以根据新价格执行任何其他动作?我以为我的程序中的价格会被某种循环代码所更新,不断地要求它。我还有一个问题:当你调用一个函数并执行时,我想象下一个函数会被执行,但结果是控制权返回到函数中,跟随最初调用函数的那个函数。但这个事实让我特别高兴,因为它让我明白了(因为我想,其他的行动呢,这些行动遵循这个功能,它们是否以这种方式跳过?)现在我有一个这样的问题。我的理解是,在执行init函数时,我将调用一个函数,为我的订单计算一个合适的开盘价,并根据我账户上的余额数据计算手数;init完成后,将开始执行start函数,其中将包含一个 "等待 "的代码,以便交易的必要价格,只要它将到来,订单开盘将被执行(获利不被认为是放,因为如果将有一个跳跃,这将跳过值ТР,它不会触发,和跳跃这可能是有利的比值ТР,因此,我想形成订单关闭订单在最后已知的价格,当当前价格等于,或< ,或>指定。或>);那么对我来说最神秘的事情是在哪里写等待订单 "关闭 "价格的代码,并返回到最开始,即再次计算结算价格并使用订单 "关闭"。也就是说,我必须计算出开盘时要设定的价格,等待这个价格,等等。我提前看了一下各章节;我想我在标题中看到了一些东西,这可能会回答我的问题。当我读完《开盘和定盘》一节时。我昨天早上开始读它。 当然,我会让你知道进展情况的,就像我的情况一样,没有沟通))。我希望能得到建设性的反馈。 谢谢你的时间和关注。 Сергей Ковалев 2008.01.05 20:46 #23 请将以下信息分成几段,因为很难理解所写的内容。 Climber: 但在开始阅读这本书时,我对程序的结构感到有点困惑,然后是int start ()函数,该函数在每个tick点重复执行,如果在其执行时我知道bid的价格,然后它被写入一个变量并在整个执行时间内存储在其中,那么我将如何知道价格何时发生变化,程序可以根据新价格执行任何其他行动?我以为我的程序中的价格会被一些循环代码更新,不断要求它。 你说的很对,为了使程序能够实时工作,有必要定期通知新的价格事实和价格本身。 的确,有2种方法可以做到这一点。 第一种方法是在无尽的循环中运行一些函数,并从它那里定期请求价格。 但这种方法也有缺点。- 如果经常进行查询,其结果是对通信渠道造成沉重的负担,并浪费PC资源。- 如果你不经常进行查询,你可能会在两次查询之间错过一个新的价格。 第2种方法(被认为是MQ技术的基本方法)是非常不同的,因为必要代码的启动属于终端。终端接收来自服务器的信息,了解到一个新的tick已经到来(新价格的事实和价格本身),基于这些信息,终端启动()功能。所有这些在MQL4的程序 部分都有描述。 攀登者。 现在我有一个问题:我意识到,当执行初始函数时,我将调用计算订单开仓价格的函数,同时也计算手数,基于我账户上的余额数据;在初始执行后,将开始启动函数启动。 不正确。init()和start()是特殊函数。它们被客户终端根据自己的属性(或者更简单地说,根据规则,在什么条件下被调用执行)来调用。这在特殊功能 部分有描述。init()函数被执行一次,当程序被加载到窗口时。而start()则在每个tick上被调用。这是很方便的。一个嘀嗒声来了,带来了一个新的价格=终端启动start(),直到它被执行。所有的计算都必须插入其中--计算手数、开仓/平仓指令的条件以及其他一切。 攀登者。 然后,最让我困惑的是在哪里写代码,期望订单的 "平仓 "价格并返回到起点,即再次计算开盘价,等待这个价格,等等。我提前看了一下各章节;我想我在标题中看到了一些东西,这可能会回答我的问题。我将喜欢阅读《开局与定局》部分。 从你的问题来看,你不需要写程序,也不需要读你现在读的东西。在这种情况下,强烈建议重新开始阅读本书。始终如一,不求有功但求无过。而在你前进的过程中,将所有提出的例子输入ME,并在你的电脑上执行它们。而且在完全理解代码的每一个字母之前,不要进入下一节。查阅 "勾选"、"控制"、"功能"、"特殊功能"、"操作者 "等概念,并不时地查看术语词典。 攀登者。 我一定会报告进展情况,因为在我的位置上,没有沟通))。我希望能得到建设性的反馈。 谢谢你的反馈。 我希望你能正确地接受建议并遵循它。 Сергей 2008.01.05 21:50 #24 SK.写道:(a)。 <br / translate="no">攀登者。 然后,最让我困惑的是,在哪里写等待 "收盘 "价格的代码,并返回到起点,即再次计算开盘价格,等待这个价格,等等。我提前看了一下各章节;我想我在标题中看到了一些东西,也就是说,这似乎是我问题的答案。我仍在阅读《开局与定单》一节。 从你的问题来看,你还不需要写程序,你也不需要读你现在读的东西。 呃,我想我已经掌握了专家的结构。 迅速在vdp中潦草写下,给你。 啟動 开始 我设置了未结订单的最大数量=1。 检查有多少订单是开放的。 如果1是开放的,那么我就调用函数来关闭订单。 如果没有订单,我就调用函数 "计算价格和手数"。 -------------------------- 有必要计算出有利的买卖价格,并计算出手数。 -------------------------- 查询当前价格。 如果当前价格>=卖出的议价价格。 然后开出与已经确定的手数相等的卖单。 如果没有,则将当前价格与中标价格进行比较。 如果当前价格<=买入价格。 分别打开一个买入订单。 -------------------------- 调用函数 来关闭订单。 返回 灭亡 明白了吗? Сергей Ковалев 2008.01.05 22:12 #25 Climber: 明白了吗? 嗯,总体来说是对的 :)祝贺你。能理解其他东西总是好的。 不过,请听我的建议:回到开头,从头开始,不要跳过或跳过,有条不紊地在你的电脑上执行教程中建议的所有代码。 [删除] 2008.01.06 07:25 #26 Parabellum: 书中有一个有趣的ROC指标--变化率指标(https://book.mql4.com/ru/samples/iroc)。我明白这本书是一本教科书,作者没有义务给出半粒或甚至四分之一粒的源代码,但该指标的想法非常好,我对它进行了一些调整,使滞后性更弱。 顺便说一下,在网页上公布的指标文本本身有两个错误的代码,因此是无法编译的。 Line_4[i]=(Line_1[i]+Line_2[i]+Line_3[i])3;// Суммарный массив //-------------------------------------------------------- 17 -- Line_5[i]= Sum(Aver_Bars+1); // Индик. массив сглаженной линии 有两次分部字符丢失(在创建html文件的过程中消失了?) 文中链接的指标文件是正常的。 [删除] 2008.01.06 08:46 #27 SK. писал (а): 嗯,总体来说是对的 :)祝贺你。能理解其他东西总是好的。 不过,请听我的建议:你需要回到起点,从头开始,不要跳来跳去,有条不紊地在你的电脑上执行教程中建议的所有代码。 是的,我同意,看到和感受到你所读的任何结果是非常重要的,那是当它被固定在长期记忆中的时候,更多的是在情感内容的影响下,出现一个以上的联想:)对了,我还想强调的是,为了激发兴趣,有必要回过头来或使用那些最重要的章节,那么兴趣本身就会引向目标,扩大知识圈。在我们的情况下,最困难的事情是在我们前进的过程中了解什么是有趣的,制定出最有效的顺序,因为我们看到我们拥有的一切的有效性。我想把联想记忆的运作与引导记忆联系起来,只要有至少一个链接(联想),分布的区域就会存在,链接越多,区域就越有可能不被释放,从而确保其使用和后续的效用。因此,有必要不断补充协会的库存,以巩固你所读的东西。 P.S.: 如果我走得太远,请原谅。) Сергей Ковалев 2008.01.06 11:17 #28 timbo: 顺便说一下,发表在网页上的指标文本本身在代码中就有两个错别字,因此是无法编译的。 Line_4[i]=(Line_1[i]+Line_2[i]+Line_3[i])3;// Суммарный массив //-------------------------------------------------------- 17 -- Line_5[i]= Sum(Aver_Bars+1); // Индик. массив сглаженной линии 除法符号丢失了两次(在创建html文件时消失了?) 文中链接的指标文件是正常的。 是的,有这样一个东西。源代码中还没有错误,而文本代码由于某种原因在某些地方被搞砸了。我们会解决这个问题。 Сергей 2008.01.06 13:10 #29 xnsnet: P.S.: 如果我反应过激,请原谅:) :)是的,那里有一点)))。 Сергей 2008.01.06 13:39 #30 还有一个关于这本书的小说明。最好使用现实生活中的例子,我指的不是猫,而是金钱或相关的东西。例如,当我说到循环运算符时,与羊的例子让你有点分心,你开始思考如何在我们的条件下使用它,这就分散了你对感知过程的注意力。 我对循环已经感到很困难了(我将不止一次地回到这些部分),然后还有那些羊。 只是我的看法,如果考虑到一个具体的交易(几乎是突袭:))的例子,好吧,交易,那么如果读者遇到一个与他的想法相似的例子(他不知道如何实现),他就会怀着极大的兴趣考虑这个例子,并思考如何修改和定制它来实现他的想法(我想你知道我的意思)。 我有这样一个例子,我对如何为1/3的余额开立订单感兴趣。你无法想象,为了将1/3转换为美元,以便我得到手数(0.1手或3.5手),我的脑子里进行了怎样的数学运算。当我看到openbuy.mq4 的例子时,我是多么高兴,它打开了一个价值35%的可用资金的买入订单,并有一些指定的止损订单的值。我把它看了一遍又一遍,看了每一行,什么,为什么,还有哪里。我看了一下其中使用的标准函数(MathFloor, MarketInfo. ....)。 12345678910...12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一周前我第一次尝试Meta Trader,发现它比我以前的终端(Rumus和Forex Trader)要方便得多。大约两年前,当我了解到外汇并开了第一个模拟账户时,我想知道如何将一切都自动化。然后我打开终端,在邮件部分看到了自动交易的信息。而我就在这里))))。我认真地阅读了这本书,我希望很快就能为我开发的战略编写第一个专家顾问。我以前完全没有接触过编程,甚至很难想象我将会学习编程))))。在我阅读的过程中,问题出现了,但它们也随着我的阅读而消失了。问题出现了,我往前看了看,很满意,因为我在看了几章后就看到了答案,于是又按顺序看了一遍。 我尤其被在历史数据上测试策略并因此调整策略的可能性所吸引。
无论如何,非常感谢你的书。
它是非常好的。你是一个新的MT用户。而你目前对编程几乎一无所知。
请允许我建议你每月至少报告两到三次事情的进展情况(如果你愿意,可以更频繁地报告)。这将是非常有趣的。
同时,如果你允许的话,我有一个问题。你说,出现了一个问题,在下面的章节中会有回答。我已经试图把它放在一起,以避免这种情况。能否请你澄清一下你指的是什么问题?
一个星期前,我第一次安装并试用了Meta Trader。事实证明,这个终端比我以前的终端(Rumus和Forex Trader)要方便得多。大约两年前,当我了解到外汇并开了第一个模拟账户时,我想知道如何将一切都自动化。然后我打开终端,在邮件部分看到了自动交易的信息。而我就在这里))))。我认真地阅读了这本书,我希望很快就能为我开发的战略编写第一个专家顾问。我以前和编程完全没有关系,甚至很难想象我会学习编程))))。在我阅读的过程中,问题出现了,但它们也随着我的阅读而消失了。问题出现了,我往前看,很满意,因为我在几章之后就看到了答案,于是又按顺序去读所有的东西。我尤其被在历史数据上测试该策略的可能性所吸引,并因此而对其进行修正。
无论如何,非常感谢你的书。
它是非常好的。你是一个新的MT用户。而你目前对编程几乎一无所知。
请允许我向你提出:每月至少让我知道你的情况(如果你愿意,也可以更频繁)。这将是非常有趣的。
同时,如果你允许的话,我有一个问题。你说,出现了一个问题,在下面的章节中会有回答。我已经试图把它放在一起,以避免这种情况。能否请你澄清一下你指的是哪个问题?
当然,我会让你知道进展情况的,就像我的情况一样,没有沟通))。我希望能得到建设性的反馈。
谢谢你的时间和关注。
请将以下信息分成几段,因为很难理解所写的内容。
但在开始阅读这本书时,我对程序的结构感到有点困惑,然后是int start ()函数,该函数在每个tick点重复执行,如果在其执行时我知道bid的价格,然后它被写入一个变量并在整个执行时间内存储在其中,那么我将如何知道价格何时发生变化,程序可以根据新价格执行任何其他行动?我以为我的程序中的价格会被一些循环代码更新,不断要求它。
你说的很对,为了使程序能够实时工作,有必要定期通知新的价格事实和价格本身。
的确,有2种方法可以做到这一点。
第一种方法是在无尽的循环中运行一些函数,并从它那里定期请求价格。
但这种方法也有缺点。
- 如果经常进行查询,其结果是对通信渠道造成沉重的负担,并浪费PC资源。
- 如果你不经常进行查询,你可能会在两次查询之间错过一个新的价格。
第2种方法(被认为是MQ技术的基本方法)是非常不同的,因为必要代码的启动属于终端。终端接收来自服务器的信息,了解到一个新的tick已经到来(新价格的事实和价格本身),基于这些信息,终端启动()功能。所有这些在MQL4的程序 部分都有描述。
现在我有一个问题:我意识到,当执行初始函数时,我将调用计算订单开仓价格的函数,同时也计算手数,基于我账户上的余额数据;在初始执行后,将开始启动函数启动。
不正确。init()和start()是特殊函数。它们被客户终端根据自己的属性(或者更简单地说,根据规则,在什么条件下被调用执行)来调用。这在特殊功能 部分有描述。init()函数被执行一次,当程序被加载到窗口时。而start()则在每个tick上被调用。这是很方便的。一个嘀嗒声来了,带来了一个新的价格=终端启动start(),直到它被执行。所有的计算都必须插入其中--计算手数、开仓/平仓指令的条件以及其他一切。
然后,最让我困惑的是在哪里写代码,期望订单的 "平仓 "价格并返回到起点,即再次计算开盘价,等待这个价格,等等。我提前看了一下各章节;我想我在标题中看到了一些东西,这可能会回答我的问题。我将喜欢阅读《开局与定局》部分。
从你的问题来看,你不需要写程序,也不需要读你现在读的东西。在这种情况下,强烈建议重新开始阅读本书。始终如一,不求有功但求无过。而在你前进的过程中,将所有提出的例子输入ME,并在你的电脑上执行它们。而且在完全理解代码的每一个字母之前,不要进入下一节。查阅 "勾选"、"控制"、"功能"、"特殊功能"、"操作者 "等概念,并不时地查看术语词典。
我一定会报告进展情况,因为在我的位置上,没有沟通))。我希望能得到建设性的反馈。
谢谢你的反馈。
我希望你能正确地接受建议并遵循它。
然后,最让我困惑的是,在哪里写等待 "收盘 "价格的代码,并返回到起点,即再次计算开盘价格,等待这个价格,等等。我提前看了一下各章节;我想我在标题中看到了一些东西,也就是说,这似乎是我问题的答案。我仍在阅读《开局与定单》一节。
从你的问题来看,你还不需要写程序,你也不需要读你现在读的东西。
迅速在vdp中潦草写下,给你。
啟動
开始
我设置了未结订单的最大数量=1。
检查有多少订单是开放的。
如果1是开放的,那么我就调用函数来关闭订单。
如果没有订单,我就调用函数 "计算价格和手数"。
--------------------------
有必要计算出有利的买卖价格,并计算出手数。
--------------------------
查询当前价格。
如果当前价格>=卖出的议价价格。
然后开出与已经确定的手数相等的卖单。
如果没有,则将当前价格与中标价格进行比较。
如果当前价格<=买入价格。
分别打开一个买入订单。
--------------------------
调用函数 来关闭订单。
返回
灭亡
明白了吗?明白了吗?
嗯,总体来说是对的 :)祝贺你。能理解其他东西总是好的。
不过,请听我的建议:回到开头,从头开始,不要跳过或跳过,有条不紊地在你的电脑上执行教程中建议的所有代码。
书中有一个有趣的ROC指标--变化率指标(https://book.mql4.com/ru/samples/iroc)。我明白这本书是一本教科书,作者没有义务给出半粒或甚至四分之一粒的源代码,但该指标的想法非常好,我对它进行了一些调整,使滞后性更弱。
有两次分部字符丢失(在创建html文件的过程中消失了?)
文中链接的指标文件是正常的。
嗯,总体来说是对的 :)祝贺你。能理解其他东西总是好的。
不过,请听我的建议:你需要回到起点,从头开始,不要跳来跳去,有条不紊地在你的电脑上执行教程中建议的所有代码。
是的,我同意,看到和感受到你所读的任何结果是非常重要的,那是当它被固定在长期记忆中的时候,更多的是在情感内容的影响下,出现一个以上的联想:)对了,我还想强调的是,为了激发兴趣,有必要回过头来或使用那些最重要的章节,那么兴趣本身就会引向目标,扩大知识圈。在我们的情况下,最困难的事情是在我们前进的过程中了解什么是有趣的,制定出最有效的顺序,因为我们看到我们拥有的一切的有效性。我想把联想记忆的运作与引导记忆联系起来,只要有至少一个链接(联想),分布的区域就会存在,链接越多,区域就越有可能不被释放,从而确保其使用和后续的效用。因此,有必要不断补充协会的库存,以巩固你所读的东西。
P.S.: 如果我走得太远,请原谅。)
除法符号丢失了两次(在创建html文件时消失了?)
文中链接的指标文件是正常的。
是的,有这样一个东西。源代码中还没有错误,而文本代码由于某种原因在某些地方被搞砸了。我们会解决这个问题。
P.S.: 如果我反应过激,请原谅:)
我对循环已经感到很困难了(我将不止一次地回到这些部分),然后还有那些羊。
只是我的看法,如果考虑到一个具体的交易(几乎是突袭:))的例子,好吧,交易,那么如果读者遇到一个与他的想法相似的例子(他不知道如何实现),他就会怀着极大的兴趣考虑这个例子,并思考如何修改和定制它来实现他的想法(我想你知道我的意思)。
我有这样一个例子,我对如何为1/3的余额开立订单感兴趣。你无法想象,为了将1/3转换为美元,以便我得到手数(0.1手或3.5手),我的脑子里进行了怎样的数学运算。当我看到openbuy.mq4 的例子时,我是多么高兴,它打开了一个价值35%的可用资金的买入订单,并有一些指定的止损订单的值。我把它看了一遍又一遍,看了每一行,什么,为什么,还有哪里。我看了一下其中使用的标准函数(MathFloor, MarketInfo. ....)。