错误、漏洞、问题 - 页 3131 1...312431253126312731283129313031313132313331343135313631373138...3184 新评论 JRandomTrader 2021.12.28 16:50 #31301 x572intraday #:我只能立即回答&=。 MQL5参考指南 / 语言基础知识 / 操作和表达式 / 赋值操作: 与累积变量y相类似。但这是我第一次使用&=的经验,所以我可能是错的。 首先,所有的逻辑条件都在for 内部的h_plus中累加,得到的bool-sum被插入if 中,与内部for 无关。 但仍然是,更正确的做法不是h_plus&=high[i]>high[i+increment];,而是h_plus = h_plus && high[i]>high[i+increment]; Alexey Viktorov 2021.12.28 16:59 #31302 Alexey Viktorov #:在你的案例中,情况并非如此,因为两个条件都必须满足。但如果你把这个 那么,是的。如果条件 "a "得到满足,第二个条件将不被检查。这已经争取了多年,而现在你建议我们回到上个世纪...... 虽然......我的这种说法是错误的。显然,我不太明白这里写的是什么。 x572intraday#: 我不敢说这是个错误。这就是为什么我将简单地说,我注意到if 运算符的一个特殊性。我怀疑这可能与其他书面语言也有关。如果a变成了真的,检查就会跳到Array[over_index],在这里终端开始崩溃,通过'数组超出范围'的部分,这是很真实的。但是如果a变成了假的,终端就不会检查Array[over_index]条件,因此也就不会检查索引冗余,如果 会进一步跳过,而编码者就不会知道在他的程序中存在一个索引不存在的数组......或者说是一个现有的但多余的。也许应该有一个修复方法,以便对"数组超出范围" 的检查会进行到if 循环的最后,并输出相同的信息?或者它将大大降低操作者的速度? 即使&&条件和第一个条件没有 得到满足,第二个条件也不会被检查。所以,如果我误导了任何人,请原谅我...... JRandomTrader 2021.12.28 19:46 #31303 x572intraday #:我已经试过了断裂 和匆忙返回,但这只会让事情变得更糟。我会试着再简化一下代码,并重新考虑它的突破... for(int i=start; i<rates_total-n && !IsStopped(); i++) { for(int increment=1, bool h_plus=true ; h_plus && increment<=n ; increment++) h_plus = high[i]>high[i+increment]; // можно не накапливать, вылетим из цикла на первом false if(h_plus) {...} ... } 像这样。 Andrey Dik 2021.12.28 19:48 #31304 当通过沿时间线移动鼠标来缩放图表时,图表会根据鼠标的方向向左或向右运行,因此,任何在用户视线焦点中的东西往往只是消失在图表的边界之外。这是很不方便的,因为这样你就必须寻找正确的地方,从我熟悉MT以来就一直是这样。 按理说,点击放大镜图标可能会将图表的比例重新调整到中心,但是没有,其行为与鼠标缩放相同--图表向左移动(压缩)或向右移动(扩展)。 亲爱的开发者们!我们恳请您改变图表的缩放行为,有必要将图表的中心留在中心位置。 每个和我讨论过这种用图表工作的不便的人都同意我的看法,所以我有很好的机会客观地看待这个问题。 14年来一直试图适应它--无法做到。 x572intraday 2021.12.28 19:57 #31305 JRandomTrader #:for(int i=start; i<rates_total-n && !IsStopped(); i++) { for(int increment=1, bool h_plus=true ; h_plus && increment<=n ; increment++) h_plus = high[i]>high[i+increment]; // можно не накапливать, вылетим из цикла на первом false if(h_plus) {...} ... }那是类似的东西。 新鲜的想法,我可以试一试。 至于前一个选项。 for(int i=start; i<rates_total-3 && !IsStopped(); i++) { bool h_plus=true; //false? for(int increment=1; increment<=n; increment++) { h_plus&=high[i]>high[i+increment]; if(!h_plus)break; } if(h_plus) {...} ... } 甚至没有尝试,就已经很清楚了 if(!h_plus)break; 是在求和之后,这意味着终端会先看到前一行,并且会理解有一个索引过大的数组,并且会给出同样的'数组超出范围'信息。这是第二件事。首先,我们不应该检查!h_plus,而应该检查ArraySize(high)<=i+increment,并在索引被超过的情况下逃离循环。我昨天尝试了这一切,但在一些细微之处失败了。是的,没有消息,但指标也开始乱了。 JRandomTrader 2021.12.28 20:02 #31306 x572intraday #:至于前一个选项。甚至没有尝试,就已经很清楚了是在求和之后,这意味着终端会先看到前一行,并且会理解有一个索引过大的数组,并且会给出同样的'数组超出范围'信息。这是第二件事。首先,我们不应该检查!h_plus,而应该检查ArraySize(high)<=i+increment,并在索引被超过的情况下逃离循环。我昨天尝试了这一切,但在一些细微之处失败了。是的,信使走了,但指标也开始乱了。因此,这里的麻烦是i<rates_total-3 我写i<rates_total-n,是有原因的,提前踢出循环正是为了模拟if()的计算方式 Mihail Matkovskij 2021.12.28 23:56 #31307 x572intraday #:我不敢说这是个错误。所以我只想说,我注意到if 语句的一个特殊性。我怀疑这可能也适用于其他语言。如果a为真,检查跳到Array[over_index],这里终端开始崩溃,通过'数组超出范围'的部分,这是非常真实的。但是如果a变成了假的,终端就不会检查Array[over_index]的条件,因此也不会检查索引的冗余,如果 会进一步跳过,编码者就不会知道在他的程序中有一个不存在索引的数组......或者说是一个现有的但多余的。也许应该有一个修复方法,以便对"数组超出范围" 的检查会进行到if 循环的最后,并输出相同的信息? 或者它将大大降低操作者的速度? 如果你把变量a设置为false,控制权就会被传递,并不影响数组或if后面括号里的代码,因为在你的例子中 if(a && Array[over_index]>val) {...} 只有当左部分(a)为真时,控制才会被传递到条件的右部分。 比如说,如果你做 if(check(over_index) && Array[over_index]>val) {...} 在check函数检查数组的地方,你永远不会 得到 "数组超出范围"。 所以,你可以在一个if中检查数组索引并处理它。 但是,如果第一部分是假的,用&&操作符将控制权传递到if的第二部分,在现有的任何编程语言中都是不可能的... Yury Lemeshev 2021.12.31 08:57 #31308 有一个问题,它是随机和偶尔出现的。 当在测试器中用几种货币工作时出现了这种情况。 在每个周期中,我要求提供符号的实际价格。如果由于某种原因,测试者没有收到某个特定符号的报价,它就会使用先前获得的另一个符号的报价。 如果价格高于指定价格,我应该开仓。如果我从另一个符号得到错误的数据,我应该开仓。 如果价格高于1.45117,则欧元兑加元符号打开。1.74425>1.45117? 是的,它更高,但它是另一个符号的价格。 我们在500个订单中发现了7个错误的订单。 Alexey Viktorov 2021.12.31 09:02 #31309 Yury Lemeshev #:有一个问题,它是随机和偶尔出现的。在测试器中使用几种货币时出现。在每个周期中,我要求提供符号的实际价格。如果由于某种原因,测试者没有收到某个特定符号的报价,它就会使用先前获得的另一个符号的报价。如果价格高于指定价格,我应该开仓。我在使用另一个符号的错误数据进行开盘。欧元兑美元的符号,如果价格在1.45117以上,那么它就会打开。1.74425>1.45117? 是的,它更高,但它是另一个符号的价格。我们在500个订单中发现了7个错误的订单。 问题出在代码中,但心灵感应者已经在庆祝了,当他们从睡眠中醒来时,他们会说错误在第123652行中 Yury Lemeshev 2021.12.31 09:09 #31310 Alexey Viktorov #:代码中有问题,但心灵感应者已经在庆祝了,当他们从狂欢中出来时,他们会说,错误在第123652行 代码中没有错误,代码被重写以消除错误,而且错误没有定期出现,完全是混乱的。 1...312431253126312731283129313031313132313331343135313631373138...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我只能立即回答&=。
MQL5参考指南 / 语言基础知识 / 操作和表达式 / 赋值操作:与累积变量y相类似。
但这是我第一次使用&=的经验,所以我可能是错的。
首先,所有的逻辑条件都在for 内部的h_plus中累加,得到的bool-sum被插入if 中,与内部for 无关。在你的案例中,情况并非如此,因为两个条件都必须满足。但如果你把这个
那么,是的。如果条件 "a "得到满足,第二个条件将不被检查。这已经争取了多年,而现在你建议我们回到上个世纪......虽然......我的这种说法是错误的。显然,我不太明白这里写的是什么。
我不敢说这是个错误。这就是为什么我将简单地说,我注意到if 运算符的一个特殊性。我怀疑这可能与其他书面语言也有关。
如果a变成了真的,检查就会跳到Array[over_index],在这里终端开始崩溃,通过'数组超出范围'的部分,这是很真实的。但是如果a变成了假的,终端就不会检查Array[over_index]条件,因此也就不会检查索引冗余,如果 会进一步跳过,而编码者就不会知道在他的程序中存在一个索引不存在的数组......或者说是一个现有的但多余的。
也许应该有一个修复方法,以便对"数组超出范围" 的检查会进行到if 循环的最后,并输出相同的信息?或者它将大大降低操作者的速度?
即使&&条件和第一个条件没有 得到满足,第二个条件也不会被检查。所以,如果我误导了任何人,请原谅我......
我已经试过了断裂 和匆忙返回,但这只会让事情变得更糟。我会试着再简化一下代码,并重新考虑它的突破...
像这样。
当通过沿时间线移动鼠标来缩放图表时,图表会根据鼠标的方向向左或向右运行,因此,任何在用户视线焦点中的东西往往只是消失在图表的边界之外。这是很不方便的,因为这样你就必须寻找正确的地方,从我熟悉MT以来就一直是这样。
按理说,点击放大镜图标可能会将图表的比例重新调整到中心,但是没有,其行为与鼠标缩放相同--图表向左移动(压缩)或向右移动(扩展)。
亲爱的开发者们!我们恳请您改变图表的缩放行为,有必要将图表的中心留在中心位置。
每个和我讨论过这种用图表工作的不便的人都同意我的看法,所以我有很好的机会客观地看待这个问题。
14年来一直试图适应它--无法做到。
那是类似的东西。
新鲜的想法,我可以试一试。
至于前一个选项。
甚至没有尝试,就已经很清楚了
是在求和之后,这意味着终端会先看到前一行,并且会理解有一个索引过大的数组,并且会给出同样的'数组超出范围'信息。这是第二件事。首先,我们不应该检查!h_plus,而应该检查ArraySize(high)<=i+increment,并在索引被超过的情况下逃离循环。我昨天尝试了这一切,但在一些细微之处失败了。是的,没有消息,但指标也开始乱了。
至于前一个选项。
甚至没有尝试,就已经很清楚了
是在求和之后,这意味着终端会先看到前一行,并且会理解有一个索引过大的数组,并且会给出同样的'数组超出范围'信息。这是第二件事。首先,我们不应该检查!h_plus,而应该检查ArraySize(high)<=i+increment,并在索引被超过的情况下逃离循环。我昨天尝试了这一切,但在一些细微之处失败了。是的,信使走了,但指标也开始乱了。
因此,这里的麻烦是
i<rates_total-3
我写 ,是有原因的,提前踢出循环正是为了模拟if()的计算方式我不敢说这是个错误。所以我只想说,我注意到if 语句的一个特殊性。我怀疑这可能也适用于其他语言。
如果a为真,检查跳到Array[over_index],这里终端开始崩溃,通过'数组超出范围'的部分,这是非常真实的。但是如果a变成了假的,终端就不会检查Array[over_index]的条件,因此也不会检查索引的冗余,如果 会进一步跳过,编码者就不会知道在他的程序中有一个不存在索引的数组......或者说是一个现有的但多余的。
也许应该有一个修复方法,以便对"数组超出范围" 的检查会进行到if 循环的最后,并输出相同的信息? 或者它将大大降低操作者的速度?
如果你把变量a设置为false,控制权就会被传递,并不影响数组或if后面括号里的代码,因为在你的例子中
if(a && Array[over_index]>val) {...}
只有当左部分(a)为真时,控制才会被传递到条件的右部分。
比如说,如果你做
if(check(over_index) && Array[over_index]>val) {...}
在check函数检查数组的地方,你永远不会 得到 "数组超出范围"。 所以,你可以在一个if中检查数组索引并处理它。 但是,如果第一部分是假的,用&&操作符将控制权传递到if的第二部分,在现有的任何编程语言中都是不可能的...
有一个问题,它是随机和偶尔出现的。
当在测试器中用几种货币工作时出现了这种情况。
在每个周期中,我要求提供符号的实际价格。如果由于某种原因,测试者没有收到某个特定符号的报价,它就会使用先前获得的另一个符号的报价。
如果价格高于指定价格,我应该开仓。如果我从另一个符号得到错误的数据,我应该开仓。
如果价格高于1.45117,则欧元兑加元符号打开。1.74425>1.45117? 是的,它更高,但它是另一个符号的价格。
我们在500个订单中发现了7个错误的订单。
有一个问题,它是随机和偶尔出现的。
在测试器中使用几种货币时出现。
在每个周期中,我要求提供符号的实际价格。如果由于某种原因,测试者没有收到某个特定符号的报价,它就会使用先前获得的另一个符号的报价。
如果价格高于指定价格,我应该开仓。我在使用另一个符号的错误数据进行开盘。
欧元兑美元的符号,如果价格在1.45117以上,那么它就会打开。1.74425>1.45117? 是的,它更高,但它是另一个符号的价格。
我们在500个订单中发现了7个错误的订单。
问题出在代码中,但心灵感应者已经在庆祝了,当他们从睡眠中醒来时,他们会说错误在第123652行中
代码中有问题,但心灵感应者已经在庆祝了,当他们从狂欢中出来时,他们会说,错误在第123652行
代码中没有错误,代码被重写以消除错误,而且错误没有定期出现,完全是混乱的。