記事"連続ウォークフォワード最適化(パート3):ロボットをオートオプティマイザに適応させる"についてのディスカッション

 

新しい記事 連続ウォークフォワード最適化(パート3):ロボットをオートオプティマイザに適応させる はパブリッシュされました:

3番目であるこの記事は、前の 2 つの記事間のブリッジとして機能します。最初の記事で検討されている.dll との相互作用のメカニズムと、2 番目の記事で説明したレポートダウンロード用のオブジェクトについて説明します。 DLLからインポートし、トレードヒストリーを持つXMLファイルを形成するクラスのラッパ作成のプロセスを分析します。 このラッパとデータのやり取りするメソッドも検討します。

最初の記事では、XMLレポートファイルによる操作のメカニズムとファイル構造の作成を分析しました。 レポートの作成は、第2の記事で検討されました。 レポート生成メカニズムは、ヒストリーダウンロードオブジェクトから始まり、レポートを生成するオブジェクトで終わるように検討しました。 レポート作成プロセスに関連するオブジェクトを調査する際、計算部分を詳細に分析しました。 この記事には、主な係数の公式と、可能な計算の問題の説明も含まれています。

この記事の紹介で説明したように、このパートで説明するオブジェクトは、データダウンロードメカニズムとレポート生成メカニズムの間の橋渡し役となります。 トレーディングレポートファイルを保存する機能に加えて、XMLレポートのアンロードに参加するクラスの説明と、関数を自動的に使用できるロボットテンプレートの説明も含まれています。 また、作成した関数を既存のアルゴリズムに追加する方法についても説明しました。 これは、自動オプティマイザのユーザーが古いアルゴリズムと新しいアルゴリズムの両方を最適化できることを意味します。  

作者: Andrey Azatskiy

 

親愛なる著者へ!あなたがした仕事は途方もない!プログラミングのレベルも素晴らしい。しかし、その結果、使うことができない!そのために、あなたは記事の全サイクルを旅し、バラバラのファイルを集め、コンパイルし、欠けているものを見つけ、新しい記事で更新されているかどうかを考えなければならないのですか?このような作業は、その結果を一箇所に集める価値があることを疑うことはできない。

一方、私が見る限り、このリソースに関するこの仕事の本当の意義(トレーダーの)を評価している人はまだいない。しかし、それは驚くべきことではなく、あなたはまだそのようなレベルに成長する必要があります。mt5が普通のWFOに成長するのは良いことだが、それは望まない......。それに、アドオンを作るスペースがなくなる!一番欲しいのは、クロスバリデーションを実装することで、ストーリーをK個のパーツに分け、それぞれを順番に捨てて、残ったものを最適化し、捨てられたものをチェックする、ということをK回繰り返したい。最も単純な "安定したパラメータセット "から始まる仮説は、通常のスライディングオプトインよりもはるかに高い信頼性でテストすることができる。

 
Kristian Kafarov:

親愛なる著者へ!あなたがした仕事は途方もない!プログラミングのレベルも素晴らしい。しかし、その結果、使うことができない!そのために、あなたは記事の全サイクルを旅し、バラバラのファイルを集め、コンパイルし、欠けているものを見つけ、新しい記事で更新されているかどうかを考えなければならない...?このような作業は、一か所に集める価値があると信じて疑わない。

一方、私が見る限り、このリソースに関するこの仕事の本当の意義(トレーダーの)を評価している人はまだいない。しかし、それは驚くべきことではなく、あなたはまだそのようなレベルに成長する必要があります。mt5が普通のWFOに成長するのは良いことだが、それは望まない......。それに、アドオンを作るスペースがなくなる!一番やりたいのは、クロスバリデーションの実装で、ストーリーをK個のパーツに分けて、それぞれを順番に捨てて、残ったものを最適化し、捨てられたものをチェックする、ということをK回繰り返すことです。最も単純な "安定したパラメータセット "から始まる仮説は、通常のスライディングオプトインよりもはるかに高い信頼性でテストすることができる。

