初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 154 1...147148149150151152153154155156157158159160161...1503 新しいコメント Rorschach 2013.11.20 18:59 #1531 paladin800: つまり、1.33182を1.3318に変換する必要があるのですね。小数点以下5桁を切り捨てるか、4桁に切り上げるだけで、例えば、1.33186から1.3318、1.3319となるのでは?質問は、バグがあるかどうかです。私の例でdoubleからintに変換する場合、結果は1つ少なくなります。ご自身でご確認ください。 double max=NormalizeDouble(1.33182,4); //double max=1.3318; Alert(int(max*10000));Alertは 13318を出すべきなのに、13317を出す。intに丸めない 場合は、13318.0と正しく表示されます。 sgreen 2013.11.20 19:44 #1532 表現に違いがあれば教えてください。if(bufferclose[1]<=MaxLine(1)-m_open_bar_error*ticksize && bufferopen[1]<=MaxLine(1)-m_open_bar_error*ticksize)иif(( bufferclose[1]<=MaxLine(1)-m_open_bar_error*ticksize) && ( bufferopen[1]<=MaxLine(1)-m_open_bar_error*ticksize)) Maxim Khrolenko 2013.11.20 20:30 #1533 sgreen:表現に違いがあれば教えてください。и何かおかしいと思ったら、そうしてください。if(bufferclose[1]<= ( MaxLine(1)-m_open_bar_error*ticksize ) && bufferopen[1]<= ( MaxLine(1)-m_open_bar_error*ticksize ) ) Vladimir Gomonov 2013.11.20 20:50 #1534 Rorschach:質問は、バグがあるかどうかです。私の例でdoubleからintに変換する場合、結果は1つ少なくなります。ご自身でお確かめください。 アラートは13318を出力するはずですが、13317を出力しています。したがって、intに還元しない 場合は、正しく13318.0を出力します。 Alertはエラーを出さない。要は、正規化すると、要求された10進数のアナログに最も 近い2進数形式になりますが、多かれ少なかれ一致しないことがあります(あなたの場合)。有限の10進小数で表されるものが、有限の 2進数で表されるとは限らないからです。 表現方法 int(max*10000)は丸めずに端数を切り捨てるので(つまり MathRound() ではなく MathFloor() に似ています)、正規化した数値が 13318 と正確に等しいかもしれませんが、例えば 13317,999999999997桁数の少ない分数形式で出力する場合、正しい(期待される)結果に丸められ、また、...の分数部分が破棄される場合。ご自分の目で確かめてください。わかりやすく説明できたでしょうか。 Vladimir Gomonov 2013.11.20 20:54 #1535 pronych: シャープのパーシャルのアナログはあるのか、どうすればいいのか。のように、#include<partial_class_code.mqh> を使って定義の断片を埋め込むことができます。このように多重継承の真似事をする人もいる。:) sgreen 2013.11.20 20:55 #1536 paladin800:何か不都合があると思ったら、そうしてください。 すでに持っています。ちょっと気になったので。 Maxim Khrolenko 2013.11.21 08:17 #1537 sgreen: もうやったよ。ちょっと気になったので。 なるほど。先ほどの質問に戻ると、この比較にこそ、レコードの本質が描ける。if (A<=B && C<=D) // 1 if ((A<=B) && (C<=D)) // 2 これらのエントリーに違いはありません。同時に、if-osの中に数学的な計算を 括り付けることをお勧めします。if (A<=(B1+B2*B3) && C<=(D1-D2*D3)) Распределенные вычисления в сети MQL5 Cloud Network cloud.mql5.com Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network Rorschach 2013.11.21 09:19 #1538 MetaDriver: 警告はエラーを発生させない。ポイントは、正規化すると、数は、要求された10進数のアナログに最も近い 2進数形式に導かれるが、(あなたの場合)大小の方向では一致しないかもしれないということです。有限の10進小数で表されるものが、常に有限の2進小数で表されるとは限らないので. 式は、次のとおりです。 の場合、丸めずに小数部分を捨ててしまうので(つまり MathRound() というより MathFloor() のように見える)、正規化された数値は 13318 というより 13317.99999999997 になるかもしれません。桁数の少ない分数形式で出力する場合、正しい(期待される)結果に丸められ、また、...の分数部分が破棄される場合。ご自分の目で確かめてください。わかりやすく説明できたでしょうか。ありがとうございます、そうですか。もう一つ質問ですが、intに変換しないとやっていけない場合、どう戦えばいいのでしょうか? tungus 2013.11.21 09:36 #1539 EAをテスト する際に、ブローカーの手数料を考慮する方法を教えてください。 Aleksey 2013.11.21 11:26 #1540 Rorschach:ありがとうございます、そうですか。もう一つ質問ですが、intに転送しないとやっていけない場合、どのように対処しているのでしょうか?で、イプシロン(ε)を2つほど足します。 DBL_EPSILON 1.0+DBL_EPSILON != 1.0 の条件を満たす最小の数 Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов www.mql5.com Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов - Документация по MQL5 1...147148149150151152153154155156157158159160161...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
つまり、1.33182を1.3318に変換する必要があるのですね。小数点以下5桁を切り捨てるか、4桁に切り上げるだけで、例えば、1.33186から1.3318、1.3319となるのでは?
質問は、バグがあるかどうかです。私の例でdoubleからintに変換する場合、結果は1つ少なくなります。ご自身でご確認ください。
Alertは 13318を出すべきなのに、13317を出す。intに丸めない 場合は、13318.0と正しく表示されます。表現に違いがあれば教えてください。
и
表現に違いがあれば教えてください。
и
何かおかしいと思ったら、そうしてください。
質問は、バグがあるかどうかです。私の例でdoubleからintに変換する場合、結果は1つ少なくなります。ご自身でお確かめください。
アラートは13318を出力するはずですが、13317を出力しています。したがって、intに還元しない 場合は、正しく13318.0を出力します。は丸めずに端数を切り捨てるので(つまり MathRound() ではなく MathFloor() に似ています)、正規化した数値が 13318 と正確に等しいかもしれませんが、例えば 13317,999999999997
桁数の少ない分数形式で出力する場合、正しい(期待される)結果に丸められ、また、...の分数部分が破棄される場合。ご自分の目で確かめてください。
わかりやすく説明できたでしょうか。
シャープのパーシャルのアナログはあるのか、どうすればいいのか。
のように、#include<partial_class_code.mqh> を使って定義の断片を埋め込むことができます。
このように多重継承の真似事をする人もいる。:)
何か不都合があると思ったら、そうしてください。
もうやったよ。ちょっと気になったので。
なるほど。先ほどの質問に戻ると、この比較にこそ、レコードの本質が描ける。
これらのエントリーに違いはありません。同時に、if-osの中に数学的な計算を 括り付けることをお勧めします。
if (A<=(B1+B2*B3) && C<=(D1-D2*D3))
警告はエラーを発生させない。ポイントは、正規化すると、数は、要求された10進数のアナログに最も近い 2進数形式に導かれるが、(あなたの場合)大小の方向では一致しないかもしれないということです。有限の10進小数で表されるものが、常に有限の2進小数で表されるとは限らないので. 式は、次のとおりです。
の場合、丸めずに小数部分を捨ててしまうので(つまり MathRound() というより MathFloor() のように見える)、正規化された数値は 13318 というより 13317.99999999997 になるかもしれません。
桁数の少ない分数形式で出力する場合、正しい(期待される)結果に丸められ、また、...の分数部分が破棄される場合。ご自分の目で確かめてください。
わかりやすく説明できたでしょうか。
ありがとうございます、そうですか。
もう一つ質問ですが、intに変換しないとやっていけない場合、どう戦えばいいのでしょうか?
ありがとうございます、そうですか。
もう一つ質問ですが、intに転送しないとやっていけない場合、どのように対処しているのでしょうか?
で、イプシロン(ε)を2つほど足します。
DBL_EPSILON
1.0+DBL_EPSILON != 1.0 の条件を満たす最小の数