错误、漏洞、问题 - 页 744 1...737738739740741742743744745746747748749750751...3184 新评论 --- 2012.05.27 19:39 #7431 IgorM: 是的,我知道,我引用了不会导致执行错误的代码,但循环了脚本最后一个印刷品是否没有输出?还是倒数第二?而最后的指数 调用并没有冻结?算法达到什么线?你把指纹放在所有地方吗? Igor Makanu 2012.05.27 19:47 #7432 sergeev: 最后一个Print 没有被输出吗?是的,它不是。2012.05.27 23:44:15 34 (EURUSD,M15) Abnormal termination 2012.05.27 23:44:14 34 (EURUSD,M15) out[0][1071644672][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][5][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][4][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][3][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][2][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][1][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][0][7] = 0.02401042497265053 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][6][7] = 0.6115035058049522 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][5][7] = 0.6315711056280579 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][4][7] = 0.2054980719299829 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][3][7] = 0.5596305561874292 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][2][7] = 0.3623413658485376 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][1][7] = 0.8933844140595046 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][0][7] = 0.9005057454076223 2012.05.27 23:44:14 34 (EURUSD,M15) out[0][1071644672][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][5][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][4][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][3][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][2][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][1][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][0][7] = 0.02401042497265053 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][6][7] = 0.6115035058049522 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][5][7] = 0.6315711056280579 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][4][7] = 0.2054980719299829 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][3][7] = 0.5596305561874292 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][2][7] = 0.3623413658485376 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][1][7] = 0.8933844140595046 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][0][7] = 0.9005057454076223 2012.05.27 23:44:14 34 (EURUSD,M15) out[0][1071644672][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][5][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][4][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][3][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][2][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][1][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][0][7] = 0.02401042497265053 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][6][7] = 0.6115035058049522 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][5][7] = 0.6315711056280579 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][4][7] = 0.2054980719299829 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][3][7] = 0.5596305561874292 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][2][7] = 0.3623413658485376 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][1][7] = 0.8933844140595046 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][0][7] = 0.9005057454076223 2012.05.27 23:44:14 34 (EURUSD,M15) out[0][1071644672][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][5][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][4][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][3][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][2][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][1][7] = 0.5 2012.05.27 23:44:14 34 (EURUSD,M15) out[2][0][7] = 0.02401042497265053 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][6][7] = 0.6115035058049522 2012.05.27 23:44:14 34 (EURUSD,M15) out[1][5][7] = 0.6315711056280579 2012.05.27 23:44:10 34 (EURUSD,M15) out[1][3][7] = 0.5596305561874292 2012.05.27 23:44:10 34 (EURUSD,M15) out[1][2][7] = 0.3623413658485376 2012.05.27 23:44:10 34 (EURUSD,M15) out[1][1][7] = 0.8933844140595046 2012.05.27 23:44:10 34 (EURUSD,M15) out[1][0][7] = 0.9005057454076223 2012.05.27 23:44:10 34 (EURUSD,M15) out[0][1071644672][7] = 0.5 2012.05.27 23:44:10 34 (EURUSD,M15) out[2][5][7] = 0.5 2012.05.27 23:44:10 34 (EURUSD,M15) out[2][4][7] = 0.5 2012.05.27 23:44:10 34 (EURUSD,M15) out[2][3][7] = 0.5 2012.05.27 23:44:10 34 (EURUSD,M15) out[2][2][7] = 0.5 2012.05.27 23:44:09 34 (EURUSD,M15) out[0][1071644672][7] = 0.5 2012.05.27 23:44:09 34 (EURUSD,M15) out[2][5][7] = 0.5 2012.05.27 23:44:09 34 (EURUSD,M15) out[2][4][7] = 0.5 2012.05.27 23:44:09 34 (EURUSD,M15) out[2][3][7] = 0.5 --- 2012.05.27 19:50 #7433 IgorM:是的,它不是。重复问题--你有2/3/8的指数计算吗?而且它看起来很奇怪。1071644672 它是从哪里来的? Igor Makanu 2012.05.27 19:57 #7434 sergeev: 我重复我的问题--你有2/3/8的指数计算吗?是这样做的。int i1,i2,i3; double out[3][7][7]; for(i1=0;i1<7;i1++) out[0][0][i1] = inp[i1]; double sum; sum = 0.0; for(i3=0;i3<3;i3++){ for(i2=0;i2<7;i2++){ for(i1=1;i1<7;i1++) sum += W[i3][i2][i1] * out[i3][i2][i1-1]; if(i3==2 && i2==3 && i1==8) Print("неправильный вызов exp!!!!"); out[i3][i2][i1] = f(sum + WT[i3][i2]); sum = 0.0; Print("out[",i3,"][",i2,"][",i1,"] = ",out[i3][i2][i1]); } } Print("sum = ",sum);在日志中。2012.05.27 23:55:30 34 (EURUSD,M15) array out of range in '34.mq5' (180,7)If commented out:// if(i3==2 && i2==3 && i1==8)Print("incorrect exp!!!! call"); 又会出现一个无限循环:) Valerii Mazurenko 2012.05.27 20:38 #7435 IgorM:如果是空白的。// if(i3==2 &&i2==3 &&i1==8) Print("错误的exp!!!!调用")。 这将是一个无限的循环:)循环结束后i1等于7,尽管第三维的最大索引是6。它应该是超出范围的,但如果不是的话,很可能是字符串out[i3][i2][i1] = f(sum + WT[i3][i2]);可能会覆盖i2的值,比如说。但在这种情况下,它是mql-compiler的一个错误。例如,你可以将数组定义移到全局变量 中--那么上述代码的行为就应该改变。 Документация по MQL5: Основы языка / Переменные / Глобальные переменные www.mql5.com Основы языка / Переменные / Глобальные переменные - Документация по MQL5 --- 2012.05.27 21:27 #7436 IgorM: 它将再次成为一个无尽的循环:) 我认为错误是在打印机本身。找出它前面几行的内容,因为最后一个 指数不应该被执行,指数超过了我认为问题出在你的代码中。 Документация по MQL5: Математические функции / MathExp www.mql5.com Математические функции / MathExp - Документация по MQL5 Igor Makanu 2012.05.27 21:33 #7437 sergeev: 我认为问题出在你的代码中。 我把它附在后面,脚本进入了一个无限的循环,就像这样 附加的文件: 34.mq5 7 kb Vladimir Gomonov 2012.05.28 02:37 #7438 sergeev: 而且它看起来也很奇怪。1071644672 从哪里来的? 我想,如果我们把这个数字改写成二进制格式,我们可以更接近于一个线索。 Valerii Mazurenko 2012.05.28 06:02 #7439 IgorM: 我把它附在后面,在这种形式下,脚本会进入一个无限循环。我有零度德维德,无论是否有印刷品,在double f(double x){return(1/(1+MathExp(-1*x)));} 一般来说,i1取错了值。虽然它应该在out[][][7]上超出范围。编译器必须考虑基于所有维度的乘法的限制(3*7*7=147),而不是每一个维度。例如,如果i1被分配为8,Print 仍然会打印 一些数值。很明显,这是在检查数组边界时的编译器错误。 Slava 2012.05.28 06:07 #7440 notused: 显然,编译器计算的是所有维度的乘法所得的约束(3 * 7 * 7 = 147),而不是每一个维度。例如,如果i1被分配为8,Print仍然会产生一些值。很明显,这是在检查数组边界时的编译器错误。超出范围不是来自编译器。这是一个运行时错误。运行时系统愚蠢地计算了偏移量,如果在计算中涉及到不正确的索引,就不会发生什么,但你没有超出数组的限制。但是,如果你以一种聪明的方式检查索引,每一个都单独检查,你会在执行时得到具体的滞后。 Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения www.mql5.com Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения - Документация по MQL5 1...737738739740741742743744745746747748749750751...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,我知道,我引用了不会导致执行错误的代码,但循环了脚本
最后一个印刷品是否没有输出?
还是倒数第二?
而最后的指数 调用并没有冻结?
算法达到什么线?
你把指纹放在所有地方吗?
是的,它不是。
是的,它不是。
重复问题--你有2/3/8的指数计算吗?
而且它看起来很奇怪。
1071644672
它是从哪里来的?是这样做的。
在日志中。
If commented out:// if(i3==2 && i2==3 && i1==8)Print("incorrect exp!!!! call");
又会出现一个无限循环:)
如果是空白的。// if(i3==2 &&i2==3 &&i1==8) Print("错误的exp!!!!调用")。
这将是一个无限的循环:)
循环结束后i1等于7,尽管第三维的最大索引是6。它应该是超出范围的,但如果不是的话,很可能是字符串
可能会覆盖i2的值,比如说。但在这种情况下,它是mql-compiler的一个错误。
例如,你可以将数组定义移到全局变量 中--那么上述代码的行为就应该改变。
它将再次成为一个无尽的循环:)
我认为错误是在打印机本身。
找出它前面几行的内容,因为最后一个 指数不应该被执行,指数超过了
我认为问题出在你的代码中。
而且它看起来也很奇怪。
1071644672
从哪里来的?我把它附在后面,在这种形式下,脚本会进入一个无限循环。
我有零度德维德,无论是否有印刷品,在
一般来说,i1取错了值。虽然它应该在out[][][7]上超出范围。编译器必须考虑基于所有维度的乘法的限制(3*7*7=147),而不是每一个维度。例如,如果i1被分配为8,Print 仍然会打印 一些数值。很明显,这是在检查数组边界时的编译器错误。显然,编译器计算的是所有维度的乘法所得的约束(3 * 7 * 7 = 147),而不是每一个维度。例如,如果i1被分配为8,Print仍然会产生一些值。很明显,这是在检查数组边界时的编译器错误。
超出范围不是来自编译器。这是一个运行时错误。
运行时系统愚蠢地计算了偏移量,如果在计算中涉及到不正确的索引,就不会发生什么,但你没有超出数组的限制。但是,如果你以一种聪明的方式检查索引,每一个都单独检查,你会在执行时得到具体的滞后。