ストラテジーテスターにおける最適化 - ページ 8

 

さて、上記の例のテスト実行では、起動時に全データの準備(認証と計算データの同期)に約1.5秒のシステムオーバーヘッドが発生します。ポイントは、テストエージェントが 完全に独立し、端末から切り離されていることで、使用するすべてのデータを完全に転送し、同期させる必要があることにつながる。

システムのオーバーヘッドが最終的な計算時間に重大な影響を与えるため、数秒以内の超高速計算を行う遺伝的最適化装置やテスターが遅いとは言い切れないのです。1回の実行が20秒以上の長時間計算では、システムオーバーヘッドの影響を無視できる値まで低減しています。

ビルドのたびに、ほとんどのデータをエージェントに直接キャッシュすることで、この時間を短縮しています。この問題はすぐに解決できると思います。

 
Urain:
jooのGAはすでに標準のものより高速で、Studio 10(マルチコアCPUに適応)でCPPにコードを転送すると、さらに6倍高速化されます。

特定のタスクのためにカスタムスピード計算機をアレンジできるのは、市場環境なくしてありえない。

しかし、あらゆる多通貨のポチデータをオンデマンドで提供し、利益・限度額の自動計算やレポートを行うユニバーサルなトレーディングエンジンを作ろうとすると、途端にスピードが2~3~4桁落ちてしまうのです。

 
Renat:

さて、上記の例でテストを実行すると、すべてのデータの準備(認証と計算データの同期)のために、開始時に約1.5秒のシステムオーバーヘッドが発生する。ポイントは、テストエージェントが完全に独立し、端末から切り離されていることで、使用するすべてのデータを完全に転送し、同期させる必要があることにつながる。

システムのオーバーヘッドが最終的な計算時間に重大な影響を与えるため、数秒以内の超高速計算では、遺伝的最適化装置やテスターが遅いとは言い切れない。1回の実行が20秒以上の長時間計算では、システムオーバーヘッドの影響を無視できる値まで低減しています。

ビルドのたびに、ほとんどのデータをエージェントに直接キャッシュすることで、この時間を短縮しています。この問題はすぐに解決できると思います。

レナート

市場環境がなければ、特定のタスクのためにカスタムラピッドファイアカウンターを設定することは可能です。

しかし、あらゆる多通貨データをオンデマンドで提供し、利益・限度額の自動計算とレポート作成を行うユニバーサル・トレーディング・エンジンを作ろうとすると、途端にスピードが2~3~4桁落ちます。

レナット 市場環境を整えるのに時間がかかるなど、やむを得ない「ブレーキ」がかかるという意味ではなく、前のページで書いたとおりです。

最も可能性の高い、このような巨大な違いは、テスターは、直接計算FFに加えて、ログを書く必要があるという事実によるものである、情報などを表示し、それが存在する "強制ブレーキ" 。

2010.11.28 17:38:30 Core 1の遺伝子のパス(424, 98130899813578)が2059 msで結果48.16を返しました。
2010.11.28 17:38:30 Core 2 遺伝子パス(426, 990006720)開始
2010.11.28 17:38:30 core 2 genetic pass (425, 56291461) が結果 26.67 in 2012 ms を返しました。
2010.11.28 17:38:28 core 2 genetic pass (425, 56291461)を開始しました。
2010.11.28 17:38:28 core 2 genetic pass (423, 1510001908) 2028 msで結果49.98を返しました。
2010.11.28 17:38:28 core 1 遺伝子パス (424, 98130899813578) を開始しました。
2010.11.28 17:38:28 core 1 遺伝子パス (422, 1668020166802) 返された結果 48.36 in 2013 ms
2010.11.28 17:38:26 core 2 遺伝子パス (423, 1510001908) 開始
2010.11.28 17:38:26 core 2 genetic pass (419, 99260769921339) returned result 49.22 in 1935 ms
2010.11.28 17:38:26 core 1 遺伝子パス (422, 1668020166802) を開始しました。
2010.11.28 17:38:26 core 1 遺伝子パス (418, 32073563420604) が結果 26.13 in 1934 ms を返しました。
2010.11.28 17:38:24 テスターの遺伝子のパス(421, 730000073)がキャッシュに見つかり、結果は50.00でした。
2010.11.28 17:38:24 テスターの遺伝子のパス(420, 2080000208)がキャッシュで見つかり、結果は50.00でした。
2010.11.28 17:38:24 Core 2 遺伝子パス(419, 99260769921339)開始。
2010.11.28 17:38:24 2010/11/28 17:38:24 Core 2の遺伝パス(417、99249619924961)が結果 49.26 in 2059 msを返しました。
2010.11.28 17:38:24 core 1 遺伝子パス (418, 32073563420604) を開始しました。
2010.11.28 17:38:24 core 1 遺伝子パス (416, 2479846771) 2309 msで結果48.49を返しました。
2010.11.28 17:38:22 core 2 genetic pass (417, 99249619924961)を開始しました。

