是否有可能避免在条件中出现许多 "或"(||)造成相同的动作? - 页 7 12345678910 新评论 Boris 2013.02.12 08:13 #61 今晚我度过了一个多么富有成果的夜晚!在我睡觉的时候,有许多有趣的事情向我抛来,对此我永远感激不尽。而你的早晨也比晚上更有智慧! 快速浏览了所有建议的东西后,还是一如既往地提出了问题,但现在我只想知道是否有可能只用一个Action()来完成最后的表达,因为它的内容相当广泛。if (!A) if (!B) if (!C) if (!D) else Action(); 在我看来,它可以更快。的确,如果只有最后一个条件被执行,它并不排除检查所有的条件,或者我错了,这对我来说更好。 你怎么看? Boris 2013.02.12 08:22 #62 FAQ: 谁不喜欢 "他妈的MQL4",不如去跑步,跑步。因为不清楚他在这里做什么,尽管这个账户有很多优点和古老的特点。 请向不了解情况的人解释一下吧! Рустам 2013.02.12 08:22 #63 Meat: 一般来说,最快的选择是这样。 然而,否则 result=false 一行最好与第一行结合起来,它不会影响速度。一般来说,如果A、B、C和D包含简单的条件(运算量最小,不需要调用所有的数学函数和其他东西),那么你不会从这样的优化中获得太多的性能提升(当然,除非这个结构运行数千万次)。 但是代码重载可能会很重要。 我在一个主题中写到,一切都必须合理处理。 出于某种原因,在我看来,你的代码充满了更重要的地方,对其进行优化确实会带来巨大的性能提升。 你应该从基本算法开始。 大多数新手在每个tick都会对有关TS或未结订单的所有条件进行愚蠢的检查。但在大多数情况下,只检查边界条件就足够了,例如,当高点或低点达到某个值时,或出现新的柱状物时。 只有在这之后,你才能进行进一步的检查。 那么,除了与资源密集型的计算,你需要考虑将这些计算转移到DLL中。否则,在该死的MQL4中坐等13分钟(而你只需2-3分钟就能得到同样的结果)似乎是很不幸的:) 虽然我绝对同意第一部分的说法。 Sergey Fionin 2013.02.12 08:31 #64 icas:这样就更快了。我想到了一个故事。"在一次公司董事会会议上有两个问题。1.决定建造同步相位仪。2.决定为员工建造一个自行车停车场。关于第一个问题,讨论持续了1分钟。2日,辩论持续了2个多小时"。 是的,没错...关于自行车公园... Alexey Subbotin 2013.02.12 08:49 #65 borilunad:今晚我度过了一个多么富有成果的夜晚!在我睡觉的时候,有许多有趣的事情向我抛来,对此我永远感激不尽。而你的早晨也比晚上更有智慧! 快速浏览了所有建议的东西后,还是一如既往地提出了问题,但现在我只想知道是否有可能只用一个Action()来完成最后的表达,因为它的内容相当广泛。在我看来,它可以更快。的确,如果只有最后一个条件被执行,它并不排除检查所有的条件,或者我错了,这对我来说更好。 你怎么看?不,它不是这样的。首先,if()后面必须有东西,至少只有一个分号(即空操作符)。第二,你的其他操作员打算属于哪一个如果?如果它只指最后一个(像你写的那样),那么只有当D条件为真时,A、B和C为假时,Action才会被执行。最好是放置大括号,以便清楚地看到逻辑。 Boris 2013.02.12 08:50 #66 FAQ: 谢谢你!我暂时避免使用DLL和其他亲MCLogo的东西。 我想借此机会回答Alexey (Meat),所有的开仓 都是在一个新的条形图上进行的,虽然是在M1上,但其他的都是在每个tick上工作。我还使用了很多必要的函数(如果我每次都在启动时检查所有的东西,那么代码就会非常沉重)。甚至还有一个MathPow(),我将尝试用Mathematician建议的指数来代替它。至于其他方面,所有必要的修改和关闭的超额部分。没有它怎么行? Рустам 2013.02.12 08:59 #67 注意监测和重新计算订单。这是顾问们通常做得最多的事情。 Boris 2013.02.12 09:01 #68 alsu: 不,它不是那样工作的。首先,if()后面必须有东西,至少只有一个分号(即一个空运算符)。第二,你的 "如果 "是指属于哪一个 "如果"?如果它只指最后一个(像你写的那样),那么只有当D条件为真时,A、B和C为假时,Action才会被执行。最好是放置大括号,以便清楚地看到逻辑。 谢谢你!但我只需要一个Action();!但我不知道怎么做。你能给我一个提示吗? Boris 2013.02.12 09:34 #69 FAQ: 注意控制和命令的重新计算。这是顾问们通常做得最多的事情。 但它们是不可避免的,否则就会出现错误! Paladin80 2013.02.12 10:07 #70 在我的程序中,如果有大量的if,我就会使用这种结构,把最常给出假的条件放在第一位。if (A>B) { if (C>=10) { if (D<=5) { if(E=1) Action: } } } 而如果有必要检查大量的if-ops,那么就是这样的。if (A>B || N<M) { if (C>=10 || P<100) { if (D<=5 || R>1) { if(E=1 || S!=0) Action: } } } 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
今晚我度过了一个多么富有成果的夜晚!在我睡觉的时候,有许多有趣的事情向我抛来,对此我永远感激不尽。而你的早晨也比晚上更有智慧!
快速浏览了所有建议的东西后,还是一如既往地提出了问题,但现在我只想知道是否有可能只用一个Action()来完成最后的表达,因为它的内容相当广泛。
在我看来,它可以更快。的确,如果只有最后一个条件被执行,它并不排除检查所有的条件,或者我错了,这对我来说更好。
你怎么看?
谁不喜欢 "他妈的MQL4",不如去跑步,跑步。因为不清楚他在这里做什么,尽管这个账户有很多优点和古老的特点。
一般来说,最快的选择是这样。
然而,否则 result=false 一行最好与第一行结合起来,它不会影响速度。一般来说,如果A、B、C和D包含简单的条件(运算量最小,不需要调用所有的数学函数和其他东西),那么你不会从这样的优化中获得太多的性能提升(当然,除非这个结构运行数千万次)。 但是代码重载可能会很重要。
我在一个主题中写到,一切都必须合理处理。 出于某种原因,在我看来,你的代码充满了更重要的地方,对其进行优化确实会带来巨大的性能提升。 你应该从基本算法开始。 大多数新手在每个tick都会对有关TS或未结订单的所有条件进行愚蠢的检查。但在大多数情况下,只检查边界条件就足够了,例如,当高点或低点达到某个值时,或出现新的柱状物时。 只有在这之后,你才能进行进一步的检查。
那么,除了与资源密集型的计算,你需要考虑将这些计算转移到DLL中。否则,在该死的MQL4中坐等13分钟(而你只需2-3分钟就能得到同样的结果)似乎是很不幸的:)
虽然我绝对同意第一部分的说法。
这样就更快了。
我想到了一个故事。
"在一次公司董事会会议上有两个问题。
1.决定建造同步相位仪。
2.决定为员工建造一个自行车停车场。
关于第一个问题,讨论持续了1分钟。
2日,辩论持续了2个多小时"。
今晚我度过了一个多么富有成果的夜晚!在我睡觉的时候,有许多有趣的事情向我抛来,对此我永远感激不尽。而你的早晨也比晚上更有智慧!
快速浏览了所有建议的东西后,还是一如既往地提出了问题,但现在我只想知道是否有可能只用一个Action()来完成最后的表达,因为它的内容相当广泛。
在我看来,它可以更快。的确,如果只有最后一个条件被执行,它并不排除检查所有的条件,或者我错了,这对我来说更好。
你怎么看?
不,它不是这样的。首先,if()后面必须有东西,至少只有一个分号(即空操作符)。第二,你的其他操作员打算属于哪一个如果?如果它只指最后一个(像你写的那样),那么只有当D条件为真时,A、B和C为假时,Action才会被执行。最好是放置大括号,以便清楚地看到逻辑。
谢谢你!我暂时避免使用DLL和其他亲MCLogo的东西。
我想借此机会回答Alexey (Meat),所有的开仓 都是在一个新的条形图上进行的,虽然是在M1上,但其他的都是在每个tick上工作。我还使用了很多必要的函数(如果我每次都在启动时检查所有的东西,那么代码就会非常沉重)。甚至还有一个MathPow(),我将尝试用Mathematician建议的指数来代替它。至于其他方面,所有必要的修改和关闭的超额部分。没有它怎么行?
不,它不是那样工作的。首先,if()后面必须有东西,至少只有一个分号(即一个空运算符)。第二,你的 "如果 "是指属于哪一个 "如果"?如果它只指最后一个(像你写的那样),那么只有当D条件为真时,A、B和C为假时,Action才会被执行。最好是放置大括号,以便清楚地看到逻辑。
谢谢你!但我只需要一个Action();!但我不知道怎么做。你能给我一个提示吗?
注意控制和命令的重新计算。这是顾问们通常做得最多的事情。
在我的程序中,如果有大量的if,我就会使用这种结构,把最常给出假的条件放在第一位。
而如果有必要检查大量的if-ops,那么就是这样的。