NormalizeDoubleのパラドックス - ページ 10

 
barabashkakvn:
すべては徐々にやってくる。まず、文章は大文字で書くものであること、また、詩を切り刻むようなスタイルは決して掲示板にはふさわしくないことを忘れてはいけません。そうすれば、ゼロから正規化、インデックス作成で解決します。

このコメントを待ってました ))))

 

いちぎょうちゅう

1から数えるのと同じように自然なことです。

丸めれば、同じように丸められた数字に なります。

さあ、あなたの形式主義に満ちた皮肉なコメントの流れはどこに行ったの?

人生とは、適切に配置されたドットやカンマ、バイナリ形式以上のものです。

それは気持ちの流れであり、美しいはずなのです。

それは、自由と創造性です。

これに対するあなたの答えは?

 
transcendreamer:

みんなバカにしてるんでしょ?

端数をゴミなしで入力する必要がありました。

そして、あなたは私が間違っていることを証明しています。

mqlはそれ自体が目的ではなく、ツールなのです。

例えば、-変数に数値を入れたら、入れた通りにプリントアウトする-など、当たり前のことがあると思うのですが...。

内部でどのように配置され、どのように番号が保存されているかは関係なく、システムレベルの話です。

そして、これらのテールがナンセンスであり、アプリケーションレベルの欠陥であることは明らかである。

しかし、ここでもまた、「これはバグではなく、機能だ」というプログラマージョークが飛び出す。

これらのジョークは、何もせずに現れたわけではありません )))))))))

NormalizeDouble()は、計算されたパラメータを取引注文の価格として送信する際に必要です。AskとBidの価格は、すでに必要な桁数に正規化されているため、正規化せずに送信することができます。Bid-stopLoss*Pointなどの価格を計算する場合、この式は正規化が必要です。保留中の注文の価格も同様で、事前に計算するため、正規化する必要があります。

2つの実数を比較する場合、その正規化された差をゼロまたは最小値で比較する必要があります。

計算した内容を確認したいときは、DoubleToString() を使って、必要な精度で計算します。IntegerToString() に必要なパラメータを指定します。

これは理解し、学ぶべきことです。

 
transcendreamer:

いちぎょうちゅう

1から数えるのと同じように自然なことです。

丸めれば、同じように丸められた数字に なります。

さあ、あなたの形式主義に満ちた皮肉なコメントの流れはどこに行ったの?

人生とは、適切に配置されたドットやカンマ、バイナリ形式以上のものです。

それは感覚の流れであり、美しいものであるはずです。

それは、自由と創造性です。

どうなんだ

自由...そして、誰かが無理やり引き止めている?

クリエイティビティ ...を作成し、すべてのMK機能に対して自分用のラッパーを書き、その美しさを楽しんでください。

 
artmedia70:

NormalizeDouble()は、計算されたパラメータを取引注文の価格として送信する際に必要です。AskとBidの価格は、すでに必要な桁数に正規化されているため、正規化せずに送信することができます。Bid-stopLoss*Pointなどの価格を計算する場合、この式は正規化が必要です。保留中の注文の価格も同様で、事前に計算するため、正規化する必要があります。

2つの実数を比較する場合、その正規化された差をゼロまたは最小値で比較する必要があります。

計算した内容を確認したいときは、DoubleToString() を使って、必要な精度で計算します。IntegerToString()に必要なパラメータを指定します。

これは理解し、同化したほうがいい。

はい、よくわかりました!見積書が5桁の数字だと、1.234567という注文は送れませんよね。

2倍速の比較について..................参照したことがあるんですが、ひどいもんです。

しかし、私が理解する限り、AとBが顕著に異なる限り、A>Bの比較は安全です。

ただ、例えばA=1.23456とB=1.23456を明示的に設定してif(A==B)が偽を出したら、これはもう犯罪だと判明したら

 
artmedia70:

NormalizeDouble()は、計算されたパラメータを取引注文の価格として送信する際に必要です。AskとBidの価格は、すでに必要な桁数に正規化されているため、正規化せずに送信することができます。Bid-stopLoss*Pointなどの価格を計算する場合、この式は正規化が必要です。保留中の注文の価格も同様で、事前に計算するため、正規化する必要があります。

2つの実数を比較する場合、その正規化された差をゼロまたは最小値で比較する必要があります。

計算した内容を確認したいときは、DoubleToString() を使って、必要な精度で計算します。IntegerToString()に必要なパラメータを指定します。

これは理解し、学ぶべきことです。

print and alert is crooked - I've already understood it
 

気になるのは、分数を計算して正規化し、変数に書き込み、再度読み込んで正規化すると、tailsが発生することです

たとえば

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);

そして、尻尾はないようです、ふぅ、ふぅ、ふぅ、ふぅ...。

 

より正確には、オリジナル版では(文字列)電流でした。

つまり、正規化された数値の 左尾の変換

こともある

 

例えば、一方の数値が定数で、もう一方が割り算や掛け算で計算された場合、2つの倍数を比較する問題が発生します。

 

とにかく絶望的な人道主義者に時間を浪費してくれてありがとう。もし誰かに迷惑をかけていたら、何度もごめんなさい。悪意なく思ったことを言っただけです。

そんな中、朗報です。