初学者的问题 MQL4 MT4 MetaTrader 4 - 页 212 1...205206207208209210211212213214215216217218219...260 新评论 Xopb 2020.08.22 11:31 #2111 Aleksei Stepanenko:做一个结构甚至更好在你开始使用这些元素之前,别忘了将它们归零。然后在需要时增加计数然后比较 现在你已经在每根新的蜡烛 上围绕着之前的10根蜡烛做了一个循环。这是不理性的。你应该始终通过记住前面数值的计算结果来摆脱不必要的循环。在你的案例中,当一个新的蜡烛 到来时,只要在条件满足时增加计数,如果条件不满足,就减去它。 并检查是否有多余的部分。你的10个元素的循环是不需要的,只需要主要的一个。 阿列克谢,试着做了,但还是不对。 不加一到计数。 for(int i=1;i<=10;i++) { count.up=0; count.dn=0; double hig10 = iMA (NULL,CP,WPER, 0, MODE_SMA, PRICE_CLOSE, i); if (hig10>iClose(Symbol(),CP,i)) { count.up++; } else { count.dn++; } } if (count.up>=8) { Comment("dsdsD"); } Aleksei Stepanenko 2020.08.22 11:39 #2112 你需要从循环中删除 count.up=0; count.dn=0; 因为在每一次迭代中,你都要把以前的值清零。把它写在循环之前。 Xopb 2020.08.22 12:00 #2113 Aleksei Stepanenko:你需要从循环中删除因为在每一次迭代中,你都要把以前的值清零。把它写在循环之前 非常感谢,现在可以工作了! 然而,这很奇怪,我在做同样的事情,没有结构,但只是用正常的值,如 for(int i=1;i<=10;i++) { double hig10 = iMA (NULL,CP,WPER, 0, MODE_SMA, PRICE_CLOSE, i); if (hig10>iClose(Symbol(),CP,i)) { J=J+1; else { J=0; } } if (J>=8) { Comment("dfdf"); 它就会开始对每一个刻度 进行加法运算)) Aleksei Stepanenko 2020.08.22 12:06 #2114 该结构也将是滴答作响。要想只在一个新的蜡烛 开始时工作,必须跟踪该蜡烛的时间 datetime LastTime; if(LastTime!=Time[0]) { LastTime=Time[0]; //Здесь ваш код } Denis Diakonov 2020.09.01 04:14 #2115 你能告诉我吗?我在单独的文件.mqh中设置了自定义函数,通过#include将它们规定下来,我在启动时按顺序调用它们,当启动到一个函数时,然后根据行动,程序需要访问另一个文件.mqh(例如,获得订单量的值),这不会发生。如果我把所有东西都写在一张纸上,它就能工作,或者如果我把计算批量的公式直接写在订单开立参数中,它就能工作。我翻阅了MQL4课程并阅读了程序文件,但没有发现任何东西。我不太明白为什么一个.mqh函数不能在计算中与另一个.mqh函数互动。或者,我们应该让程序返回到开始,如果我们面临这样的需要--它将返回结果到开始,然后用这个计算开始将回到打开一个.mqh订单的函数?这是一些垃圾...或者,也许我们应该以某种方式声明所有现有的函数,让它们一起互动?谢谢 Nauris Zukas 2020.09.05 10:55 #2116 下午好! 什么是最简单的方法来摆脱行中的年份(2020)和分钟?TimeToStr还没有其他输出格式? TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES); Vitaly Muzichenko 2020.09.05 13:04 #2117 Nauris Zukas: 下午好! 什么是最简单的方法来摆脱行中的年份(2020)和分钟?TimeToStr还没有其他输出格式? tm=(string)Hour(); Nauris Zukas 2020.09.05 16:29 #2118 Vitaly Muzichenko: 谢谢你! Artem Likhachev 2020.09.08 15:40 #2119 Denis Diakonov: 你能给我一个提示吗?我在不同的.mqh文件中设置了用户定义的函数,我通过#include来编写它们。 我在启动时调用它们,当启动到一个函数时,程序需要调用另一个.mqh文件(例如,得到一个订单量的值),但这并没有发生。如果我把所有的东西都写在一张表上,它就能工作,或者如果我把计算批量的公式直接写在开单参数中,它就能工作。我翻阅了MQL4课程并阅读了程序文件,但没有发现任何东西。我不太明白为什么一个.mqh函数不能在计算中与另一个.mqh函数互动。或者,我们应该让程序返回到开始,如果我们面临这样的需要--它将返回结果到开始,然后用这个计算开始将返回到打开.mqh订单的函数?这是一些垃圾...或者,也许我们应该以某种方式声明所有现有的函数,让它们一起互动?谢谢 如果你通过内联进行了连接,那么从函数中引用函数而不是文件。当然,如果我对你的理解正确的话。 Urman Ru 2020.09.13 11:15 #2120 我试图改写别人的 "lyakish_fractals_01",以适应我的想法,我的是基于威廉姆斯的绿条。我有一个错误的想法,我有一个错误的MQL4,它不在图表上看。如果有人有线索,请帮助我,如果不花钱的话)。 附加的文件: 18wbguVOL.mq4 13 kb 1...205206207208209210211212213214215216217218219...260 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
做一个结构甚至更好
在你开始使用这些元素之前,别忘了将它们归零。
然后在需要时增加计数
然后比较
现在你已经在每根新的蜡烛 上围绕着之前的10根蜡烛做了一个循环。这是不理性的。你应该始终通过记住前面数值的计算结果来摆脱不必要的循环。在你的案例中,当一个新的蜡烛 到来时,只要在条件满足时增加计数,如果条件不满足,就减去它。 并检查是否有多余的部分。你的10个元素的循环是不需要的,只需要主要的一个。阿列克谢,试着做了,但还是不对。
不加一到计数。
你需要从循环中删除
因为在每一次迭代中,你都要把以前的值清零。把它写在循环之前。
你需要从循环中删除
因为在每一次迭代中,你都要把以前的值清零。把它写在循环之前
非常感谢,现在可以工作了!
然而,这很奇怪,我在做同样的事情,没有结构,但只是用正常的值,如
它就会开始对每一个刻度 进行加法运算))
该结构也将是滴答作响。要想只在一个新的蜡烛 开始时工作,必须跟踪该蜡烛的时间
什么是最简单的方法来摆脱行中的年份(2020)和分钟?TimeToStr还没有其他输出格式?
下午好! 什么是最简单的方法来摆脱行中的年份(2020)和分钟?TimeToStr还没有其他输出格式?
tm=(string)Hour();
谢谢你!
你能给我一个提示吗?我在不同的.mqh文件中设置了用户定义的函数,我通过#include来编写它们。 我在启动时调用它们,当启动到一个函数时,程序需要调用另一个.mqh文件(例如,得到一个订单量的值),但这并没有发生。如果我把所有的东西都写在一张表上,它就能工作,或者如果我把计算批量的公式直接写在开单参数中,它就能工作。我翻阅了MQL4课程并阅读了程序文件,但没有发现任何东西。我不太明白为什么一个.mqh函数不能在计算中与另一个.mqh函数互动。或者,我们应该让程序返回到开始,如果我们面临这样的需要--它将返回结果到开始,然后用这个计算开始将返回到打开.mqh订单的函数?这是一些垃圾...或者,也许我们应该以某种方式声明所有现有的函数,让它们一起互动?谢谢
如果你通过内联进行了连接,那么从函数中引用函数而不是文件。当然,如果我对你的理解正确的话。