ローリングフォワードの実施方法 - ページ 5

 
Youri Tarshecki:
そうだ、もっと前にトピックを作るべきだったんだ--MTでの狼煙はどうあるべきなのか。どうしても手が回らないんです。ところで最近、フォーラムの先物の部分にこの話題のものがありました。
先物市場は、アナリストにとってあまり面白いものではありません。そして、ある意味正しいのです。私などは、自分のメソッドを伝えました。不完全なものだと思い、改善したいと思っているからかもしれません。ところで、あなたのやり方もなかなか明確ではありませんね。ステップバイステップで行われていること、自動オプティマイザーが行っていることを教えてください。
 
elibrarius:
方法論を伝えることで、専門家自身よりも価値のあるものを与えることができると考え、必要なことを伝えようとしない人がいます。そして、ある意味正しいのです。私などは、自分のメソッドを伝えました。不完全だと思い、改善したいと思うからでしょう。ところで、あなたのやり方もなかなか明確ではありませんね。ステップバイステップで行われていること、自動オプティマイザーが行っていることを教えてください。

ボルキングフォワードの特別な方法はありえない。段階的な チェックを 行うという至極明快な原則 であり、EAそのものがもちろん一次的な結果である。そして、チェックの原則は守られるか、守られないかのどちらかです。つまり、ボルキングフォワードかそうでないかということですね。ですから、私のやり方は絶対に古典的です。特に目新しいことはありません。(私のアイデアの中には新しいものがありますが、実現には至っていません)。

後方に最適化する-最適化されていない部分の前方を取得し評価する-前方の長さだけ前進する-前の設定で再度最適化する-など。

蓄積された集合とそれを使った一般的な実行についてのお話は、フォワードの評価の変形にすぎません(それを得るために、最適化の各ステップで前の期間に得られた集合を読み込んだと仮定します)。その方が都合がいいなら、いいんですけどね。原理が救われた主なもの

 
Youri Tarshecki:

ボルキングフォワードの特別な方法はありえない。段階的な チェックを 行うという至極明快な原則 であり、EAそのものがもちろん一次的な結果である。そして、チェックの原則は守られるか、守られないかのどちらかです。つまり、ボルキングフォワードかそうでないかということですね。ですから、私のやり方は絶対に古典的です。新しいことは何もありません。

後方に最適化する→最適化されていない部分の前方を取得し評価する→前方の長さ分前進する→前方の設定で再度最適化する→などです。

蓄積された集合とそれを使った一般的な実行についてのお話は、フォワードの評価の変形にすぎません(それを得るために、最適化の各ステップで前の期間に得られた集合を読み込んだと仮定します)。その方が都合がいいなら、いいんですけどね。要は、原則を守ることです。

方法論は同じ、同感です。

また、バックテストで10,000以上の選択肢の中から1つの結果を選択するのはどうでしょうか?最大限の利益で?あるいは、あるドローダウンレベルでの最大利益で(私はドローダウン<20%で選択)。あるいは別の選別方法?

結果を選択する基準 - 全セクターに1つ?(であるべきだと思う)それとも違うのか?

 
elibrarius:

方法論は同じ、同感です。

また、バックテストで1万以上の選択肢の中から唯一の結果を選ぶというのはどうでしょうか。最大限の利益で?または、あるドローダウンレベルの最大利益で(私はドローダウン<20%で選択)。それとも別の方法で選別しているのでしょうか?

結果を選択する基準 - 全セクターに1つ?(であるべきだと思う)それとも違うのか?

もう言ったでしょー、フォワードが全部判断するんだよー(笑)人の言葉を鵜呑みにせず、自分ですべて確認しましょう。

フォワードの数だけバックがあり、前のバックのセットが新しいバックのスタートとなることです。

 
elibrarius:

方法論は同じ、同感です。

バックテストで10000以上の選択肢から1つの結果を選択するのはどうでしょうか?最大限の利益で?あるいは、ある程度のドローダウンを伴う最大利益で(私はドローダウン<20%で選択しています)。それとも別の方法で選別しているのでしょうか?