つまり、素のFFを計算するのに2秒以上かかり、しかも市場環境には全く触れていない状態での計算です。

オプティマイザは、f(x1,x2)=x1*x1+x2*x2のような単純なタスクを500回目の「パス」のどこかで解き、計算するために1000以上のバリエーションを定義しているのでバリエーションを試し続けているのです。

しかも、アルゴリズムの検索能力に影響を与えるような設定はなく、さらに、最適化可能なパラメータが64個という制限があるのが不満です。

 
Renat:

マーケット環境がなくても、特定のタスクのためにカスタムスピード計算機をセットアップすることは可能です。

しかし、あらゆる多通貨データをオンデマンドで提供し、利益・限度額の自動計算やレポート作成を行うユニバーサル・トレーディング・エンジンを作ろうとすると、途端にスピードが2~3~4桁落ちます。

反論はしませんが、アルゴリズムの制御パラメータ、同じ検索出口の設定、検索パラメータの数を拡張するのは良いことだと思います。

ここmql5では、3000個のパラメータを探索するアルゴリズムに取り組んでいます。もちろんバイナリコーディングではなく、連続平面での探索ですが、限界はありません。

そして、あなたの手元にはまだSRRがある。

バイナリコーディングでやってみましたが、mql5ではこのような場合、GAが負けてしまいます。連続探索は、それ自体が収束時のステップを減らすので良いのです。さらに、コーディング/デコードのためのリソースも必要ありません。まあ、一般的には正しいテストが必要なので、まだ何とも言えませんが。

 
遺伝的最適化装置は、よりカスタマイズ可能で、システムのオーバーヘッドを最小限に抑えることができます。
 
Renat:
遺伝的最適化装置は、おそらくもっとカスタマイズできるようになり、システムのオーバーヘッドを最小化することになるでしょう。

ありがとうございました。これは実はとても重要なことで、多くの人が思っている以上に重要なことなのです。

そして願わくば、『Threshold 64』もいつかは忘れたいものです。

 

新しい366ビルド(月曜日にリリース)では、システムのオーバーヘッドを最小値まで削減しました。

上記の遺伝学の専門家は、1回のパスで2秒ではなく、200~300msを費やすようになりました。

 
joo:

ありがとうございました。それは本当に大切なことで、多くの人が思っている以上に重要なことなのです。

そして願わくば、『Threshold 64』もいつかは忘れたいものです。

今すぐ忘れてください。4パラメータ8桁でテスターがオーバーサイズの長さを超えている旨の警告を出します。

ですから、EAのテスト 以外のニーズには、カスタムオプティマイザーを書いてください。

また、EAを最適化するためのパラメータは64個で十分です。

 

ええ、スレッドを読みました、彼らはどこでそんなに多くのパラメータを持つアドバイザーを得るのでしょうか:)

 
marker:

ええ、スレッドを読みました、彼らはどこでそんなに多くのパラメータを持つアドバイザーを得るのでしょうか:)

標準的なMTのEAには、オーバーシュートが十分でないものもあります。