エラー、バグ、質問 - ページ 2823 1...281628172818281928202821282228232824282528262827282828292830...3185 新しいコメント Valeriy Yastremskiy 2020.08.10 18:53 #28221 Nikolai Semko:は、スピード漫遊編を確認することにしました。 正規化前の double の比較でも、εを使った場合と int に変換した場合では、平均してさらに 遅くなります。 その結果プロセッサの新規性やアーキテクチャに依存するものが多く、プログラマーによっては異なる結果を得る可能性があることは排除しない。 意外なことに、整数への丸め関数は整数ではなく実数を返すので、型も整数に丸めなければならない。言葉の論理はどこにあるのか? Nikolai Semko 2020.08.10 19:23 #28222 Nikolai Semko:2つの倍数を比較する演算の性能は、変数の値そのものに依存するのでしょうか?そうでしょうか。 そうみたいですね。むしろ不思議なくらいです。 上の例の行を置き換えると double test = 1.11; まで double test = NormalizeDouble(1.11,2); 2つのダブルを比較するだけで、他の選択肢よりも早く作業を開始することができます。ダブル、ダブルのどちらにも対応可能ですが。どのような違いがあるのでしょうか?しかし、結果として性能は2倍速くなったのです。まるで奇跡のようです。 2020.08.10 17:40:13.583 TestCompareDouble (USDCAD,H4) простое сравнение предварительно нормализированых double 1 - 552 микросекунд, всего совпадений = 507 2020.08.10 17:40:13.583 TestCompareDouble (USDCAD,H4) простое сравнение предварительно нормализированых double 2 - 954 микросекунд, всего совпадений = 507 2020.08.10 17:40:13.583 TestCompareDouble (USDCAD,H4) сравнение double через эпсилон - 778 микросекунд, всего совпадений = 507 2020.08.10 17:40:13.583 TestCompareDouble (USDCAD,H4) сравнение double через преобразование в int - 854 микросекунд, всего совпадений = 507 ファイル: TestCompareDouble.mq5 5 kb Nikolai Semko 2020.08.11 01:47 #28223 Alexey Navoykov:テストが正しくありません。 なぜ最後に一度だけ100000. 0で割るのですか? 反復ごとに実行し、合計すべきです。 これは公平な比較です。 しかし、これは全く正規化ではありません。あなたはテストアルゴリズムを最適化しただけ です。もちろん、より速く、より正確になります(累積誤差が減るので)。 はい、その通りです。反復毎に分割すれば、NormalizeDoubleと 同じ精度になります。しかし、それでもNormalizeDoubleを使用した場合よりも速度は高くなります。 2020.08.10 21:38:48.652 TestCompareDouble (USDCAD,H4) простая сумма - 1394 микросекунд, сумма = -3604329.1567609389312565 2020.08.10 21:38:48.652 TestCompareDouble (USDCAD,H4) сумма с NormalizeDouble - 5861 микросекунд, сумма = -3604329.1543100476264954 2020.08.10 21:38:48.652 TestCompareDouble (USDCAD,H4) сумма, нормализированная через int - 2179 микросекунд, сумма = -3604329.1543100476264954 ありがとうございます。 Valeriy Yastremskiy 2020.08.11 08:43 #28224 一般に、四捨五入して整数にした後、整数でない数値を返すのは良くないと言われています。これまでのプリンターでは、小数点以下がゼロ、末尾が1のほぼ整数や、小数点以下が9の数字を見たことがあります。バグかと思った。開発者の立場が不明確であることが判明。さて、整数に丸める場合、2進数の小数点以下の余りを取り除く必要がありますが、どうも仮数をゼロにするのは難しい/不可能なようです。正規化についてはさらに複雑で、カンマを5桁にして2進数で整数化しても、逆丸めして2進数にすると整数型と 差が出る。 悲しいかな、一見簡単そうに見える比較演算に頼らざるを得ないのです。 pythonではありません))) Alexey Navoykov 2020.08.11 16:13 #28225 Valeriy Yastremskiy:一般に、四捨五入して整数にした後、整数でない数値を返すのは良くないと言われています。これまでのプリンターでは、小数点以下がゼロ、末尾が1のほぼ整数や、小数点以下が9の数字を見たことがあります。バグかと思った。開発者の立場が不明確であることが判明。さて、整数に丸める場合、2進数の小数点以下の余りを取り除く必要がありますが、どうも仮数をゼロにするのは難しい/不可能なようです。正規化についてはさらに複雑で、カンマを5桁にして2進数で整数化しても、逆丸めして2進数にすると整数型と 差が出る。悲しいかな、一見単純に見える比較演算でも、カリカリしなければならないのです。 丸め後の式は、結果のデータに対して他の演算を含む場合があり、必ずしも整数である必要はない。そうすると、intからdoubleに変換し直さなければならず、その場でオーバーヘッドが発生します。 必要な型を返す独自の関数RoundIntやRoundLongを作成することを妨げるものはありません。 Vladimir Pastushak 2020.08.11 16:34 #28226 市販のテスターに不具合がある。 多通貨のEAを テストすると、テスターがハングアップしてしまいます。 理由:金融商品の分析中に、Expert Advisorが履歴のない金融商品につまずくか、金融商品が適切に設計されていないためです。 標準のターミナルでは29秒間ハングアップします、それは確かで、確認済みです。 マーケットにいるテスターは、テスト時間が長すぎると報告しています。 Expert Advisorは、そのような壊れた金融商品に何度も遭遇することを想定しています。 この問題は何度か、1年前にも書かれているのですが、まだ残っているんですよね...。 fxsaber 2020.08.11 16:42 #28227 Vladimir Pastushak:この問題は何度か、1年前にも書かれているのですが、まだ残っているんですよね...。 私には効きません。ソースコードを添付してください。 SEM 2020.08.11 16:53 #28228 なぜ機能が動作しないのか、コメントをお願いします。0chに切り替わらない。 ChartSetInteger(0,CHART_BRING_TO_TOP,0,true); このパターンの2回目以降の適用では、ウィンドウが複製されます ChartApplyTemplate(0,"Template.tpl"); これらの機能は、アップデート前も動作していました。 Vladimir Pastushak 2020.08.11 17:15 #28229 fxsaber:私には再生されません。ソースコードを添付してください。 Metakvotesのデモサーバでのテスト void OnStart() { int m_all_symbols = SymbolsTotal(false); string m_sym_name = ""; for(int i = 0; i < m_all_symbols; i++) { // ====================================================================== // === Получили имя символа if((m_sym_name = SymbolName(i, false)) != NULL) { // ====================================================================== // === Если символ не выбран в окне маркет ватч if(!SymbolInfoInteger(m_sym_name, SYMBOL_SELECT)) if(!SymbolSelect(m_sym_name, true)) Print(" SymbolSelect " + m_sym_name); ulong get = GetMicrosecondCount(); MqlRates rateM1[1440]; if(CopyRates(m_sym_name, PERIOD_M1, 0, 1440, rateM1) > 0) { Print(m_sym_name, " ", (GetMicrosecondCount() - get)); } else Print("Error ",m_sym_name, " ", (GetMicrosecondCount() - get)); } } } 2020.08.11 20:20:55.657 test (EURUSD,M15) MXNJPY 1998 2020.08.11 20:20:55.659 test (EURUSD,M15) NZDMXN 1979 2020.08.11 20:20:55.661 test (EURUSD,M15) USDCOP 1973 2020.08.11 20:20:55.663 test (EURUSD,M15) USDARS 2093 2020.08.11 20:20:55.665 test (EURUSD,M15) USDCLP 1929 2020.08.11 20:21:25.259 test (EURUSD,M15) Error AUS200 29593673 2020.08.11 20:21:54.837 test (EURUSD,M15) Error FCHI40 29578404 2020.08.11 20:22:24.336 test (EURUSD,M15) Error GDAXIm 29498485 2020.08.11 20:22:53.949 test (EURUSD,M15) Error HSI50 29612968 2020.08.11 20:23:23.458 test (EURUSD,M15) Error Jap225 29509059 2020.08.11 20:23:52.919 test (EURUSD,M15) Error ND100m 29461316 2020.08.11 20:24:22.425 test (EURUSD,M15) Error SP500m 29505571 2020.08.11 20:24:51.860 test (EURUSD,M15) Error SPN35 29435460 2020.08.11 20:25:21.273 test (EURUSD,M15) Error STOX50 29412578 2020.08.11 20:25:50.663 test (EURUSD,M15) Error UK100 29389644 2020.08.11 20:26:20.205 test (EURUSD,M15) Error Brent 29542597 2020.08.11 20:26:49.667 test (EURUSD,M15) Error Crude 29462066 2020.08.11 20:27:19.194 test (EURUSD,M15) Error NatGas 29526780 Errors, bugs, questions Why my stop loss VPS not working fxsaber 2020.08.11 17:31 #28230 Vladimir Pastushak:Demo Metacvots サーバーでのテスト失礼しました、今掛けています...。 このスクリプトは、私のマシンではターミナルがハングアップする原因にはなりませんでした。 1...281628172818281928202821282228232824282528262827282828292830...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
は、スピード漫遊編を確認することにしました。
正規化前の double の比較でも、εを使った場合と int に変換した場合では、平均してさらに 遅くなります。
その結果
プロセッサの新規性やアーキテクチャに依存するものが多く、プログラマーによっては異なる結果を得る可能性があることは排除しない。
2つの倍数を比較する演算の性能は、変数の値そのものに依存するのでしょうか?そうでしょうか。
そうみたいですね。むしろ不思議なくらいです。
上の例の行を置き換えると
まで
2つのダブルを比較するだけで、他の選択肢よりも早く作業を開始することができます。ダブル、ダブルのどちらにも対応可能ですが。どのような違いがあるのでしょうか?しかし、結果として性能は2倍速くなったのです。まるで奇跡のようです。
テストが正しくありません。 なぜ最後に一度だけ100000. 0で割るのですか? 反復ごとに実行し、合計すべきです。 これは公平な比較です。 しかし、これは全く正規化ではありません。あなたはテストアルゴリズムを最適化しただけ です。もちろん、より速く、より正確になります(累積誤差が減るので)。
はい、その通りです。反復毎に分割すれば、NormalizeDoubleと 同じ精度になります。しかし、それでもNormalizeDoubleを使用した場合よりも速度は高くなります。
ありがとうございます。
一般に、四捨五入して整数にした後、整数でない数値を返すのは良くないと言われています。これまでのプリンターでは、小数点以下がゼロ、末尾が1のほぼ整数や、小数点以下が9の数字を見たことがあります。バグかと思った。開発者の立場が不明確であることが判明。さて、整数に丸める場合、2進数の小数点以下の余りを取り除く必要がありますが、どうも仮数をゼロにするのは難しい/不可能なようです。正規化についてはさらに複雑で、カンマを5桁にして2進数で整数化しても、逆丸めして2進数にすると整数型と 差が出る。
悲しいかな、一見簡単そうに見える比較演算に頼らざるを得ないのです。
pythonではありません)))
一般に、四捨五入して整数にした後、整数でない数値を返すのは良くないと言われています。これまでのプリンターでは、小数点以下がゼロ、末尾が1のほぼ整数や、小数点以下が9の数字を見たことがあります。バグかと思った。開発者の立場が不明確であることが判明。さて、整数に丸める場合、2進数の小数点以下の余りを取り除く必要がありますが、どうも仮数をゼロにするのは難しい/不可能なようです。正規化についてはさらに複雑で、カンマを5桁にして2進数で整数化しても、逆丸めして2進数にすると整数型と 差が出る。
悲しいかな、一見単純に見える比較演算でも、カリカリしなければならないのです。
丸め後の式は、結果のデータに対して他の演算を含む場合があり、必ずしも整数である必要はない。そうすると、intからdoubleに変換し直さなければならず、その場でオーバーヘッドが発生します。
必要な型を返す独自の関数RoundIntやRoundLongを作成することを妨げるものはありません。
市販のテスターに不具合がある。
多通貨のEAを テストすると、テスターがハングアップしてしまいます。
理由:金融商品の分析中に、Expert Advisorが履歴のない金融商品につまずくか、金融商品が適切に設計されていないためです。
標準のターミナルでは29秒間ハングアップします、それは確かで、確認済みです。
マーケットにいるテスターは、テスト時間が長すぎると報告しています。
Expert Advisorは、そのような壊れた金融商品に何度も遭遇することを想定しています。
この問題は何度か、1年前にも書かれているのですが、まだ残っているんですよね...。
この問題は何度か、1年前にも書かれているのですが、まだ残っているんですよね...。
私には効きません。ソースコードを添付してください。
なぜ機能が動作しないのか、コメントをお願いします。0chに切り替わらない。
このパターンの2回目以降の適用では、ウィンドウが複製されます
これらの機能は、アップデート前も動作していました。
私には再生されません。ソースコードを添付してください。
Metakvotesのデモサーバでのテスト
2020.08.11 20:20:55.657 test (EURUSD,M15) MXNJPY 1998
2020.08.11 20:20:55.659 test (EURUSD,M15) NZDMXN 1979
2020.08.11 20:20:55.661 test (EURUSD,M15) USDCOP 1973
2020.08.11 20:20:55.663 test (EURUSD,M15) USDARS 2093
2020.08.11 20:20:55.665 test (EURUSD,M15) USDCLP 1929
2020.08.11 20:21:25.259 test (EURUSD,M15) Error AUS200 29593673
2020.08.11 20:21:54.837 test (EURUSD,M15) Error FCHI40 29578404
2020.08.11 20:22:24.336 test (EURUSD,M15) Error GDAXIm 29498485
2020.08.11 20:22:53.949 test (EURUSD,M15) Error HSI50 29612968
2020.08.11 20:23:23.458 test (EURUSD,M15) Error Jap225 29509059
2020.08.11 20:23:52.919 test (EURUSD,M15) Error ND100m 29461316
2020.08.11 20:24:22.425 test (EURUSD,M15) Error SP500m 29505571
2020.08.11 20:24:51.860 test (EURUSD,M15) Error SPN35 29435460
2020.08.11 20:25:21.273 test (EURUSD,M15) Error STOX50 29412578
2020.08.11 20:25:50.663 test (EURUSD,M15) Error UK100 29389644
2020.08.11 20:26:20.205 test (EURUSD,M15) Error Brent 29542597
2020.08.11 20:26:49.667 test (EURUSD,M15) Error Crude 29462066
2020.08.11 20:27:19.194 test (EURUSD,M15) Error NatGas 29526780
Demo Metacvots サーバーでのテスト
失礼しました、今掛けています...。
このスクリプトは、私のマシンではターミナルがハングアップする原因にはなりませんでした。