错误、漏洞、问题 - 页 2888 1...288128822883288428852886288728882889289028912892289328942895...3184 新评论 Artyom Trishkin 2020.10.27 07:44 #28871 Denis Diakonov:能否请你告诉我!?为什么当新的刻度出现时,服务器的时间没有更新?在EA启动的那一刻,一切都按部就班地进行,但时间过去后,当前分钟的新值却没有进入变量。也就是说,专家顾问的工作取决于变量int M = TimeMinute(TimeCurrent())中获得的数字。实际上这一行代码来自于参考文献,它不起作用。例如,我在12点启动它--服务器返回的当前时间 与变量中的时间相对应,但变量仍然停留在12点,尽管时钟上已经有15-20分钟了。 TimeMinute()在MQL5中不可用。 关于MQL4的问题应张贴在相应的MetaTrader 4分支。 如果你想要一个跨平台的解决方案,请使用MqlDateTime。 Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты www.mql5.com Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году. A100 2020.10.27 10:27 #28872 这是个可疑的警告。 void OnStart() { for ( int i = 0, j; i < 10; i = j ) //(1) Warning: possible use of uninitialized variable 'j' { j = i+1; } }但这很好。void OnStart() { for ( int i = 0, j; i < 10; ) //(2) нормально { j = i+1; i = j; } }有什么根本区别? Alexey Viktorov 2020.10.27 11:03 #28873 A100: 这是个相当可疑的警告。 但这很好。有什么根本区别? 正确的警告。变量j在第一次使用前没有被初始化,当变量i被赋值为j时。 而在第二种变体中,j变量被赋予i+1的值,只有这样i=j 在没有警告的情况下应该是这样的,但还没有经过测试... void OnStart() { for ( int i = 0, j = 0; i < 10; i = j ) { j = i+1; } } TheXpert 2020.10.27 11:08 #28874 Alexey Viktorov:正确的警告。 对于另类天赋的人来说,这些是相同的周期 Alexey Viktorov 2020.10.27 14:21 #28875 TheXpert: 对于交替天赋的人来说,这些是相同的循环。 所以呢,循环的这种特性允许使用未识别的变量? A100 2020.10.27 14:33 #28876 Alexey Viktorov:所以呢,循环的这种特性允许使用未识别的变量? 如果循环是相同的,那么编译器的行为应该是相同的,而它是不同的。这就是错误所在。你已经解释了为什么在案例(1)中有一个警告,然后解释为什么在案例(2)中没有一个?原则上有什么变化?然后,如果使用了一个未初始化的变量,为什么执行代码时最后的结果是正确的? 有这样一种科学--逻辑。如果A和B是一样的,而且A是红色的,那么B也应该是红色的,而不是绿色 的 Roman 2020.10.27 14:59 #28877 A100:如果循环是相同的,那么编译器的行为应该是相同的,而它是不同的。这就是错误所在。你解释了为什么在案例(1)中有警告,然后解释为什么在案例(2)中没有?原则上有什么变化?然后,如果使用了一个未初始化的变量,为什么执行代码时最后的结果是正确的?有这样一种科学--逻辑。如果A和B是一样的,而且A是红色,那么B也一定是红色,而不是绿色。 那里没有随机数字。那里有一个零。 MQ也修复了它 )) void OnStart() { int val; Print(val); Print(IntegerToString(val)); } A100 2020.10.27 15:08 #28878 Roman:那里没有随机数字。那里有一个零。 MQ也修复了这个问题 )) 首先你需要检查--然后是 "胡说八道"。 void OnStart() { for ( int i = 0, j; i < 10; i++ ) { Print( j ); break; } } 结果:-2052256859 Roman 2020.10.27 15:16 #28879 A100:你需要先检查--然后再 "胡说八道"。结果:-2052256859 void OnStart() { for ( int i = 0, j; i < 10; i++ ) { Print( j ); } } 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 2020.10.27 17:14:46.623 TestScript (NZDUSD,M1) 0 也许是因为我在VirtualBox上安装了测试终端 另外,编译器并没有警告说变量没有被初始化。 但它是这样警告的 void OnStart() { for ( int i = 0, j; i < 10; i++ ) { Print( IntegerToString(j) ); } } A100 2020.10.27 15:26 #28880 Roman: 可能是因为我在VirtualBox上安装了测试终端 你有一个随机数字0,我有540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 2020.10.27 17:24:25.244 0011 (EURUSD,H4) 540016640 但它们仍然是随机数字。 1...288128822883288428852886288728882889289028912892289328942895...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
能否请你告诉我!?
为什么当新的刻度出现时,服务器的时间没有更新?
在EA启动的那一刻,一切都按部就班地进行,但时间过去后,当前分钟的新值却没有进入变量。
也就是说,专家顾问的工作取决于变量int M = TimeMinute(TimeCurrent())中获得的数字。
实际上这一行代码来自于参考文献,它不起作用。
例如,我在12点启动它--服务器返回的当前时间 与变量中的时间相对应,但变量仍然停留在12点,尽管时钟上已经有15-20分钟了。
TimeMinute()在MQL5中不可用。
关于MQL4的问题应张贴在相应的MetaTrader 4分支。
如果你想要一个跨平台的解决方案,请使用MqlDateTime。
但这很好。
有什么根本区别?
这是个相当可疑的警告。
但这很好。
有什么根本区别?
正确的警告。变量j在第一次使用前没有被初始化,当变量i被赋值为j时。
而在第二种变体中,j变量被赋予i+1的值,只有这样i=j
在没有警告的情况下应该是这样的,但还没有经过测试...
正确的警告。
对于交替天赋的人来说,这些是相同的循环。
所以呢,循环的这种特性允许使用未识别的变量?
所以呢,循环的这种特性允许使用未识别的变量?
如果循环是相同的,那么编译器的行为应该是相同的,而它是不同的。这就是错误所在。你已经解释了为什么在案例(1)中有一个警告,然后解释为什么在案例(2)中没有一个?原则上有什么变化?然后,如果使用了一个未初始化的变量,为什么执行代码时最后的结果是正确的?
有这样一种科学--逻辑。如果A和B是一样的,而且A是红色的,那么B也应该是红色的,而不是绿色 的
如果循环是相同的,那么编译器的行为应该是相同的,而它是不同的。这就是错误所在。你解释了为什么在案例(1)中有警告,然后解释为什么在案例(2)中没有?原则上有什么变化?然后,如果使用了一个未初始化的变量,为什么执行代码时最后的结果是正确的?
有这样一种科学--逻辑。如果A和B是一样的,而且A是红色,那么B也一定是红色,而不是绿色。
那里没有随机数字。那里有一个零。
MQ也修复了它 ))
那里没有随机数字。那里有一个零。
MQ也修复了这个问题 ))
首先你需要检查--然后是 "胡说八道"。
结果:-2052256859
你需要先检查--然后再 "胡说八道"。
结果:-2052256859
也许是因为我在VirtualBox上安装了测试终端
另外,编译器并没有警告说变量没有被初始化。
但它是这样警告的
可能是因为我在VirtualBox上安装了测试终端
你有一个随机数字0,我有540016640
但它们仍然是随机数字。