お褒めの言葉をありがとう。オート・オプティマイザーそのものについて、あと3つの記事を予定しています。そのうちの1つの記事では、具体的な使用方法とプログラムそのものを紹介する予定です。多くの記事は、それがどのように達成されたかを説明することなく、行われた作業の結果のみを掲載するという事実はありません。現時点では、最適化レポートのアップロードとその作成方法について説明し、次の記事(現在作成中)では、オプティマイザーそのものについて説明する。ちなみに、このプログラムでは、最適化アルゴリズム自体はインターフェース部分に配置されているので、記事のサイクルが完了次第、あなたのアイデアを実装することができます。

すべてがバラバラの場所にあるという事実について - 物語の糸を断ち切ってしまうかもしれないが、私が取り組んでいるこれらの記事で、コード全体を並べるようにしようと思うし、おそらくgithubにコードを投稿するだろう。コンパイルやプロジェクトの使い方について質問があれば、いつでもお手伝いします。

 
Andrey Azatskiy:

オート・オプティマイザー自体については、あと3つの記事を予定している。

最近、私はこのプロセスを自動化する必要性に迫られた。私はOOS履歴に対して安定した肯定的な結果を与える最適化手法を開発したが、それには長い計算と多くの手作業が必要だ。また、スライディングオプタだけが問題解決策ではない。最も差し迫った課題の一つは、遺伝学者が 最良の結果に落ち着く値の範囲を広げ、狭める範囲を絞り込み、新たなオプタを実行させる方法である。これは、すべてのパラメーターの範囲を一度に十分に広く設定し、ベストなものだけを選ぶのとは大違いだ。私のロボットの場合、パラメーターの数が多いので、そのようなオプタには何週間もかかるか、パラメーター空間を十分に詳しく調べることができないだろう。

そこで今思うのは、あなたを待つべきか、それとも自分で解決策を探すべきか、ということです。

現在、パネルを呼び出すExpert Advisorを起動すると、私のターミナルは最後のエントリを残してクラッシュします:

2020.02.02 22:45:07.187 Terminal exit with code 0.

とはいえ、ターミナルの起動はすべて次のように始まります:

2020.02.02 23:35:17.747 IPC failed to initialise IPC, with message:

2020.02.02.02 23:35:17.748 ターミナル IPCディスパッチャーが開始されていません。

どうやら、このせいでプログラムが動かないらしい?なんでもシステムは64xだとか。
 
Kristian Kafarov:

最近、私はこのプロセスを自動化する必要があることに気づいた。私はOOS履歴に安定した肯定的な結果を与える最適化手法を開発したが、それには長い計算と多くの手作業による単調な作業が必要だ。また、スライディング・オプタだけが問題解決策ではない。最も差し迫った課題のひとつは、遺伝学者が 最良の結果に落ち着く値の範囲を広げ、狭める範囲を絞り込み、新たなオプタを実行させる方法である。これは、すべてのパラメーターの範囲を一度に十分に広く設定し、ベストのものだけを選ぶのとはほど遠い。私のロボットでは、パラメーターの数が多いので、そのようなオプタでは何週間もかかるか、パラメーター空間を十分に詳しく調べることができない。

今考えているのは、あなたを待つか、それとも自分で解決策を探すか、ということです。

現在、パネルを呼び出すExpert Advisorを起動すると、私のターミナルは最後のエントリを残してクラッシュします:

2020.02.02 22:45:07.187 ターミナル 終了 コード 0

同時に、ターミナルを起動するたびに、次のようなメッセージが表示されます:

2020.02.02 23:35:17.747 IPC IPCの初期化に失敗しました:

2020.02.02.02 23:35:17.748 ターミナル IPCディスパッチャが開始されていません。

どうやら、このせいでプログラムが動かないらしい?なんでもシステムは64xだとか。


エラーの件ですが、私のファイルを接続した後に起こり始めたのでしょうか、それともあなたのロボットがターミナルにそのような影響を与えているのでしょうか?私はそのような問題を観察していませんし、すでに記事にあるような追加をしたロボットを複数のコンピュータで立ち上げています。また、私は64ビットのシステムを持っています。

もしあなたが私の最後の一連の記事(最適化管理について)について書いているのであれば、デバッグモードであなたのコンピューターで直接対処する方が良いでしょう。

 
Andrey Azatskiy:

エラーについてですが、私のファイルを接続した後に起こり始めたのでしょうか、それともあなたのロボットがターミナルに影響を与えているのでしょうか?

最初の2つの記事から、OptimisationManagerExtention Expert Advisorを実行して、あなたのパネルを呼び出そうとしただけです。その後、ターミナルがクラッシュします。

 
Kristian Kafarov:

