最適化とサンプル外テスト。 - ページ 3

 
Integer: すべて家で重宝しますよ。このプログラムは自分自身をテストするのではなく、テスターを実行するだけなので、MQと比較する意味はない
誰もテスターを 拒否しているわけではありません。テスターが良いのは、間違いない。オプティマイザーのことを言ったのです。それが、比較できるオプティマイザーです。さてさて、この話題は永遠です、終わりがありませんね.
 
leonid553:

mt4テスターに追加すると便利だと思います。可能であり、誰かがどこかで実装している可能性が高い。


おっしゃるとおり、実装されています。例えば、こちら(MT4NetTesterプロジェクト)をご覧ください。ただ、くれくれとは言わないでください、オーダーメイドです。
 
Integer:
Mak:
みんな、しばらくはうまくいっていたんだけどね。
TradeStationの下で真実、そして無料ではありません...:))
MTでやる意味がわからない、仕事でお金を払うことに慣れてない。


私もほぼ終了しました)))また、Expert Advisorに何かを埋め込む必要はありません。プログラムは、パラメータが設定されたファイルをダウンロードします。

みんな!そして、このスレッドに記事を書き、その展開を説明付きで投稿し、料金を得ることを誰が阻むのでしょうか?

タダで欲しいわけじゃない。私は十分な勤勉さを持っています。特別な知識が足りない。どんな違いがあるのか - 誰があなたにお金を払うのか?

 
leonid553:

皆さん、こんにちは。

EAを最適化した後、オプティマイザーが提案するパラメータのセットを十数個もナードアウトサンプリングしなければならないことがよくあります。

Expert Advisorをサンプル外で最適化するアイデアがある。仮に、Expert Advisorに、いくつかのパラメータによる最適化を「課金」したとします。例えば、1月1日から2006年1月1日から2007年1月1日まで

Expert Advisorは、数千個を受領しています。その後、OPTIMIZATION RESULTSのページを別ファイルとして保存しています。次に、最適化のために次の履歴期間を設定する。つまり、1カ月でも2カ月でも、必要なだけ追加するのである。

この場合、例えば1月1日からと設定します。2007年6月1日、再び最適化を実現。オプティマイザはEXPERT'S PROPERTIESでパラメータを取らずに、最初の最適化の後に保存したファイルから一つずつ選択し直す必要があります。この2回目の最適化の後、サンプル外で利益を得たvAreAだけが残されます!

その結果、理想的には、後でオンラインでテストするための「理想的なパラメータ」を得ることができるのです

mt4テスターの追加機能として便利だと思います。おそらく、そして最も可能性が高いのは、すでにどこかの誰かが実装していることでしょう。どなたかご存知の方は、ぜひリンクをシェアしてください

私は、ささやかな知識のため、このアイデアを実用化するためにどのようにしたらよいのかわかりません。

これをWalk forward optimisation(WFO)またはWalk forward analysis(WFA)と呼びます。
欧米では古くから親しまれているテーマです。
 
Mathemat:
なるほど、大筋は理解できました。では、このプロジェクトを実行した人たち(ベルフォードマックインテージなど)に最後の質問ですが、それだけの価値があるのでしょうか?もちろん、(metaquoteのように)カーブフィットだけでなく、サンプル外のデータで戦略をテストしようとする「オプティマイザー」があるのは良いことですが、MQオプティマイザー(これも良いですが、カーブフィットとしてのみ)より高いスコアに値するでしょうか?
WFOのプロセスそのものを見れば、それも最適化であり、より複雑であることがわかりますが、一般的には価値があると思います。
第1シリーズの優秀なものの中から、第2シリーズの優秀なものを選ぶ、といった具合です。- も、独自のフィッティングによる最適化です。

私のオプティマイザーは、ただのおとぎ話です :)))

第一に、遺伝的なものであり、非常に効率的であること。
次に、任意のカスタム最適化基準を 使用することができます(これは大きな力です)。
3つ目は、複数の条件による最適化を一度に実現したことです。
 

私の最適化基準の実装例を「最適化中のinit()」という トピックに投稿しました。そして、そのことを記事にしようとしているのです。この手法を用いると、WFOから独自の遺伝的アルゴリズムまで、いろいろなことができるようになると思います。

 
Mathemat:
leonid553 さん、サンプル外のデータでテストしない既存の「最適化」は純粋なカーブフィットなので、正しい方向に進んでいますね。しかし、基本的なアルゴリズムは、ニューラルネットワークプログラムのようにもっと複雑であるべきだし、すべての「最適化」は一度にすべてのデータセットに対して同時に行われるべきである(これは開発者の希望である)。もちろん、2つのデータセットだけで作業することもできますが、トレーニング(A)、バリデーション(B)、テスト(C)の3つを用意したほうがよいでしょう。まあ、既存の条件では、多かれ少なかれあなたの言うとおりに働かなければならないでしょう。