結果を選択する基準 - 全セクターに1つ?(であるべきだと思う)それとも違うのか?


インターフェイスを含めた感想です。

では、まず最初に。WF最適化は質問に答えます:もし私がEAをN日ごとに再最適化し、(ある基準/ルール/フィットネス関数に基づいて)最良の結果を選択したら、M日の取引期間にどのように影響するでしょうか?(説より抜粋)

つまり、専門家である開発者が実験的に決定しているのです。
1.カスタム基準(Expert Advisorに組み込まれている) - 開発者の裁量で - 議論のための広いフィールド(これは<20%のあなたのドローダウンに相対的である)。
2.期間N(In Sample For Window)およびM(Out Of Sample For Window)。そして、前期の何らかの基準に基づいてNとMを変化させることは、興味深い研究分野である。
3.最適化されるシステムのパラメータ
4.最適化を行うパラメータ値の範囲(プログラムで制限することも可能です。)

つまり、これは取引に対する特別なアプローチを持つExpert Advisorの別クラスであることは明らかです。このようなExpert Advisorは、(おそらく)1つのパラメータセットで過去1年間でさえ、履歴上で有益な取引を示すことができず、1ヶ月後には履歴上で失敗することになります。

この4項目が 実装されていない他のExpert AdvisorでもWFは必要なのでしょうか?違うと思います。

つまり、プログラマーが推奨するシナリオに沿ってExpert Advisorを確認したい場合、リストで「トレードモード」を選択するとよいでしょう。


なぜトレードモードなのか?なぜなら、最終的には指定した箇所で過剰最適化し、Custom Max基準で最適なものを選び、各ステップで定義されたパラメータ値で取引するという戦略で取引をエミュレートしているからです。

それだけです。その他の設定は行わないでください。しかし、開発者にプログラム的なインターフェイスを提供する。

- WalkForwardが選択されていると判断するため
- 期間NとMの長さを設定する


 
Igor Volodin:

インターフェイスを含めた感想です。

では、まず最初に。WF最適化は質問に答えます:もし私がN日ごとにEAを再最適化し、(ある基準/ルール/フィットネス関数に基づいて)最良の結果を選択するとしたら、M日の取引期間にどのような影響を与えるでしょうか?(説より抜粋)

Expert Advisorの開発者は、経験によって決定します。
1.カスタム基準(Expert Advisorに組み込み) - 開発者の裁量で - 議論のための広いフィールド(これは<20%のドローダウンと相対的なものです)。
2.期間N(In Sample For Window)およびM(Out Of Sample For Window)。そして、前期の何らかの基準に基づいてNとMを変化させることは、興味深い研究分野である。
3.最適化されるシステムのパラメータ
4.最適化を行うパラメータ値の範囲(プログラムで制限することも可能です。)

つまり、これは取引に対する特別なアプローチを持つExpert Advisorの別クラスであることは明らかです。このようなExpert Advisorは、(おそらく)1つのパラメータセットで過去1年間でさえ、履歴上で有益な取引を示すことができず、1ヶ月後には履歴上で失敗することになります。

この4項目が 実装されていない他のExpert AdvisorでもWFは必要なのでしょうか?違うと思います。

つまり、プログラマーが推奨するシナリオに沿ってExpert Advisorを確認したい場合、リストで「トレードモード」を選択するとよいでしょう。


なぜトレードモードなのか?なぜなら、最終的には指定した箇所で過剰最適化し、Custom Max基準で最適なものを選び、各ステップで定義されたパラメータ値で取引するという戦略で取引をエミュレートしているからです。

それだけです。その他の設定は行わないでください。しかし、開発者のためにプログラムのインターフェースを提供する。

- WalkForwardが選択されていると判断するため
- 期間NとMの長さを設定する


ノスタルジー、どこまで複雑化するか
 

