新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1803 1...179617971798179918001801180218031804180518061807180818091810...1953 新评论 Tretyakov Rostyslav 2021.12.08 17:53 #18021 Artyom Trishkin #:在你的代码中,如果一个仓位打开了,另一个仓位就不会在相反的信号下打开。也就是说,首先,当信号传来时,你需要检查是否有对立的头寸,并关闭它。但同样,这一切大大限制了改进策略的可能性。我们应该避免对订单的存在/不存在进行约束(特别是在四个方面--挂单(这是正确的)和头寸(这是错误的))。不,手头有按类型划分的订单和头寸数量是正确和必要的。但仅仅依靠没有任何命令的信号是不对的。一般来说,正确的方法是有计算订单和头寸的函数(当改变订单和头寸的数量时,有一个函数可以填充结构),开仓/平仓的函数,设置订单的函数和报警函数。另外,能够将头寸数据(开仓或平仓)与任何数值进行比较。任何战略都可以从这组数据中建立。 Artem,该策略在市场上有一个订单,直到它关闭在TP或SL。 Mihail Matkovskij 2021.12.08 19:26 #18022 MakarFX #:您的代码(一家酒吧开业,没有订单) 检查了信号 - 没有信号...等待下一棒。你重复了与上次相同的错误P.S.它是 必须在订单开启后进行 实际上我的代码是为别的东西设计的。对于一个只按开盘价交易的机器人来说。我只是把它从我这里拿出来,添加到一个守法的公民 用户的代码中,并根据评论进行修改。所有的细微差别都不可能一下子就考虑到。你只有在测试机器人的过程中才能看到它们。 但有一件事。你似乎也考虑到了一切。已收到一个信号,并且函数bSignalSell或bSignalBuy已发送指令开仓,并返回true(第一点)。第二点是还没有打开订单(该命令在终端等待轮到它)。然后,当命令 队列出现时,它被发送到服务器(这仍然是时间)。在服务器上,它被执行。或者服务器由于一些可能的原因拒绝执行(详见文档)。或者它没有到达那里(干扰、连接不良和其他网络错误)。而你的机器人认为它已经打开了一个订单,并更新了酒吧的开放时间。这很好。但该订单没有出现在未结订单列表中。因此,想象一下,你在列表中有0个订单,机器人 "认为":"没关系,我已经进入市场。结果是,在一个不成功的进场后,在一整个柱形期间有一个信号,但专家顾问没有 "看到 "它,什么也没做。这种情况可能吗?这是有可能的!所以,你的代码不是很好。你最好想得更清楚。或者让守法的公民 思考。不幸的是,我现在做不到。我正在做一个非常有趣的项目。而创建一个适当的完全工作的EA,其所有的机制只有对一个好的、可盈利的交易系统才有意义。该机器人可以简单地在策略测试器中运行,看看它是我的另一个版本还是你开发的版本。这没有任何区别。 Mihail Matkovskij 2021.12.08 20:08 #18023 законопослушный гражданин #: 我也是刚刚才注意到。 bool bSignalBuy() { if(dMA > Open[1] && dMA < Close[1]) //Open[1] и Close[1]- цены открытия и закрытия каждого бара текущего графика. return(true); return(false); } Open[1] и Close[1] 索引1。 dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); 而你的MA的指数是0!也就是说,它在整个酒吧里行走,可以超越开和关。因此,最好将MA的指数设为1。 dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 1); 然后,所有的信号将在形成的条形上被例外地采取,机器人将与交易系统完全一致,在开盘价上有信号。因此,机器人只需跟踪柱状体的开口(我已经添加了这个代码),并在新形成的柱状体上进入。它将更加可靠。而且将不需要像马卡那样因为最初错误的进入算法而被扭曲。 Tretyakov Rostyslav 2021.12.08 20:13 #18024 Mihail Matkovskij #:我也是刚刚才注意到。索引1。 而你的MA的指数是0!也就是说,它在整个酒吧里行走,可以超越开和关。因此,最好将MA的指数设为1。然后,所有的信号将在形成的条形上被例外地采取,机器人将与交易系统完全一致,在开盘价上有信号。 这是该信号的本质。 当前的MA进入前一根蜡烛的主体,根据哪根蜡烛(上升/下降)给出相同的信号。 Mihail Matkovskij 2021.12.08 20:20 #18025 MakarFX #:这是该信号的本质。当前的MA进入前一根蜡烛的主体,根据蜡烛的情况(上升/下降),它将是相同的信号。 在这种情况下,应该在较低的时间框架内用指数1画出MA。那么就不需要应用任何修改。在较高的时间框架的开盘和收盘时,在较低的时间框架上会有几个(或很多)条形。你知道为什么要发明时间框架,不是吗?如果没有,就从日本烛台的历史开始研究这个问题。简而言之,重点是简化技术分析。而随着数字时代的到来,它也简化了交易系统的离散化。 Tretyakov Rostyslav 2021.12.08 20:28 #18026 Mihail Matkovskij #:在这种情况下,应该在较低的时间框架上用指数1来衡量MA。那么,就没有必要再去扭曲了。在较高的时间框架的开盘和收盘范围内,在较低的时间框架上会有几个(或许多)条。你知道为什么要发明时间框架,不是吗?如果没有,那就从日本烛台的历史开始研究这个问题。简而言之,重点是简化技术分析。而随着数字时代的到来,它也简化了交易系统的离散化。 我不明白你为什么对我生气。这个人按照他所看到的方式来写他的策略,而这个人不是我。 我只回答了他的问题,"如何避免在同一个酒吧里出现多个开口?" 我学什么我自己知道,如果我不知道,我就问。现在我还没有向任何人提出任何要求。 Mihail Matkovskij 2021.12.08 20:40 #18027 MakarFX #:我不明白你为什么要把气撒在我身上。这个人按照他的看法写出了他的策略,这个人不是我。我只回答了他的问题:"如何避免在同一个酒吧里多次开口?"我学什么我自己知道,如果我不知道,我就问。现在我没有问任何人任何事情。 很奇怪。我正试图弄清一个问题的真相,而你却在谈论某种关系的澄清。我只就编程的问题进行交流。如果你被什么东西冒犯了,不要被冒犯。我已经写了15年的软件。你说我的代码 在你看来 不能正确工作。我不是在冒犯你,我只是想向你解释自动交易系统是如何运作的。这是个纯粹的技术性对话。而你对我说 的是某种污辱......。:) Tretyakov Rostyslav 2021.12.08 20:44 #18028 Mihail Matkovskij #:这很奇怪。我正试图弄清一个问题的真相,而你却在谈论某种关系。我只就编程的问题进行交流。如果它冒犯了你,不要被冒犯。我已经写了15年的软件。你说我的代码 在你看来 不能正确工作。我不是在冒犯你,我是想向你解释自动交易系统在现实中是如何运作的。这是个纯粹的技术性对话。而你对我说 的是某种污辱......。:) 所以我也向你解释了你的代码有什么问题(在这种情况下),而你说你需要重做EA) Tretyakov Rostyslav 2021.12.08 20:46 #18029 Mihail Matkovskij #:我已经写了15年的节目。 我有一个建议。私下给我你的电报。 Mihail Matkovskij 2021.12.08 21:02 #18030 MakarFX #: 所以我也向你解释了你的代码有什么问题(在这种情况下),而你说你需要重做EA) 在这种情况下,需要对其进行重新加工,以便不被扭曲。因为我添加的代码是为有开盘价信号的机器人设计的,正如我之前所说。我想:这很奇怪。然后我找到了原因。如果你从一开始就把它弄好,你将来就不会有任何问题。因此,你应该始终寻找原因,而不是对抗后果。 1...179617971798179918001801180218031804180518061807180818091810...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在你的代码中,如果一个仓位打开了,另一个仓位就不会在相反的信号下打开。也就是说,首先,当信号传来时,你需要检查是否有对立的头寸,并关闭它。
但同样,这一切大大限制了改进策略的可能性。
我们应该避免对订单的存在/不存在进行约束(特别是在四个方面--挂单(这是正确的)和头寸(这是错误的))。
不,手头有按类型划分的订单和头寸数量是正确和必要的。但仅仅依靠没有任何命令的信号是不对的。
一般来说,正确的方法是有计算订单和头寸的函数(当改变订单和头寸的数量时,有一个函数可以填充结构),开仓/平仓的函数,设置订单的函数和报警函数。另外,能够将头寸数据(开仓或平仓)与任何数值进行比较。
任何战略都可以从这组数据中建立。
您的代码
(一家酒吧开业,没有订单)
检查了信号 - 没有信号
...等待下一棒。
你重复了与上次相同的错误
P.S.
它是
必须在订单开启后进行实际上我的代码是为别的东西设计的。对于一个只按开盘价交易的机器人来说。我只是把它从我这里拿出来,添加到一个守法的公民 用户的代码中,并根据评论进行修改。所有的细微差别都不可能一下子就考虑到。你只有在测试机器人的过程中才能看到它们。
但有一件事。你似乎也考虑到了一切。已收到一个信号,并且函数bSignalSell或bSignalBuy已发送指令开仓,并返回true(第一点)。第二点是还没有打开订单(该命令在终端等待轮到它)。然后,当命令 队列出现时,它被发送到服务器(这仍然是时间)。在服务器上,它被执行。或者服务器由于一些可能的原因拒绝执行(详见文档)。或者它没有到达那里(干扰、连接不良和其他网络错误)。而你的机器人认为它已经打开了一个订单,并更新了酒吧的开放时间。这很好。但该订单没有出现在未结订单列表中。因此,想象一下,你在列表中有0个订单,机器人 "认为":"没关系,我已经进入市场。结果是,在一个不成功的进场后,在一整个柱形期间有一个信号,但专家顾问没有 "看到 "它,什么也没做。这种情况可能吗?这是有可能的!所以,你的代码不是很好。你最好想得更清楚。或者让守法的公民 思考。不幸的是,我现在做不到。我正在做一个非常有趣的项目。而创建一个适当的完全工作的EA,其所有的机制只有对一个好的、可盈利的交易系统才有意义。该机器人可以简单地在策略测试器中运行,看看它是我的另一个版本还是你开发的版本。这没有任何区别。
我也是刚刚才注意到。
索引1。
而你的MA的指数是0!也就是说,它在整个酒吧里行走,可以超越开和关。因此,最好将MA的指数设为1。
然后,所有的信号将在形成的条形上被例外地采取,机器人将与交易系统完全一致,在开盘价上有信号。因此,机器人只需跟踪柱状体的开口(我已经添加了这个代码),并在新形成的柱状体上进入。它将更加可靠。而且将不需要像马卡那样因为最初错误的进入算法而被扭曲。
我也是刚刚才注意到。
索引1。
而你的MA的指数是0!也就是说,它在整个酒吧里行走,可以超越开和关。因此,最好将MA的指数设为1。
然后,所有的信号将在形成的条形上被例外地采取,机器人将与交易系统完全一致,在开盘价上有信号。
这是该信号的本质。
当前的MA进入前一根蜡烛的主体,根据哪根蜡烛(上升/下降)给出相同的信号。
这是该信号的本质。
当前的MA进入前一根蜡烛的主体,根据蜡烛的情况(上升/下降),它将是相同的信号。
在这种情况下,应该在较低的时间框架内用指数1画出MA。那么就不需要应用任何修改。在较高的时间框架的开盘和收盘时,在较低的时间框架上会有几个(或很多)条形。你知道为什么要发明时间框架,不是吗?如果没有,就从日本烛台的历史开始研究这个问题。简而言之,重点是简化技术分析。而随着数字时代的到来,它也简化了交易系统的离散化。
在这种情况下,应该在较低的时间框架上用指数1来衡量MA。那么,就没有必要再去扭曲了。在较高的时间框架的开盘和收盘范围内,在较低的时间框架上会有几个(或许多)条。你知道为什么要发明时间框架,不是吗?如果没有,那就从日本烛台的历史开始研究这个问题。简而言之,重点是简化技术分析。而随着数字时代的到来,它也简化了交易系统的离散化。
我不明白你为什么对我生气。这个人按照他所看到的方式来写他的策略,而这个人不是我。
我只回答了他的问题,"如何避免在同一个酒吧里出现多个开口?"
我学什么我自己知道,如果我不知道,我就问。现在我还没有向任何人提出任何要求。
我不明白你为什么要把气撒在我身上。这个人按照他的看法写出了他的策略,这个人不是我。
我只回答了他的问题:"如何避免在同一个酒吧里多次开口?"
我学什么我自己知道,如果我不知道,我就问。现在我没有问任何人任何事情。
很奇怪。我正试图弄清一个问题的真相,而你却在谈论某种关系的澄清。我只就编程的问题进行交流。如果你被什么东西冒犯了,不要被冒犯。我已经写了15年的软件。你说我的代码 在你看来 不能正确工作。我不是在冒犯你,我只是想向你解释自动交易系统是如何运作的。这是个纯粹的技术性对话。而你对我说 的是某种污辱......。:)
这很奇怪。我正试图弄清一个问题的真相,而你却在谈论某种关系。我只就编程的问题进行交流。如果它冒犯了你,不要被冒犯。我已经写了15年的软件。你说我的代码 在你看来 不能正确工作。我不是在冒犯你,我是想向你解释自动交易系统在现实中是如何运作的。这是个纯粹的技术性对话。而你对我说 的是某种污辱......。:)
我已经写了15年的节目。
我有一个建议。私下给我你的电报。
所以我也向你解释了你的代码有什么问题(在这种情况下),而你说你需要重做EA)
在这种情况下,需要对其进行重新加工,以便不被扭曲。因为我添加的代码是为有开盘价信号的机器人设计的,正如我之前所说。我想:这很奇怪。然后我找到了原因。如果你从一开始就把它弄好,你将来就不会有任何问题。因此,你应该始终寻找原因,而不是对抗后果。