メタトレーダー5でのシンボルとデータフィード - ページ 4

 
zaskok:

トレーディングシステムの最適化に最適なヒューリスティック手法というものがあります。これはまさに万能GAと違って、そのために開発されたものです。テスターにある唯一のヒューリスティックメソッドを、MQL5で書かれた独自のメソッドに置き換えることは可能だと思われますか?入力データのカスタマイズという点でテスターを劇的に改善するのであれば、最適化手法をカスタマイズして(カスタム最適化基準は以前からあります)最高のパフォーマンスを発揮させるのが合理的でしょう。

GAとは違うものを求めるのであれば、これらの方式を正確に名指しして、優位性を直接証明する論拠を示してください、お願いします。

しかし、最も重要なのは、「GAについて、いったい何が不満なのか」ということです。ソリューションエリアが見つからない?10回連続手探り方式でも、目的の特性を持つクラスターの見当がつかないのでは?

もちろん、そうでしょう。非常に迅速かつ効率的です。通常のブルートフォースの何万倍、何十万倍もの速さです。

他の方法(例えばモンテカルロ法やアニーリング法)で、より速く、より良い結果が得られるのでしょうか?事実ではありません。

しかし、ここで、私たちの遺伝的アルゴリズム 独自の 実行評価基準により、各プログラマーが独自の選択バリエーションを自由に実装できるようになったという事実があります。この仕組みは、本来、自分たちでヒューリスティクスを作るための鍵なのです。

これに加えて、入力パラメータに対するMQL5の制御/オーバーライド関数があり、非数値/非線形パラメータを特別な線形数値カウンタに仮想化して列挙を実装することができます。例えば、ファイルからのデータを含む30個の非数値パラメータを、64ビットのカウンタ[i]に変換して、作業パラメータとして捻出する。中身をどうするかはプログラマー次第。そして、自分なりの評価基準の機能は、自分なりのヒューリスティックな手法を生み出すことにもつながります。

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
zaskok:

トレーディングシステムの最適化に最適なヒューリスティック手法 というものがあります。これはまさに万能GAと違って、そのために開発されたものです。テスターにある唯一のヒューリスティックメソッドを、MQL5で書かれた独自のメソッドに置き換えることは可能だと思われますか?入力データのカスタマイズという点でテスターを劇的に改善するのであれば、最適化手法をカスタマイズして(カスタム最適化基準は以前からあります)最高のパフォーマンスを発揮させるのが合理的でしょう。

この方法を応用して、極限を探すのです。例えば、関数maximaの検索はこんな感じです。

と、これは検索そのものです。

 

これは3Dビジュアライゼーションも含めて、MT5テスターに搭載されています。

 
Renat:
MT5用に独自のデータフィードを作成するためのインターフェースを公開することにしました。

rltimeデータソースを含め、独自のデータソースを自由に作成することができます。これにより、詳細な履歴やLevel2タンブラーなど、あらゆるデータが差し込めるようになります。

デフォルトでは、オフラインを含む多くのインハウスデータファイルを提供する予定です。また、テスターではバーチャルキャラクターも登場する予定です。

もちろん、これらはすべて無料です。

ハレルヤ!何年お願いして、やっとここに来たんだろう...。喜びと感動の涙さえも流れる:)

個人的には、MT5を使いこなすのは、歴史が浅いので、ずっと怖かったんです。Wealth-Labのようなサードパーティーのプログラムで研究を行い、MT5を使って取引ロボットを書かなければなりませんでした。これでサードパーティーのプログラムは不要になります。

 
forexman77:

最適化する変数が多すぎると、履歴にフィッティングする確率が高くなります。

変数が大きくなればなるほど、最適化にかかる時間は指数関数的に増大し、逃れられなくなる。

これを解決する方法があります、家ほどの大きさの超強力なコンピュータです)

私はこの問題に精通していて、それを解くアルゴリズムも考え出した。 理解できないのは、遺伝学がブルートフォースより優れていると、また強引に決めつけられていることだ......。私はそうは思いませんし、理由も肯定的な例もあります。例えば、プロフィニティはまさに亜種を試すことによって生まれたもので、今ではその関連性は過去のものとなりました。しかし、それでもです。

繰り返しになるが、これだけ大きな市場を持つ遠隔地の代理店をなぜ切り離さなければならないのか、彼らは思う存分忙しいのか......不明である。そうではなく、既存のものの8割(イマイチ)がアイドルで、その上、潜在的な仕事の前線を切り捨ててしまう......。

 
Renat:

これは3Dビジュアライゼーションも含めて、MT5テスターに搭載されています。

それは素晴らしいです私はこのことについて知りませんでした、ただ、私の場合はうまくいきませんでした、3Dのスイッチの位置が非アクティブになっています、コードに何か特別なものがあるのでしょうか?
 
IvanIvanov:
素晴らしい、私はこの事を知りませんでしたが、私の場合はうまくいきませんでした、3Dでの位置の切り替えは非アクティブです、コードに何か特別なものがあるのでしょうか?
MetaTrader 5 Strategy Tester 3Dビジュアライゼーション
 

О !ブラボー、アドミンスタッフ

ヒストリカルデータのデバッグがようやく登場するのですね。

 
Renat:

GAとは違うものを求めるのであれば、これらの方法を正確に名指しで述べ、その効果を直接的に証明する論拠を示してください、お願いします。

