价格!=价格? - 页 3 12345678 新评论 Simon Gniadkowski 2013.03.30 12:31 #21 WHRoeder: 大量的计算,而不是简单的解决方案 简单与否是由它需要实现的代码决定的。 GreenMoney 2013.03.30 16:13 #22 RaptorUK:我找到了这个解决方案,它将双数变成了整数,以便于比较双数。. . 我也想出了一个创造性的解决方案,对我来说(到目前为止)比较价格很有效。int ConvertToPoints (double _price) { double price_double = _price / Point; int price_int = MathRound(price_double); return (price_int); }我把价格提高到一个int,表示价格是以整数表示的点数。 因此。ConvertToPoints(price) != ConvertToPoints(price)不可能是真的。 Ex Ovo Omnia 2013.04.03 06:18 #23 来自stdlib.mq4的CompareDoubles() 是否被取消了这个讨论的资格?如果用于价格,它对我来说效果很好。 Simon Gniadkowski 2013.04.03 06:34 #24 Ovo: 来自stdlib.mq4的CompareDoubles() 是否被取消了这个讨论的资格?如果用于价格,它对我来说很有效。 不合格吗?不合格,但它所做的只是比较是否相等。 William Roeder 2013.04.03 12:04 #25 Thirteen:ConvertToPoints(price) != ConvertToPoints(price)一个浮动的除法,浮动的加法,转换为int,函数调用(复制,跳转,返回=3,)*2都乘以2。(18) 而这是在假设除法和转换与其他操作相同的情况下--它们不是。与if (MathAbs(a - b) > Point / 2.)一个减法,一个测试,1/2的否定(平均而言)和比较。(如果point/2是在init中完成的,并且ABS被IF所取代,则为3 1/2)不要把事情搞得太复杂由于四舍五入,可能会在相等时触发if (a > b)a肯定比b大if (a - b > Point / 2.)由于四舍五入,当a小于b时可能会触发if (a >= b)a肯定>=bif (a - b > -Point/2.) if (a > b -Point/2.) if (a +Point/2. > b) 任何舍入错误都会触发if (a != b)绝对不等于if (MathAbs(a - b) > Point / 2.) Simon Gniadkowski 2013.04.03 14:48 #26 WHRoeder:一个浮动除法,浮动加法,转换为int,函数调用(复制,跳转,返回=3,)*2都乘以2。(18) 而这是在假设除法和转换与其他操作相当的情况下--它们不是。与一个减法,一个测试,1/2的否定(平均而言)和比较。(3 1/2,如果point/2是在init中完成的,并且ABS被IF所取代)不要把事情搞得太复杂 2013.04.03 17:39:12 TestSpeed-CompareDbls USDJPY,M5: MathAbs(a - b) 9000000 times in 266 ms. 2013.04.03 17:39:11 TestSpeed-CompareDbls USDJPY,M5: ConvertToPoints 9000000 times in 1887 ms.2013.04.03 17:46:02 TestSpeed-CompareDbls USDJPY,M5: Flat(price) 9000000 times in 3604 ms."MathAbs(a-b) "方法比ConvertToPoints()方法快约7倍,比我的 "Flat() "方法快近14倍 Can price != price PREDICT time period FOREX - Trends, Forecasts Alain Verleyen 2013.04.04 08:07 #27 对于信息,使用MQL5,你可以重载标准运算符,这允许 实现 非常 优雅的解决方案。 RFB 2013.04.04 10:41 #28 我测试了(intRecord > price / point),结果是 intCheck = price /point; if (intRecord > intCheck) continue; 2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint在3403毫秒中出现9999999次。2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999次,共2505 ms。2013.04.04 14:27:40 TestSpeed-CompareDbls EURUSD,H4: intRecord > price /point 99999999次,共1712 ms。但是第3个不可能,第2个(intRecord > intCheck)在比较前的intCheck中多了一个任务。 Can price != price New MetaTrader 4 Client PREDICT time period Simon Gniadkowski 2013.04.04 10:46 #29 rfb: 我测试了(intRecord > price / point),结果是2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint在3403毫秒中出现9999999次。2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999次,共2505 ms。2013.04.04 14:27:40 TestSpeed-CompareDbls EURUSD,H4: intRecord > price /point 99999999次,共1712 ms。但是第3个不可能,第2个(intRecord > intCheck)在比较前的intCheck中多了一个任务。 什么是intRecord ? RFB 2013.04.04 11:18 #30 与 "int intCheck "相同,但在函数 前赋值,像其他变量一样。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大量的计算,而不是简单的解决方案
我找到了这个解决方案,它将双数变成了整数,以便于比较双数。. .
我也想出了一个创造性的解决方案,对我来说(到目前为止)比较价格很有效。
我把价格提高到一个int,表示价格是以整数表示的点数。 因此。
不可能是真的。
来自stdlib.mq4的CompareDoubles() 是否被取消了这个讨论的资格?如果用于价格,它对我来说很有效。
一个浮动的除法,浮动的加法,转换为int,函数调用(复制,跳转,返回=3,)*2都乘以2。(18) 而这是在假设除法和转换与其他操作相同的情况下--它们不是。
与
一个减法,一个测试,1/2的否定(平均而言)和比较。(如果point/2是在init中完成的,并且ABS被IF所取代,则为3 1/2)
不要把事情搞得太复杂
if (a > b)
if (a >= b)
if (a != b)
一个浮动除法,浮动加法,转换为int,函数调用(复制,跳转,返回=3,)*2都乘以2。(18) 而这是在假设除法和转换与其他操作相当的情况下--它们不是。
与
一个减法,一个测试,1/2的否定(平均而言)和比较。(3 1/2,如果point/2是在init中完成的,并且ABS被IF所取代)
不要把事情搞得太复杂
2013.04.03 17:39:11 TestSpeed-CompareDbls USDJPY,M5: ConvertToPoints 9000000 times in 1887 ms.
2013.04.03 17:46:02 TestSpeed-CompareDbls USDJPY,M5: Flat(price) 9000000 times in 3604 ms.
"MathAbs(a-b) "方法比ConvertToPoints()方法快约7倍,比我的 "Flat() "方法快近14倍
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint在3403毫秒中出现9999999次。
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999次,共2505 ms。
但是第3个不可能,第2个(intRecord > intCheck)在比较前的intCheck中多了一个任务。
我测试了(intRecord > price / point),结果是
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint在3403毫秒中出现9999999次。
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999次,共2505 ms。
但是第3个不可能,第2个(intRecord > intCheck)在比较前的intCheck中多了一个任务。