MT5ターミナルが本日アップデートされ、テスト中に「最適化」ウィンドウが表示されなくなりました。 - ページ 5

 
Texnolog:

なぜ、古き良きアルゴリズムを壊して、3倍も遅い新しいアルゴリズムに置き換えるのか?

遺伝的テスターのアルゴリズムに変更はありません。また、3回に関する発言は全く根拠のないものです。

過去の実績のキャッシュの作業方法を変更しました。そして、前作よりも格段に良くなり、完成度も高くなりました。

遺伝的手法に新しいアプローチを導入する必要がある場合、「最適化」タブに新しい項目を追加してください。

説明文や作業用のテクニックを作成する。

上記のリンクは、すべて当サイトの記事です。遺伝的最適化装置は、長年にわたって即座に議論されてきました。

検索で「ストラテジーテスター」「ジェネティックオプティマイザー」を検索して ください。

そして、何度も言うようですが、遺伝学における単一の回復因子の最適化は禁じ手なのです。あなたは、アルゴリズムが完全に不安定で欺瞞的な(自動売買のための)「利益/最大ドローダウン」の 比率で誤解させ、簡単に巨大な値を生成 しています。どのように、なぜ、を考える。


月曜日には最適化グラフの描画を修正します。

 
指値注文は、出来高に応じて部分的に執行されるのでしょうか?
 
pivomoe:
指値注文は、市場の通過量に応じて、一部執行されるのでしょうか?

歴史上、グラスに入ったボリュームを見たことがありますか?これは、市場のスナップショットなしに実行するのは非現実的です。

 
Aleksey Vyazmikin:

歴史上、グラスに入ったボリュームを見たことがありますか?ガラスの型がないと無理なんです。

夢にも思わない。価格90、ロット10の買い指値が、価格89、出来高1の売り指値があった場合、部分的に発動してほしい。今はとても悲しいです。価格90、ロット1...の買いティックがあれば注文がトリガーされます。とフルボリュームで表示します。

 
Renat Fatkhullin:

遺伝的テスターのアルゴリズムは変わっていない。 3回というのは、まったく根拠のない主張です。

変更されたのは、過去の結果のキャッシュの動作方法です。そして、前作よりも根本的に良くなり、完成度も高くなった。


テスターの新旧ビルドで比較テストを行いました。

以下はその結果である。ログと説明は投稿番号34にあります。

11

 

ここでは、提案された条件でテストしてみました。

  • https://www.mql5.com/ru/forum/241285/page4#comment_7271206 からの設定
  • テスト開始前にすべてのテスターファイルキャッシュをディスクから削除。
  • Windows 10、Intel Xeon E5-2630 v4 @ 2.20GHz、エージェントに使用する8コア

フルパスで終了し、端末再起動
1000パスで停止
停止後、継続
メタトレーダー5 ビルド1755
38秒、4780パス
15秒、1105パス
25秒、3487パス
メタトレーダー5 ビルド180933秒、パス数5,549本
9秒、1126パス
36秒、5863パス


Metatrader 5 build 1755。

  • ビルド1755フルパス、合計8960のバリアントが通過し、そのうち4780が実際に計算され、4180が同じ セッションで蓄積されたキャッシュから取得された

    その後、メモリ内のホットキャッシュの直接的な影響を避けるためにターミナル再起動が行われる
    2018.04.30 11:20:46.867	Tester	Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 11:20:47.118	Tester	genetic calculation is over
    2018.04.30 11:20:47.126	Tester	4697 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:20:47.338	Tester	result cache used 4180 times
    2018.04.30 11:20:47.338	Tester	genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 11:20:47.349	Statistics	optimization done in 0 minutes 38 seconds
    2018.04.30 11:20:47.349	Statistics	local 4780 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • そのうち216本がキャッシュから取得される(216 / 1337 = 16% キャッシュヒット、開始時のランダム性とサンプル数が少ないため、それほどでもない)。
    2018.04.30 11:24:15.913	Tester	Best result 3254.53 produced at generation 0. Next generation 4
    2018.04.30 11:24:16.775	Tester	file cache used 19 times
    2018.04.30 11:24:16.775	Tester	result cache used 216 times
    2018.04.30 11:24:16.775	Tester	genetic optimization finished on pass 1337 (of 49644595)
    2018.04.30 11:24:16.775	Statistics	optimization done in 0 minutes 15 seconds
    2018.04.30 11:24:16.775	Statistics	local 1105 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    


  • ビルド 1809 のように最初からではなく、停止した時点からテストを継続し、提案された 10496 パスから 3487 を取得し、66+3814 をキャッシュから取得しました (66+3814 / 10496 = 36% キャッシュヒット)。
    2018.04.30 11:26:27.931	Tester	Best result 3363.35 produced at generation 15. Next generation 32
    2018.04.30 11:26:28.104	Tester	genetic calculation is over
    2018.04.30 11:26:28.111	Tester	3422 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:26:28.539	Tester	file cache used 66 times
    2018.04.30 11:26:28.539	Tester	result cache used 3814 times
    2018.04.30 11:26:28.539	Tester	genetic optimization finished on pass 8704 (of 49644595)
    2018.04.30 11:26:28.550	Statistics	optimization done in 0 minutes 25 seconds
    2018.04.30 11:26:28.550	Statistics	local 3487 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    





