错误、漏洞、问题 - 页 2820 1...281328142815281628172818281928202821282228232824282528262827...3184 新评论 Alexey Viktorov 2020.08.10 09:02 #28191 Kira27:证书让我感到困惑))))。 参考文献中说,不加倒装逗号。所以你把自己放在那里。 fxsaber 2020.08.10 09:04 #28192 一个大胡子的问题。但我不明白这个结果。 void OnStart() { Print(NormalizeDouble(1.79435, 5) == 1.79435); // false } Slava 2020.08.10 09:32 #28193 fxsaber: 大胡子的问题。但我不明白这个结果。 有人说过100次:"不要用精确的配音比较,要用ε"。包括在我们的文件中。 甚至0.3或0.7都无法与你的认知相比。接受它并克服它。或者去学习(例如在MTI)。 fxsaber 2020.08.10 09:41 #28194 Slava:有人说过100次:"不要用精确的配音比较,要用ε"。包括在我们的文件中。 当然,我知道如何进行配音比较。 甚至0.3或0.7都无法与你的认知相比。接受它并克服它。或者去学习(比如说在MTI)。 Print(NormalizeDouble(0.3, 5) == 0.3); // true Print(NormalizeDouble(0.7, 5) == 0.7); // true Print(NormalizeDouble(0.12345, 5) == 0.12345); // true 你不明白这个问题。 Rorschach 2020.08.10 09:41 #28195 十进制会使它更容易,但它很慢( Slava 2020.08.10 10:31 #28196 fxsaber:当然,我可以做一个配音的比较。你不明白这个问题。 还有其他一些微妙之处。 一个实数乘以0.5可能无法与同一数字除以2.0相比。 fxsaber 2020.08.10 10:59 #28197 Slava:还有其他一些微妙之处。一个实数乘以0.5可能不等于同一个数字除以2.0。 这倒是真的。但问题是,为什么1.79435这个数字没有被规范到小数点后5位? ZS 这个问题的背景。 测试仪中的 "SL "响了。DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0(如MT5), DEAL_COMMENT = "sl 1.79435". 我想知道我在执行SL时是否有滑落?所以我简单地比较了DEAL_PRICE和评论中的价格。用我的眼睛看,价格是一样的,但MQL显示它们是不一样的。终于找到了原始对比的底细。 关于交易、自动交易系统和策略测试的论坛 错误、漏洞、问题 fxsaber, 2020.08.10 09:04 void OnStart() { Print(NormalizeDouble(1.79435, 5) == 1.79435); // false } Alexey Viktorov 2020.08.10 11:34 #28198 fxsaber:都是真的。但问题是,为什么1.79435这个数字没有正常化到小数点后第五位?ZS问题的背景。测试仪中的SL被触发了。DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0(如MT5), DEAL_COMMENT = "sl 1.79435".我想知道我在执行SL时是否有滑落?所以我简单地比较了DEAL_PRICE和评论中的价格。用我的眼睛看,价格是一样的,但MQL显示它们是不一样的。最后到了最初的比较。 对不起,但听到你这么说有点奇怪。 fxsaber 2020.08.10 11:37 #28199 Alexey Viktorov:我很抱歉,但听到你这么说有点奇怪。 我重复我的问题。 fxsaber: 为什么1.79435这个数字没有规范化到小数点后第五位? void OnStart() { const double Norm = NormalizeDouble(1.79435, 5); Print((double)(string)Norm == Norm); // false Print((double)(string)Norm == 1.79435); // true } Igor Makanu 2020.08.10 11:38 #28200 fxsaber:都是真的。但问题是,为什么1.79435这个数字没有正常化到小数点后第五位? 正常化不是四舍五入。 @Slava 写道,double的内部表述是不同的。 #define PRINT(EX) Print(#EX," = ",EX) //+------------------------------------------------------------------+ void OnStart() { union ULONG_DOUBLE { double d_value; ulong ul_value; }tmp; double NORM_DOUBLE = NormalizeDouble(1.79435, 5); double CONST_DOUBLE = 1.79435; PRINT(NORM_DOUBLE); tmp.d_value = NORM_DOUBLE; PRINT(LongToHex(tmp.ul_value)); tmp.d_value = CONST_DOUBLE; PRINT(CONST_DOUBLE); PRINT(LongToHex(tmp.ul_value)); } //+------------------------------------------------------------------+ string LongToHex(const ulong value) { return(StringFormat("%llX", value)); } //+------------------------------------------------------------------+ 2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) NORM_DOUBLE = 1.79435 2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DDA 2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) CONST_DOUBLE = 1.79435 2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DD9 SZS:@Nikolai Semko 有一篇很好的帖子,他对double的工作描述得非常好,也许我会找到链接。 UPD:https://www.mql5.com/ru/forum/1111/page2623#comment_14473837 Errors, bugs, questions Why my stop loss VPS not working 1...281328142815281628172818281928202821282228232824282528262827...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
证书让我感到困惑))))。
参考文献中说,不加倒装逗号。所以你把自己放在那里。
大胡子的问题。但我不明白这个结果。
有人说过100次:"不要用精确的配音比较,要用ε"。包括在我们的文件中。
甚至0.3或0.7都无法与你的认知相比。接受它并克服它。或者去学习(例如在MTI)。
有人说过100次:"不要用精确的配音比较,要用ε"。包括在我们的文件中。
当然,我知道如何进行配音比较。
甚至0.3或0.7都无法与你的认知相比。接受它并克服它。或者去学习(比如说在MTI)。
你不明白这个问题。
当然,我可以做一个配音的比较。
你不明白这个问题。
还有其他一些微妙之处。
一个实数乘以0.5可能无法与同一数字除以2.0相比。
还有其他一些微妙之处。
一个实数乘以0.5可能不等于同一个数字除以2.0。
这倒是真的。但问题是,为什么1.79435这个数字没有被规范到小数点后5位?
ZS 这个问题的背景。
测试仪中的 "SL "响了。DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0(如MT5), DEAL_COMMENT = "sl 1.79435".
我想知道我在执行SL时是否有滑落?所以我简单地比较了DEAL_PRICE和评论中的价格。用我的眼睛看,价格是一样的,但MQL显示它们是不一样的。终于找到了原始对比的底细。
关于交易、自动交易系统和策略测试的论坛
错误、漏洞、问题
fxsaber, 2020.08.10 09:04
都是真的。但问题是,为什么1.79435这个数字没有正常化到小数点后第五位?
ZS问题的背景。
测试仪中的SL被触发了。DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0(如MT5), DEAL_COMMENT = "sl 1.79435".
我想知道我在执行SL时是否有滑落?所以我简单地比较了DEAL_PRICE和评论中的价格。用我的眼睛看,价格是一样的,但MQL显示它们是不一样的。最后到了最初的比较。
对不起,但听到你这么说有点奇怪。
我很抱歉,但听到你这么说有点奇怪。
我重复我的问题。
为什么1.79435这个数字没有规范化到小数点后第五位?
都是真的。但问题是,为什么1.79435这个数字没有正常化到小数点后第五位?
正常化不是四舍五入。
@Slava 写道,double的内部表述是不同的。
2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) NORM_DOUBLE = 1.79435
2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DDA
2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) CONST_DOUBLE = 1.79435
2020.08.10 13:33:37.737 tst_normalize (EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DD9
SZS:@Nikolai Semko 有一篇很好的帖子,他对double的工作描述得非常好,也许我会找到链接。
UPD:https://www.mql5.com/ru/forum/1111/page2623#comment_14473837