OptimisationManagerExtentionエキスパート・アドバイザーを実行して、最初の2つの記事からパネルを呼び出そうとしただけです。その後、ターミナルがクラッシュしました。

それなら - 言ったように、特定のコンピュータと例を見る必要があります。私はそのプロジェクトを 長い間扱っていないので、一見しただけでは何が問題なのかわかりません。

現在のAuto Optimiserプロジェクトでは、ターミナルからグラフィックを削除し、ロボットとしてではなく、通常のプログラムとして実行するようにしました。そして、その古いプロジェクトは、私が言ったように、具体的な例を見る必要があります。

 
Kristian Kafarov:

OptimisationManagerExtentionエキスパート・アドバイザーを実行して、最初の2つの記事からパネルを呼び出そうとしただけです。その後、ターミナルがクラッシュしました。

わざと古いプロジェクトを 再コンパイルしてゼロから実行した。すべてうまくいきました。このエラーを再現することはできません。

 
Kristian Kafarov:

最も重要なのは、クロスバリデーションを導入して、ストーリーをKの部分に分割し、それぞれを順番に捨てて、残りの部分について最適化し、捨てた部分についてチェックする、ということをK回繰り返したいのだ。

一般的なケースでは、選択式は機能しない。TSに2つの入力パラメーターを設定し、非取引(捨て)区間を定義する必要がある。そうすれば本物である。


一般的なケースでは、カスタム・シンボルを作成する ことができます。

 
fxsaber:

ハイライトされたものは、一般的なケースでは機能しません。TSに2つの入力パラメーターを設定し、取引しない(投げ出す)間隔を定義する必要があります。そうすれば現実的です。

一般的なケースでは、カスタム・シンボルを作成することができます。

私がやろうとしていたのはまさにその方法です。パラメータは1つだけで十分だ。パラメータは、捨てる区間の番号を指定する。まあ、「分割数」というパラメーターを追加することもできる。

アンドリューのツールを使えば、マスター・ターミナルにk個の最適化を実行するタスクを与えることができる。しかしその場合、統計情報をまとめるためのアドオンを書かなければならない。

もしテスターがジェネティクス中にいくつかのパラメーターを強制的に完全に列挙する可能性があれば、すべては100倍シンプルになるだろう。そうすれば、オプタの結果を「プロット番号」パラメータで割って分析することができる。

もう一つの選択肢はOnTesterDeinit()関数 である。私はすでにこの関数に本格的なWFOを実装しており、そこで簡単に任意の基準によるクロスバリデーションを行うことができます。しかし、それはテストセクション全体のフレームを列挙することによって行われるため、完全な検索の場合にのみ「正しい」ものとなります。完全な列挙はほとんどの場合非現実的である。また、ジェネティクスを実行した場合、オプタの過程でテスト区間にしたい区間でも結果を選択するため、フレームのセットは不公平になる。これがどれほどの実害をもたらすかは疑問だが。全長に対するテスト部位の長さの比率が小さければ、遺伝学ではテスト部位がクソであることが判明するバリアントの数はまだ十分あるはずだ。そして、そのような一般的なバリアントの後に、それに参加しなかったもう一つの部位を残し、その上で結果をチェックすることは可能である。

 
Kristian Kafarov:

私が目指していたのはまさにそれだ。パラメータは1つで十分だ。パラメータは、破棄する部分の番号を指定する。パート数」というパラメータを追加することもできる。

アンドリューのツールを使えば、マスター・ターミナルにk個の最適化を実行するタスクを与えることができる。しかしその場合、統計情報をまとめるためのアドオンを書かなければなりません。

もしテスターがジェネティクス中にいくつかのパラメーターを強制的に完全に列挙する可能性があれば、すべては100倍シンプルになるだろう。そうすれば、オプタの結果を「プロット番号」というパラメータで割って分析することができる。

fxsaberツールも あります。

Validate
Validate
  • www.mql5.com
Боевые торговые советники время от времени перенастраиваются по разным причинам через Тестер на исторических данных. Однако, результат таких периодических настроек сводится к наблюдению за неизвестным - будущая торговля. Аргументировать и обосновать целесообразность таких действий в отношении того или иного торгового советника довольно...