Metatrader 5 build 1809。

  • build 1809 full pass, total 8960 passes, which 5549 were actually counted and 3411 took from cache hit accumulated insame session

    after the restart of terminal made to avoid direct influence of hot caches in memory.Build 1809 full pass, total 8960 passes, which 5549 were actually counted and 3411 took from ca che hit accumulated in same session after the next session.
    2018.04.30 10:50:58.997 Tester  Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 10:50:59.485 Tester  genetic calculation is over
    2018.04.30 10:50:59.485 Tester  result cache used 3411 times
    2018.04.30 10:50:59.485 Tester  genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 10:50:59.495 Statistics      optimization done in 0 minutes 33 seconds
    2018.04.30 10:50:59.495 Statistics      local 5549 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • ビルド 1809、1348 パスで停止、うち 222 パスはキャッシュから取得 (222 / 1348 = 16% キャッシュヒット、開始時のランダム性とサンプル数が少ないため十分ではない)
    2018.04.30 11:00:59.532 Tester  Best result 3263.17 produced at generation 0. Next generation 4
    2018.04.30 11:00:59.742 Tester  result cache used 222 times
    2018.04.30 11:00:59.742 Tester  genetic optimization finished on pass 1348 (of 49644595)
    2018.04.30 11:00:59.742 Statistics      optimization done in 0 minutes 09 seconds
    2018.04.30 11:00:59.742 Statistics      local 1126 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • 停止で停止した後、継続で1809を構築し、端末が再起動しなかった、継続。

    テストは最初から開始されるように、提案された10240パスからクリーン5863と4377がキャッシュから取られた(4377 / 10240 = 42%のキャッシュヒット)作られました。
    2018.04.30 11:04:28.046 Tester  Best result 3391.17 produced at generation 27. Next generation 38
    2018.04.30 11:04:28.477 Tester  genetic calculation is over
    2018.04.30 11:04:28.477 Tester  result cache used 4377 times
    2018.04.30 11:04:28.477 Tester  genetic optimization finished on pass 10240 (of 49644595)
    2018.04.30 11:04:28.488 Statistics      optimization done in 0 minutes 36 seconds
    2018.04.30 11:04:28.488 Statistics      local 5863 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    



さて、結論です。

  1. 3倍遅い」という発言は誤りです。

  2. 実際、ビルド1809のテスターでは、内部処理の最適化や書き換えにより、高速化が図られている。

    これはフルパスの時間にも表れており、38秒ではなく33秒になっています。そして、パスの数が多い場合は33秒。


    - ビルド 1755 では 4780 パス / 38 秒 = 125 パス / 秒
    - ビルド 1809 では 5549 パス / 33 秒 = 168 パス / 秒となります。

  3. 新しい集団計画の生成を伴う「停止後継続」遺伝的最適化装置の新しいスキームが正しい。

    テスターのコンセプトを再評価し、古い誤った判断を修正しています。

    遺伝子検査は、検索範囲をより完全にカバーするために複数回実行する必要があるため、キャッシュから過去の実行結果を視覚化した新しいモデルにより、遺伝子検査のワークフローの仕組みをより深く理解することができます。

    最適化結果を 表示する際に、過去に計算したキャッシュのデータをすべて表に追加する新モデルにより、より全体像が把握しやすくなりました。ストラテジーをチャンク単位で計算し、過去の実行結果も含めて毎回完全な結果を確認することが可能です。

    マージされた結果表が本当に大きいため、結果リストのリエルタイム表示を無効にし、過去の結果をすべてマージした後の累積結果を表示するようにしたのです。
 

ロボットが初期化中にクラッシュしてしまいます(ランタイムとデバッグの両方で)。コンピレーションは問題ない。

コード内に静的メンバを 持つクラスがあるのは、おそらくそれらのせいでしょう。以前はすべてうまくいっていたのに。しかし、現在ではグローバル初期化中にエラーが報告されるようになりました。

クラスからstaticメンバを削除すると、正常に動作するようになりました。

 
Dennis Kirichenko:

ロボットが初期化中にクラッシュしてしまいます(ランタイムとデバッグの両方で)。コンピレーションは問題ない。

コード内に静的メンバを 持つクラスがあるのは、おそらくそれらのせいでしょう。以前はすべてうまくいっていたのに。グローバル初期化時にエラーを書き込むようになりました。

クラス内の静的要素を削除し、正常に起動するようにしました。

サービスデスクにリクエストを書き、Expert Advisor(ex5ファイルでも可)を添付してください。

 
Aleksey Vyazmikin:

どれもこれも素晴らしい

しかし、「最適化」タブを復活させてください。運用分析なしでは仕事になりません大 きな表は遅い - フィルターを作ろう - 各基準のトップ20を表示する - それほどリソースを必要としない(?)が、画像を見るのに非常に役立つだろう。そして、その何十億枚ものパスですが、誰が作っているのでしょうか?巨大な能力を持つユニットです。あなた自身が遺伝子を応用することの合理性を語っているのであって、そこにそのようなポルトマンタは存在しないのです。だから、10kパス以上は珍しいんです。


悲しい。

少なくとも、最適化を進めながら、予備的なデータでイメージを膨らませることは可能だったのです。

 
Renat Fatkhullin:

現在、テスターの大幅な性能アップに取り組んでおり、高負荷モードの再設計に追われています。大幅な改良を加え、新しい加速方式も近日中に実装する予定です。

通路リストウィンドウは、刻々と変化する通路リストのメンテナンス、再ソート、表示に実資源を浪費しないよう、誤算の末に表示することにしたのである。

本当に資源の無駄遣いが多く、スピードダウンもありました。特に、何十万行、何百万、何千万というパスの場合は、なおさらです。予備的なデータの束を目で見ることに合理的な意味はない。


1億回の完全パスによる最適化テストと性能テストを実施しています。

もちろん、このような数では、リアルタイムに再ソートして、2-5-1-5千万件の値のテーブルを表示するのは論外だ。選択肢はただ一つ、すべてを迅速かつ経済的に集め、最終的に仕分けし、どんな奥行きでも見えるようにすることです。

教えてください、それだけです。