技術的には、解析のために、フレームを前後に移動するたびに情報を収集し、フレーム内の歩数に関する情報を追加することができます。
しかし、ステップ番号を入力する必要はなく、間接的に、新しい歩行ステップのデータを持つフレームの到着を解析パスで行うことができる。

static int step = 0;
static bool lastState = 0; //0 - бэк, 1 - форвард
while(FrameNext(pass,name,id,value,data)) {
   bool is_forward = CheckPass(step, pass); //проверим pass в пуле для step шага
   if (!is_forward) {
     AddPass(step, pass); //добавим pass в пул
     if (lastState == 1) {
        //первый фрейм от нового walk-step'а
        step++;
        lastState = 0;   
     }
     
     //обработка бэка с учетом значения step
   } else {
     lastState = 1;

     //обработка форварда с учетом step'а
   }

}//endwhile
ドキュメントには、テスターでウォークフォワードモードのフレームの保存と可視化の例を追加できますし、kodobaseには、あなたの目的に合わせて修正できる簡単なバリエーションがあると思います。
 
Igor Volodin:


Expert Advisorの開発者は、経験によって決定します。
1.カスタム基準(Expert Advisorに組み込み) - 開発者の裁量で - 議論のための広いフィールド(これは、ドローダウン<20%のあなたのExpert Advisorのためのものです。)
2.期間N(In Sample For Window)およびM(Out Of Sample For Window)。そして、前期の何らかの基準に基づいてNとMを変化させることは、興味深い研究分野である。
3.最適化されるシステムのパラメータ
4.最適化を行うパラメータ値の範囲(プログラムによる制限も可能)

つまり、これはExpert Advisorの別のクラスであり、取引への特別なアプローチであることは明らかです。このようなExpert Advisorは、(おそらく)1つのパラメータセットで過去1年間でさえ履歴上で有益な取引を示すことができず、1ヶ月で履歴上で損をすることになるでしょう。

この4項目が 実装されていない他のExpert AdvisorでもWFは必要なのでしょうか?そんなことはないだろう。

1.テスターにはすでに最適化の基準が含まれているのに、なぜExpert Advisorにそれを「詰め込む」のでしょうか?

バックとフォワードの変化や比率もフォワードのチェック対象です。もし、フォワードレシオの方が良いということになれば、それを使ってさらに分析を進めていく予定です。

3 最適化のためのパラメータは、ユーザー変数です。テストの対象となるのは、コードそのものです。

4.変数の範囲 - プログラムで検索することもできますが、微妙な点が多くあります - 今のところ、手動で行う方がはるかに安全で簡単です。そして、これは最適化の問題であって、ボルキングフォワードの問題ではありません。

なぜ、専門家とは別のクラスであることが明らかなのでしょうか。過剰最適化や過剰トレーニングのないALL EAが排出されるので、このクラスはALL EAを含むと思います。フォワードは、このような事態の早さを示しているのです。

 
Igor Volodin:

インターフェイスを含めた感想です。

では、まず最初に。WF最適化は質問に答えます:もし私がN日ごとにEAを再最適化し、(ある基準/ルール/フィットネス関数に基づいて)最良の結果を選択するとしたら、M日の取引期間にどのような影響を与えるでしょうか?(説より抜粋)

つまり、Expert Advisorの開発者は、以下のことを実験的に決定します。
1.カスタム基準(Expert Advisorに組み込まれている)-開発者の裁量で-議論のための広いフィールド(これはあなたのドローダウン<20%に相対的である)。
2.期間N(In Sample For Window)およびM(Out Of Sample For Window)。そして、前期の何らかの基準に基づいてNとMを変化させることは、興味深い研究分野である。
3.最適化されるシステムのパラメータ
4.最適化を行うパラメータ値の範囲(プログラムによる制限可能)

つまり、これは取引に対する特別なアプローチを持つExpert Advisorの別クラスであることは明らかです。このようなExpert Advisorは、(おそらく)1つのパラメータセットで過去1年間でさえ、履歴上で有益な取引を示すことができず、1ヶ月後には履歴上で失敗することになります。

