错误、漏洞、问题 - 页 1409 1...140214031404140514061407140814091410141114121413141414151416...3184 新评论 Renat Fatkhullin 2015.10.20 19:54 #14081 Alexey Navoykov:关于宣布新造1200。当长的 time_msc 和datetimetime 一起被添加到结构中时,这样的解决方案就显得非常硬朗了。 问题是为什么需要时间 呢? 这是一种毫无意义的资源浪费。u int标志也是如此,而ugar 就足够了,或者至少是ushort(为未来做了大量的储备)。 为什么需要uint 呢,这一点令人费解。可悲的是,开发者完全没有考虑到合理的数据存储。 一个数组的ticks本身就是一个巨大的尺寸。 而在这里,内存被如此不经意地挥霍掉了......总之,说到时间。也许现在是时候在MQL中引入一个包含毫秒的正常时间类型了,否则我们就只有这些拐杖了。更重要的是,目前形式的日期时间 本身是一个非常不合理的东西:它消耗了8个字节,但只包含了秒--谁需要它呢? 4个字节(uint)就足以完成未来90年的任务(而且Duncan McLeod不在我们中间)。这个解决方案保留了与使用秒级时间或SymbolInfoTick() 的旧程序的兼容性。相信我们的经验,"让我们在一两个字节内完成它 "的游戏会导致未来出现巨大的问题。只有当你为未来10年编写软件时,你才会理解它。以秒为单位的4个字节的数据时间将在2038年结束(还有22年),而不是90年。 Yousufkhodja Sultonov 2015.10.20 20:15 #14082 TM=30M 在这里是什么意思? 交易终端:MetaTrader 4.0。 交易工具:任何(主要外汇货币对,最好是最小点差)。 TM=30M。 交易杠杆:从1:100 和更高。 账户类型:微型、迷你或标准账户。 最小初始手数=0.01。 最低存款:300美元/分起(最低手数为0.01)。 Alexey Navoykov 2015.10.20 21:29 #14083 Renat Fatkhullin:根据我们的经验,"让我们把它变成一个或两个字节 "的游戏会导致未来出现可怕的问题。只有当你提前10年编写软件时,你才会意识到这一点。所以,这不是一个让它在限制范围内的问题。 当然,我们应该为未来留下一些空间,但要在合理的 范围内。 例如,在我们讨论的案例中,flags 字段只存储了其他六个字段的信息。如果你把它做成ushort 类型,你就会有10个字段的余地。 你还能加到多远呢?例如,如果你打算保存一个完整的玻璃杯,32位是不够的。 为什么不把它一次变成64位呢? 虽然,很明显,对于一个玻璃杯,你需要非常不同的结构。当然,我明白多出的2个字节意义不大,但事实证明,这里2个字节,那里2个字节...而这一切加起来是非常多的。4个以秒为单位的日期时间字节在2038年(又是22年)结束,而不是在90年。 你弄糊涂了,我们说的是uint,它允许你存储136年,即到2106年。 看起来你在开发MQL5时最初犯了这个错误。 Renat Fatkhullin 2015.10.20 22:04 #14084 我告诉你--你将遭受不可延伸的经济结构,开始从几十年的角度考虑,长期支持的必要性,一切都会变得清晰。在2038年,大量的软件将出现溢出的大问题,这将导致对旧代码的疯狂重写。而溢出将在垫子操作和三角洲上更早地被发现。我从事编程25年了,我知道我在说什么。我这辈子都在写性价比高的程序。看看我们的终端 - 它们是真正的杰作,在小尺寸的单一exe文件中包含了大量的功能。在一台干净的电脑上运行一个赤裸裸的终端.exe,看看会发生什么。但现在情况发生了变化--要么你在写64位代码时几乎处处留有余地,要么就远离未来。这对我们来说特别重要,因为我们发布的不是封闭的盒子,而是有兼容性要求的开发平台。几年后我们会自责,因为我们会发现自己再次投资不足。而周围都是基本设备有几十G的电脑。 Vladimir Karputov 2015.10.21 02:02 #14085 Yousufkhodja Sultonov:TM=30M 在这里是什么意思? 交易终端:MetaTrader 4.0。 交易工具:任何(主要外汇货币对,最好是最小点差)。 TM=30M。 杠杆:从1:100 到更高。 账户类型:微型账户、迷你账户或标准账户。 最小起始手数=0.01。 最低存款:300美元/美分起(最低手数为0.01)。"TM=30M" - 时间框架30分钟(图表周期30分钟)。 Alexey Navoykov 2015.10.21 04:22 #14086 Renat Fatkhullin: 在2038年,如果使用4字节的数据时间,大多数软件都会有很大的溢出问题,这将导致对旧代码的疯狂重写。而溢出将在垫子操作和三角洲上更早地被发现。你是说MQL4代码吗?(其中日期时间最初是基于int的)。然后,当然,另一个与兼容性问题有关的谈话。 但我最初是在谈论理性。 所以,在这种情况下,理性受到了影响。然而,无论如何,我想你会同意,需要一种新的含有毫秒的时间类型,它不应该从1970年开始,而是更早,例如从1900年开始。交易所已经存在了很长一段时间了。 Andrey Dik 2015.10.21 04:44 #14087 Alexey Navoykov:...然而,无论如何,我想你会同意,需要一种新的时间类型,一种包含毫秒的时间。 而且它不应该从1970年开始,而是更早,例如1900年。我们现在不只是在谈论外汇,但交易所已经存在了很长一段时间了。 唯一的问题是,在沙皇戈罗克时期,使用计算机并不时髦,而虱子的历史也没有为后人保留下来......。 Alexey Navoykov 2015.10.21 04:46 #14088 Joo Zepper: 唯一的问题是,在沙皇戈罗克时期,使用计算机并不时髦,而虱子的历史也没有为后人保留下来......。 这不一定是虱子的问题。 例如,日用 蜡烛已经被保存下来。 Andrey Dik 2015.10.21 04:52 #14089 Alexey Navoykov: 这不一定是关于点数的问题。例如,当天的 蜡烛仍然是完整的。我很不好意思地问,为什么你需要1900......年的每日蜡烛图的价格?要做技术分析?为了测试顾问们对历史的看法? Alexey Navoykov 2015.10.21 04:57 #14090 Renat Fatkhullin:对于x64版本的MetaTrader 5终端,执行速度将从2到10倍增加。其结果是非常值得的。尽管我们仍然会在编译速度上下功夫。你最近吹嘘说MQL的速度接近于C++。 现在事实证明,你将比C++多出几倍? ))如果你设法在一些特别准备的测试中得到这个速度,并不意味着你在其他情况下也能得到这个速度。 同时,在所有情况下,编译速度都在减慢。 1...140214031404140514061407140814091410141114121413141414151416...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
关于宣布新造1200。
当长的 time_msc 和datetimetime 一起被添加到结构中时,这样的解决方案就显得非常硬朗了。 问题是为什么需要时间 呢? 这是一种毫无意义的资源浪费。
u int标志也是如此,而ugar 就足够了,或者至少是ushort(为未来做了大量的储备)。 为什么需要uint 呢,这一点令人费解。可悲的是,开发者完全没有考虑到合理的数据存储。 一个数组的ticks本身就是一个巨大的尺寸。 而在这里,内存被如此不经意地挥霍掉了......
总之,说到时间。也许现在是时候在MQL中引入一个包含毫秒的正常时间类型了,否则我们就只有这些拐杖了。更重要的是,目前形式的日期时间 本身是一个非常不合理的东西:它消耗了8个字节,但只包含了秒--谁需要它呢? 4个字节(uint)就足以完成未来90年的任务(而且Duncan McLeod不在我们中间)。
这个解决方案保留了与使用秒级时间或SymbolInfoTick() 的旧程序的兼容性。
相信我们的经验,"让我们在一两个字节内完成它 "的游戏会导致未来出现巨大的问题。只有当你为未来10年编写软件时,你才会理解它。
以秒为单位的4个字节的数据时间将在2038年结束(还有22年),而不是90年。
TM=30M 在这里是什么意思?
根据我们的经验,"让我们把它变成一个或两个字节 "的游戏会导致未来出现可怕的问题。只有当你提前10年编写软件时,你才会意识到这一点。
所以,这不是一个让它在限制范围内的问题。 当然,我们应该为未来留下一些空间,但要在合理的 范围内。 例如,在我们讨论的案例中,flags 字段只存储了其他六个字段的信息。如果你把它做成ushort 类型,你就会有10个字段的余地。 你还能加到多远呢?
例如,如果你打算保存一个完整的玻璃杯,32位是不够的。 为什么不把它一次变成64位呢? 虽然,很明显,对于一个玻璃杯,你需要非常不同的结构。
当然,我明白多出的2个字节意义不大,但事实证明,这里2个字节,那里2个字节...而这一切加起来是非常多的。
4个以秒为单位的日期时间字节在2038年(又是22年)结束,而不是在90年。
我告诉你--你将遭受不可延伸的经济结构,开始从几十年的角度考虑,长期支持的必要性,一切都会变得清晰。
在2038年,大量的软件将出现溢出的大问题,这将导致对旧代码的疯狂重写。而溢出将在垫子操作和三角洲上更早地被发现。
我从事编程25年了,我知道我在说什么。我这辈子都在写性价比高的程序。看看我们的终端 - 它们是真正的杰作,在小尺寸的单一exe文件中包含了大量的功能。在一台干净的电脑上运行一个赤裸裸的终端.exe,看看会发生什么。
但现在情况发生了变化--要么你在写64位代码时几乎处处留有余地,要么就远离未来。这对我们来说特别重要,因为我们发布的不是封闭的盒子,而是有兼容性要求的开发平台。
几年后我们会自责,因为我们会发现自己再次投资不足。而周围都是基本设备有几十G的电脑。
TM=30M 在这里是什么意思?
在2038年,如果使用4字节的数据时间,大多数软件都会有很大的溢出问题,这将导致对旧代码的疯狂重写。而溢出将在垫子操作和三角洲上更早地被发现。
你是说MQL4代码吗?(其中日期时间最初是基于int的)。然后,当然,另一个与兼容性问题有关的谈话。 但我最初是在谈论理性。 所以,在这种情况下,理性受到了影响。
然而,无论如何,我想你会同意,需要一种新的含有毫秒的时间类型,它不应该从1970年开始,而是更早,例如从1900年开始。交易所已经存在了很长一段时间了。
...
然而,无论如何,我想你会同意,需要一种新的时间类型,一种包含毫秒的时间。 而且它不应该从1970年开始,而是更早,例如1900年。我们现在不只是在谈论外汇,但交易所已经存在了很长一段时间了。
唯一的问题是,在沙皇戈罗克时期,使用计算机并不时髦,而虱子的历史也没有为后人保留下来......。
这不一定是关于点数的问题。例如,当天的 蜡烛仍然是完整的。
我很不好意思地问,为什么你需要1900......年的每日蜡烛图的价格?要做技术分析?为了测试顾问们对历史的看法?
对于x64版本的MetaTrader 5终端,执行速度将从2到10倍增加。
其结果是非常值得的。尽管我们仍然会在编译速度上下功夫。
你最近吹嘘说MQL的速度接近于C++。 现在事实证明,你将比C++多出几倍? ))
如果你设法在一些特别准备的测试中得到这个速度,并不意味着你在其他情况下也能得到这个速度。 同时,在所有情况下,编译速度都在减慢。