しかし、最も重要なのは、「GAで具体的に何を問題にしているのか」ということです。ソリューションエリアが見つからない?10回連続手探り方式でも、目的の特性を持つクラスターの見当がつかないのでは?

もちろん、そうでしょう。非常に迅速かつ効率的です。通常のブルートフォースの何万倍、何十万倍もの速さです。

他の方法(例えばモンテカルロ法やアニーリング法)で、より速く、より良い結果が得られるのでしょうか?そうでもないんです。

自分の近視眼的な部分を公的に論証されても、なかなか正しく反応しないところがあるので、自分だけの証明を持ってくるのはかなり問題です。そして、あなた自身が立ち上げたこのスレッドは、残念ながらその主張の集大成的な証明となる。もちろん、何年も前から呼びかけ、求めてきたのは他の人たちではなく、あなたが反発したはずですが......。でも、あったことはあったんです。しかし、評価を行うのは論理ではなく人間的な要素であるため、あなたの間違いを証明することはやや無意味なようです。

そこで、GAとは少し異なるヒューリスティック最適化の手法を支持する論理的論拠を、あなたではなく、フォーラムのユーザーのために述べたいと思います。以下、先に引用した記事からの抜粋+私のストレスで、特に注意していただきたい点をご紹介します。

すべての確率的最適化手法に共通する欠点は、ある局所的極値で停止してしまい、最適なものを見失って しまうことです。これを避けるためには、サンプル領域と反復回数を最大化する必要がある。しかし、これでは計算速度が落ちてしまいます。だから、私たちは常に黄金律を探さなければならないのです。


しかし、よく考えてみると、そこに 収束しないのであれば、大域的極限値そのものは必要 ないのである。つまり、極限付近で条件付き一様減少がない場合、このグローバル極限はランダムである可能性が高く、不十分で計算が台無しになるため、ほとんど役に立ちません。そのため、極限付近のパラメータを研究することは非常に重要です。もし収束していれば、それはシステムが存在することを意味し、この戦略をさらに研究 することができる。

前述したように、極限付近を調べることが重要であるため、最後の反復で最後まで収束させ、近傍の戦略をすべてテストすることにしました。グラデーションは弄らず、収束は初期サンプルに対するパーセンテージで静止させました。つまり、反復のたびに多次元行列を1%、20%とどれだけ削るか、最初の段階で決めておくのです。また、時間の制約がある中で、各反復でマトリックスからいくつの戦略を取り出し、テストを行うかをすぐに決めます。したがって、行列の大きさは全く重要ではなく、何回反復するか、どのような体積で反復するかは正確に分かって いるのですこれがストキャスティック手法の良さです。

最初の反復の後、まさに最初の空間が探索されたとき、次のサンプルのために探索領域を何とか減らさなければなりません。しかし、まだほとんど何もわかっていないこの空間で、未知の領域を切り取る のは、かなり無謀な 気がします。一般に、アルゴリズムは大域的な最大値を求めるように設計されており、我々はすべての局所的および大域的な最大値に興味が ある。

ストラテジーが利益を上げることができるすべてのパラメータを知る必要があります。あるパラメータでは利益は出るがリスクが高く、別のパラメータでは利益は少し小さくなるが安定性が高くリスクが低いことがわかり、アルゴリズムに従うと見失って しまうことがある。

研究空間から最悪の戦略を無意味に排除する。そのため、次の反復では、より収益性の高い戦略で領域を探索し、必要のない領域を探索するために貴重なテスト時間を浪費することはありません。最終的に、私たちの研究領域は、空間のすべての最大値に収束します。

空間を探索し、高さの数がおおよそ分かったとする。では、これで何がわかるのか?今のところほとんど何もない...。
その極大値を調べて、それがランダムな性質のものなのか、システム的なものなのかを見極める必要があるのです。そのために、オプティマイザー・テスターでは、最適な戦略を選択し、さらにその周辺を 調査することができます。最適化の際に見逃してしまった戦略を調査する。宇宙の極限状態について、ほとんどすべてがわかるようになったのです得られたデータは、さらにクラスタリングや過剰最適化などを調査することができます。しかし、それはまた別の話です

この記事についてではなく、ほとんどどこにも論じられていない、TCの検索と最適化の一般原則についてです。したがって、GAはTS最適化の武器として持っておきたいものではありません。

しかし、ここで、我々の遺伝的アルゴリズム における独自の実行評価基準により、各プログラマーが独自の選択バリエーションを自由に実装できるようになったという事実がある。この仕組みは、本来、自分たちでヒューリスティクスを作るための鍵なのです。

これに加えて、入力パラメータに対するMQL5の制御/オーバーライド関数があり、非数値/非線形パラメータを特別な線形数値カウンタに仮想化して列挙を実装することができます。例えば、ファイルからのデータを含む30個の非数値パラメータを、64ビットのカウンタ[i]に変換して、作業パラメータとして捻出する。中身をどうするかはプログラマー次第。そして、自分なりの評価基準の機能は、自分なりのヒューリスティックな手法を生み出すことにもつながります。

入力パラメータを管理/再定義するためのMQL5関数」なんて聞いたことがないのですが、リンクを教えてください。
 
event:

この方法を応用して極限値を求める。例えば、関数の最大値を求めるとこんな感じです。

ありがとうございました。比較のために、OnTester で通常の GA と共に局所極値を見つけようとする近似関数の式を提供してもらえますか?

この方法についての建設的な言葉(説明、出典、長所・短所)をお聞かせいただければ幸いです。