この4項目が 実装されていない他のExpert AdvisorでもWFは必要なのでしょうか?違うと思います。

つまり、プログラマーが推奨するシナリオに沿ってExpert Advisorを確認したい場合、リストで「トレードモード」を選択するとよいでしょう。


なぜトレードモードなのか?なぜなら、最終的には指定した箇所で過剰最適化し、Custom Max基準で最適なものを選び、各ステップで定義されたパラメータ値で取引するという戦略で取引をエミュレートしているからです。

それだけです。その他の設定は行わないでください。しかし、開発者のためにプログラム的なインターフェイスを提供する。

- WalkForwardが選択されていると判断するため
- 期間NとMの長さを設定する


サードパーティーのツールを使ってWFを解析し、MQを見せてテスターに組み込んでもらうのが一番だと思います。

でも、何か難しそうな気がします。私などは、データベースを持たないので、決心がつきません。単純計算で
1回の最適化で10000行以上を生成
+ フォワード1パス - さらに10000行以上
=20000行以上
* 例えば、12年セグメントで、月次の過剰最適化を行う。

=24万行

フレームからバランスカーブ、エクイティカーブの全案件のデータを追加すると、スキャルピングの場合、分析用のデータ量は数十倍、数百倍、数千倍になります。また、よりリソースを消費しない方法として、株式と残高のデータを取引の都度ではなく、例えば1日1回保存する方法もあります。Expert Advisorの曲線の傾きを計算する、つまり一つの数値を求め、それを最適化のためのCustom parameter calculationに入力したのです。もちろん、カーブ(1日ごと、1取引ごと)ほどの情報量はない。

まだやっていませんが、レベルによるフィルター(例:ドローダウン<20%)+ソート(最大利益)を導入する可能性が高いです。フィルターは複数あるようです。

ターミナルでは、ファイルと配列しか操作できないので、SQLクエリよりはるかに手間がかかる。

もちろん、MT5システムにDBを付けることは可能です。しかし、一般的なユーザーには非常に難しいため、スケーラブルなソリューションにはならないでしょう。私のサイトでは、データベースのフォームから前後のファイルをロードし、その後、分析を行うという方法をとっています。

また、MT5でブラウザのようにテーブルを出力する可能性を見たことがありません。問題点も出てくると思います。

一般的には、MT5でWFはありえないのではと思うのですが。

 
Youri Tarshecki:

1.最適化基準はテスターに既に存在し、なぜExpert Advisorに追加する必要があるのでしょうか。

ウォーク・ステップに最適なセットを(自動的に)特定するために、これらの基準で十分だとお考えでしょうか?結局、elibrariusは このスレッドで、どの基準が良いのか、誰が何を使っているのか、という質問をしていただけなのです。これは、ウォーク・ステップで作業するための最適なセットを研究し選択するための非常に広い分野です。 さらに、取引への異なるアプローチは、おそらく異なる基準を必要とするでしょう、どこかでドローダウンが非常に重要で、どこかで取引回数が重要で、どこかで最終的な利益が重要です。

さらに、私のリストとの差はありません。

なぜExpert Advisorの別クラスであることが明らかなのでしょうか。過剰最適化や過剰トレーニングのないEAはすべて失敗するので、このクラスはすべてのEAを含むと思います。フォワードは、その速さを示しているだけです。

開発者は、EAがこのモードで動作することを宣言し、コードにWFのサポートを実装しています。そして、EAが失敗し始めたときだけでなく、再最適化する。

そして、テスターのインターフェイスでNとMを設定することはできません - 私が提案したのは、プログラムによるものです。あなたはそれがすべてのテスターのインターフェイスで設定を行うためにどのように明確であり、彼らはその後、すでに固定されます参照してください場合は - NとMの期間は、ユーザーによって入力されます(あなたの"変更と前方に戻るの比率 - これは前方にチェックの対象です"が動作しません)、あなたのバージョンを提案します。