新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 886 1...879880881882883884885886887888889890891892893...1953 新评论 Artyom Trishkin 2019.06.12 04:27 #8851 Sergey Voytsekhovsky:是的,的确,我没有注意到这一点。它看起来更好,字母更少。 难道没有办法 把三个版本(我不知道怎么说才对) 放在一个运营商下吗?只有大括号--它们限制了条件。 Sergey Voytsekhovsky 2019.06.12 05:51 #8852 int a,b,c,d,e,f,g,j; a=10; b=5; d=3; f=4; j=1; a>b?{c=d;e=f;g=j}:{c=0;e=0;g=0}; Print("c=",c," e=",e," g=",g);我试图画一个这样的结构,而编译器向我吐出了一些难闻的东西。错在哪里? Alexey Viktorov 2019.06.12 05:59 #8853 Sergey Voytsekhovsky:UURRAA,而灵魂已经唱起。阿列克谢,非常感谢你!!!!! 这一切都成功了,我不太明白没有阵列怎么可能做到 因为其描述已被删除。所以你完全可以不在这里做额外的阵列? #property indicator_color3 clrGreen,clrRed 这就是阵列。 Alexey Viktorov 2019.06.12 06:05 #8854 Sergey Voytsekhovsky:是的,的确,我没有注意到这一点。它看起来更好,字母更少。 难道没有办法 把三个版本(我不知道怎么说才对) 放在一个运营商下吗?是的,我们可以。创建两个用户定义的函数并调用它们。 int m = 5;//0;// m = m == 0 ? f1 : f2; int f1() { return(1); } int f2() { return(2); } klok79 2019.06.12 07:19 #8855 Konstantin Nikitin:这就是我所说的。好了,我们结束了。只要他知道发生了什么事...我知道了,谢谢。 我只是感到困惑。这对我来说都是新鲜事。 Sergey Voytsekhovsky 2019.06.12 08:55 #8856 Alexey Viktorov:你可以。创建两个自定义函数并调用它们。 我对你的理解正确吗? ColorHistogram_2Colors[i]=ExtMainBuffer[i]>=50?ColorUp(i):ColorDown(i); //+------------------------------------------------------------------+ int ColorUp(int i) { ColorHistogram_2Buffer1[i]=50; ColorHistogram_2Buffer2[i]=ExtMainBuffer[i]; return(0); } int ColorDown(int i) { ColorHistogram_2Buffer1[i]=ExtMainBuffer[i]; ColorHistogram_2Buffer2[i]=50; return(1); } 我在指标中这样做了--它是有效的。 Alexey Viktorov 2019.06.12 09:08 #8857 Sergey Voytsekhovsky: 我对你的理解正确吗? 我在指标中如此规定--它是有效的。如果它起作用,它就是正确的。但我不会这样做。 首先,我不会对缓冲区进行修改。始终在其中一个地方无条件地写上50就足够了。 并在第二个缓冲区中放入大于或小于50的数值。那么在条件<=>下,应该只指定颜色。而且没有单独的功能。 Sergey Voytsekhovsky 2019.06.12 09:57 #8858 Alexey Viktorov:如果它起作用,它就是正确的。但这不是我的做法。 首先,我不会对=50的缓冲区进行花哨的改变。始终在其中一个地方无条件地写上50就足够了。 并在第二个缓冲区设置大于或小于50的值。然后在条件<=>下,你只需分配颜色。而且没有单独的功能。如果<>50的条件只定义颜色,我同意你的看法,但它也是直方图蜡烛的开始/结束。因此,我不会争论,我将尝试检查,尽管可能你是对的。 Sergey Voytsekhovsky 2019.06.12 10:09 #8859 Alexey Viktorov:如果它起作用,它就是正确的。但这不是我的做法。是的,的确,定义蜡烛开始/结束的两个DRAW_COLOR_HISTOGRAM2缓冲区中的任何一个都可以是开始或结束。现在一切都简单多了。 ColorHistogram_2Buffer1[i]=50; ColorHistogram_2Buffer2[i]=ExtMainBuffer[i]; ColorHistogram_2Colors [i]=ExtMainBuffer[i]>=50?0:1; 谢谢你的科学。 Alexandr Sokolov 2019.06.12 11:28 #8860 切换模式时如何重置 INDICATOR_MAXIMUM 和 INDICATOR_MINIMUM 值? 关键是这些值在一种模式中使用,而在另一种模式中不使用。当切换到不需要这些最大值和最小值的模式时,由于某种原因,它们被保存下来。这个问题在MQL4和MQL5中都存在。 例如,当在第一种模式下运行指标时,边界是不必要的,一切都能正常工作 第二种模式设定指标窗口的 最大和最小 边界。从第一模式切换到第二模式时,一切工作正常 但是,当从第二种模式切换到第一种模式时(第一种模式中不使用边界),这些最大值和最小值被保存,用户无法看到真实的指标值。 MQL4中的代码在附件文件中 有人遇到过这个问题吗?有没有人知道如何解决这个问题? 附加的文件: test.mq4 4 kb 1...879880881882883884885886887888889890891892893...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,的确,我没有注意到这一点。它看起来更好,字母更少。
难道没有办法 把三个版本(我不知道怎么说才对) 放在一个运营商下吗?
只有大括号--它们限制了条件。
我试图画一个这样的结构,而编译器向我吐出了一些难闻的东西。错在哪里?
UURRAA,而灵魂已经唱起。阿列克谢,非常感谢你!!!!!
这一切都成功了,我不太明白没有阵列怎么可能做到
因为其描述已被删除。所以你完全可以不在这里做额外的阵列?
这就是阵列。
是的,的确,我没有注意到这一点。它看起来更好,字母更少。
难道没有办法 把三个版本(我不知道怎么说才对) 放在一个运营商下吗?
是的,我们可以。创建两个用户定义的函数并调用它们。
这就是我所说的。好了,我们结束了。只要他知道发生了什么事...
我知道了,谢谢。
我只是感到困惑。这对我来说都是新鲜事。
你可以。创建两个自定义函数并调用它们。
我对你的理解正确吗?
我在指标中这样做了--它是有效的。
我对你的理解正确吗?
我在指标中如此规定--它是有效的。
如果它起作用,它就是正确的。但我不会这样做。
首先,我不会对缓冲区进行修改。始终在其中一个地方无条件地写上50就足够了。
并在第二个缓冲区中放入大于或小于50的数值。那么在条件<=>下,应该只指定颜色。而且没有单独的功能。
如果它起作用,它就是正确的。但这不是我的做法。
首先,我不会对=50的缓冲区进行花哨的改变。始终在其中一个地方无条件地写上50就足够了。
并在第二个缓冲区设置大于或小于50的值。然后在条件<=>下,你只需分配颜色。而且没有单独的功能。
如果<>50的条件只定义颜色,我同意你的看法,但它也是直方图蜡烛的开始/结束。因此,我不会争论,我将尝试检查,尽管可能你是对的。
如果它起作用,它就是正确的。但这不是我的做法。
是的,的确,定义蜡烛开始/结束的两个DRAW_COLOR_HISTOGRAM2缓冲区中的任何一个都可以是开始或结束。现在一切都简单多了。
谢谢你的科学。
切换模式时如何重置 INDICATOR_MAXIMUM 和 INDICATOR_MINIMUM 值?
关键是这些值在一种模式中使用,而在另一种模式中不使用。当切换到不需要这些最大值和最小值的模式时,由于某种原因,它们被保存下来。这个问题在MQL4和MQL5中都存在。
例如,当在第一种模式下运行指标时,边界是不必要的,一切都能正常工作
第二种模式设定指标窗口的 最大和最小 边界。从第一模式切换到第二模式时,一切工作正常
但是,当从第二种模式切换到第一种模式时(第一种模式中不使用边界),这些最大值和最小值被保存,用户无法看到真实的指标值。
MQL4中的代码在附件文件中
有人遇到过这个问题吗?有没有人知道如何解决这个问题?