サンプル外でのテスト(学習、検証、実行など)は、集合A=「サンプル内の儲かるパラメータセット 」を集合B=「サンプル内でもサンプル外でも儲かるパラメータセット」に減らすような気がするのです。サンプリング+サンプル外での最適化により、セットC=「サンプリング+サンプル外での利益となるパラメータセット」が得られます。

集合Bは集合Cに含まれるか?私の考えでは、明らかにイエスです。なぜなら、セットBは「サンプル内とサンプル外の両方で利益をもたらすパラメータセット」を含んでおり、したがって、それらは「サンプル内で利益をもたらすパラメータセット+サンプル外」であるからです。

では、Bに比べてCでは何が冗長になっているのでしょうか。

当然ながら,Cセットの中には,サンプル内では(サンプル内だけ)儲からないが,サンプル外では復讐できるパラメータセットが存在することになる。 つまり,サンプル内では損をするが,サンプル外ではペイアウト以上に儲かるということだ。

また,集合Cの中には,サンプル内では儲かるが(サンプル内だけ),サンプル外では儲からない,つまりサンプル内では儲かるが,サンプル外では損をするパラメータの集合が存在することになります.

つまり、パススルーは、集合Cを与え、それは、集合Bに含まれない部分集合D="サンプル内でもサンプル外でも利益を生まないが、サンプル内+サンプル外では一般に利益を生むパラメータ集合 " を集めたものです。

さらに、最も厳しい(個々のプロットで収益性を尊重しなければならない)フィッティングが残っていて、サブセットD(多分、求められた子)だけが捨てられ、全くフィッティングと呼べないという議論もある。テスト期間をセグメントに分けることで、あるセグメントで不採算となるパラメータを除外することを避けることができる。 すべてのセグメントで採算が取れるようになるのである。このアプローチの論理的帰結は、各案件の収益性を個別に判断することです。このような素晴らしいパラメータが、絶対的なカーブフィッティングの悪魔によって提示されていないことを、誰が保証してくれるのだろうか。

 

EAはEAとは違う!今回紹介したテストが最も楽観的なEAがあります。

例えば、ここで失うものは何でしょう?何もない!

 
Vita:
テスト期間をセグメントに分割することで回避できるのは、いずれかのセグメントで採算の合わない結果をもたらすパラメータを除外することである。私たちが達成するのは、各インターバルにおける収益性だけです。このアプローチの論理的帰結は、各案件の収益性を個別に判断することです。このような不思議なパラメータが、絶対的なカーブフィッティングの悪魔によって提示されないことを、誰が唯一保証してくれるのだろうか。

1回目の最適化である極値の近傍をマークし、2回目の最適化でその安定性をチェックする(out-of-sample)、ということです。もちろん、将来も安定しているという保証は誰もしてくれない。しかし、業績保証がないのは、どの予想にも共通している特徴です。

もちろん、全サンプルの最適化結果を処理しても同じ情報を得ることができます。しかし、ソフトウェアの実装という点でも、カウントの時間という点でも、より時間のかかるプロセスになるように思います。

 
lna01:
Vita です。
テスト期間をセグメントに分割することで回避できるのは、いずれかのセグメントで採算の合わない結果をもたらすパラメータを除外することである。私たちが達成するのは、各インターバルにおける収益性だけです。このアプローチの論理的帰結は、各案件の収益性を個別に判断することです。このような不思議なパラメータが、絶対的なカーブフィッティングの悪魔によって提示されないことを、誰が唯一保証してくれるのだろうか。

1回目の最適化である極値の近傍をマークし、2回目の最適化でその安定性をチェックする(out-of-sample)、ということです。もちろん、将来も安定しているという保証は誰もしてくれない。しかし、業績保証がないのは、どの予想にも共通している特徴です。

--> エンド・トゥ・エンドの実行と比較して、スプリッティングは何を追加するのでしょうか?

もちろん、全サンプルの最適化結果を処理しても、同じ情報が得られます。しかし、この場合、ソフトウェアの実装とカウント時間の両面で、より多くの時間がかかると思われます。

--> 中間損失(サンプル内またはサンプル外)を与える結果を破棄することは、サンプル全体の最適化中に解決される基本的なタスクです。 つまり、最適化後の処理は必要ありません。 結果はすぐにセットBになります。 また、時間のかかるサンプル外での追加チェックも不要です。