归一化的双重悖论 - 页 10

 
barabashkakvn:
每件事都是慢慢来的。首先你要记住,句子是用大写字母写的,而且斩钉截铁的诗句风格绝不适合于论坛。然后,它将通过规范化和索引从头开始自己解决。

我一直在等待这个评论 )))))

 

没有什么比在聊天室里快速打字更自然的了--一行字

这就像从1开始计数一样自然。

四舍五入 的方式得到一个数字 的四舍五入。

来吧,你那充满形式主义的讽刺性评论流在哪里?

生活不仅仅是适当间隔的点、逗号和二进制格式。

它是感觉的流动,它应该是美丽的。

它是自由和创造力。

你的答案是什么?

 
transcendreamer:

你们都在取笑我,对吗?

我只是需要输入一个没有垃圾的小数。

而你证明了我的错误。

mql本身不是目的,它是一种工具。

我认为有一些显而易见的事情,比如--如果你把一个数字放进一个变量,你在放进去的时候就把它打印出来......

内部如何安排或数字如何存储并不重要,这是系统层面的问题。

而且很明显,这些尾巴是无稽之谈,是应用层面的缺陷--不友好的

但在这里我们又得到了一些程序员的笑话:"这不是一个错误,这是一个特点"。

这些笑话不是白出现的,不是白出现的 ))))))))

在交易订单中发送计算参数作为价格时,需要NormalizeDouble()。你可以不经归一化而发送卖价和买价,因为它们已经被归一化到所需的数字容量。如果你计算价格,例如计算Bid-stopLoss*Point,那么这个表达式需要归一化。挂单的价格也是一样的:你事先计算好了,所以必须进行归一化处理。

当你比较两个实数时,你需要将它们的归一化差值与零或与最小值进行比较。

当你想看到你所计算的结果时,请使用DoubleToString(),以你想要的精度。在IntegerToString()中加入你想要的参数。

这是你应该了解和学习的东西。

 
transcendreamer:

没有什么比在聊天室里快速打字更自然的了--一行字

这就像从1开始计数一样自然。

四舍五入 的方式得到一个数字 的四舍五入。

来吧,你那充满形式主义的讽刺性评论流在哪里?

生活不仅仅是适当间隔的点、逗号和二进制格式。

它是感觉的流动,它应该是美丽的。

它是自由和创造力。

你怎么说呢?

自由...而有人强行拖你后腿?

创造力...创建,为自己编写所有MK函数的包装器,并享受其美妙。

 
artmedia70:

在交易订单中发送计算参数作为价格时,需要NormalizeDouble()。你可以不经归一化而发送卖价和买价,因为它们已经被归一化为所需的数字容量。如果你计算价格,例如计算Bid-stopLoss*Point,那么这个表达式需要归一化。挂单的价格也是一样的:你事先计算好了,所以必须进行归一化处理。

当你比较两个实数时,你需要将它们的归一化差值与零或与最小值进行比较。

当你想看到你所计算的结果时,请使用DoubleToString(),以你想要的精度。用你需要的参数将IntegerToString()。

这是你最好理解和吸收的东西。

是的,我非常理解,如果报价是5位数,你就不能发送1.234567的订单。

关于比较双数,我见过的参考资料是:.....,这很糟糕。

但据我所知,只要A和B有明显的不同,比较A>B是安全的。

只有当事实证明,例如,如果我明确设置A=1.23456和B=1.23456,并且if(A==B)给出错误,那么这就已经是一种犯罪。

 
artmedia70:

在交易订单中发送计算参数作为价格时,需要NormalizeDouble()。你可以不经归一化而发送卖价和买价,因为它们已经被归一化为所需的数字容量。如果你计算价格,例如计算Bid-stopLoss*Point,那么这个表达式需要归一化。挂单的价格也是一样的:你事先计算好了,所以必须进行归一化处理。

当你比较两个实数时,你需要将它们的归一化差值与零或与最小值进行比较。

当你想看到你所计算的结果时,请使用DoubleToString(),以你想要的精度。用你需要的参数将IntegerToString()。

这是你应该了解和学习的东西。

打印和提醒是歪的 - 我已经明白了
 

困扰我的是,当我计算一个小数,将其归一化,写进一个变量,然后再次读取并归一化时,我得到的是尾数

比如说

basis[0]=NormalizeDouble(sum_A,2);

GlobalVariableSet("Equity-"+portfolio_id,basis[0]); 

...

current=NormalizeDouble(GlobalVariableGet("Equity-"+portfolio_id),2);

text = "Positions synchronized at " + current + " for portfolio: " + portfolio_name;

if(!automatic) MessageBox(text,""); else Print(text);

现在我已经把它改成

text = "Positions synchronized at " + DoubleToStr(current,2) + " for portfolio: " + portfolio_name;

if(!automatic) MessageBox(text,""); else Print(text);

而且似乎没有任何尾巴,呜,呜,呜......。

 

更准确地说,在最初的版本中,它是(字符串)电流

即转换一个归一化数字 的左尾数

有时

 

如果一个数字是常数,而另一个是通过除/乘法计算出来的,就会出现比较两个双数的问题。

 

无论如何,再次感谢你把时间浪费在一个无望的人道主义者身上,如果我惹恼了谁,再次抱歉,我只是在说我的想法,没有恶意。

在此期间有一个好消息。