Double vs FLOAT - 不明确的MathFloor错误 - 页 5 1234567 新评论 Taras Slobodyanik 2017.02.26 17:54 #41 如果被四舍五入的数字 是尾数,则四舍五入可能是不正确的,在这种情况下,必须在四舍五入之前进行归一化,以达到所需的精度。 Vladislav Andruschenko 2017.02.26 17:55 #42 Taras Slobodyanik: 如果要四舍五入的数字 是尾数,四舍五入可能会出错,在这种情况下,你应该在四舍五入前归一到正确的精度。我相信正常化是必要的,谁能说我没有做过呢 :-) 当然,数据是有尾巴的,所以Mathfloor是 "走错了路"。 Taras Slobodyanik 2017.02.26 17:57 #43 Vladislav Andruschenko: 我相信正常化是必要的,谁能说我没有做过呢 :-) 当然,数据是有尾巴的,所以Mathfloor是 "走错了路"。你的代码在四舍五入前没有进行归一化处理)它到处都有,但在最后你把一个 未被规范的数字四舍五入。 Vladislav Andruschenko 2017.02.26 17:58 #44 Taras Slobodyanik:你在四舍五入之前没有归一化)到处都有,但最后你是在四舍五入一个 未被规范的数字。我尝试了数百种代码的变体,我把其中一种变体扔在这里,但事实证明,问题不在四舍五入--而是在打印和注释的数据输出中。 fxsaber 2017.02.26 18:19 #45 Vladislav Andruschenko: 很明显,正常化是必要的。 归一化是一个昂贵的操作,在这个任务中根本不需要NormalizeDouble 和MathFloor。 Taras Slobodyanik 2017.02.26 18:24 #46 fxsaber: 归一化是一个昂贵的操作,对于这个任务,根本不需要NormalizeDouble和MathFloor。我认为应该在《手册》中加入对MathFloor 和MathCeil的建议--"建议在进行四舍五入之前对数值进行标准化处理"。ps.我自己也遇到过一次这个功能。 Vladislav Andruschenko 2017.02.26 18:28 #47 Taras Slobodyanik:我认为应该在《手册》中加入对MathFloor和MathCeil的建议--"建议在四舍五入前对数值进行标准化处理"。ps.我自己曾经遇到过这个功能。我很久以前就偶然发现了它。但即使是归一化,也不会得到你所期望的结果。 fxsaber 2017.02.26 18:43 #48 那么,为什么没有归一化和MathFloor就能成功呢? 关于交易、自动交易系统和策略测试的论坛 Double vs FLOAT - 不明确的MathFloor错误 fxsaber, 2017.02.26 08:53 #define ALPHA 0.1int DoubleToInt( const double Num ){ return((int)(Num + ALPHA));}void OnStart(){ double NewPrice = DoubleToInt((Ask + Bid) / (2 * Point)) * Point; Print(NewPrice);} Double vs FLOAT - mql5语言的特点、微妙之处以及技巧 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Vladislav Andruschenko 2017.02.26 18:44 #49 fxsaber: 那么,为什么没有归一化和MathFloor就能成功呢? 它是否符合这样的要求:如果价差是奇数,那么价格应该更接近于买入价? 毕竟,我用MathFloor 正是为了这个目的。 fxsaber 2017.02.26 18:44 #50 Vladislav Andruschenko: 它是否符合这样的要求:如果价差是奇数,那么价格必须更接近于买入价? 是的。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果要四舍五入的数字 是尾数,四舍五入可能会出错,在这种情况下,你应该在四舍五入前归一到正确的精度。
我相信正常化是必要的,谁能说我没有做过呢 :-)
当然,数据是有尾巴的,所以Mathfloor是 "走错了路"。
我相信正常化是必要的,谁能说我没有做过呢 :-)
当然,数据是有尾巴的,所以Mathfloor是 "走错了路"。
你的代码在四舍五入前没有进行归一化处理)
它到处都有,但在最后你把一个 未被规范的数字四舍五入。
你在四舍五入之前没有归一化)
到处都有,但最后你是在四舍五入一个 未被规范的数字。
我尝试了数百种代码的变体,我把其中一种变体扔在这里,但事实证明,问题不在四舍五入--而是在打印和注释的数据输出中。
很明显,正常化是必要的。
归一化是一个昂贵的操作,对于这个任务,根本不需要NormalizeDouble和MathFloor。
我认为应该在《手册》中加入对MathFloor 和MathCeil的建议--"建议在进行四舍五入之前对数值进行标准化处理"。
ps.我自己也遇到过一次这个功能。
我认为应该在《手册》中加入对MathFloor和MathCeil的建议--"建议在四舍五入前对数值进行标准化处理"。
ps.我自己曾经遇到过这个功能。
我很久以前就偶然发现了它。
但即使是归一化,也不会得到你所期望的结果。
关于交易、自动交易系统和策略测试的论坛
Double vs FLOAT - 不明确的MathFloor错误
fxsaber, 2017.02.26 08:53
int DoubleToInt( const double Num )
{
return((int)(Num + ALPHA));
}
void OnStart()
{
double NewPrice = DoubleToInt((Ask + Bid) / (2 * Point)) * Point;
Print(NewPrice);
}
那么,为什么没有归一化和MathFloor就能成功呢?
毕竟,我用MathFloor 正是为了这个目的。
它是否符合这样的要求:如果价差是奇数,那么价格必须更接近于买入价?