私自身の経験から付け加えると、3ヶ月以上前のデータでモデルをトレーニングしても、方程式には何の意味もない。モデルは現在のパターンを捉え、それに集中できるものでなければならない。市場の近くにいる必要がある。
私自身の経験から付け加えると、3ヶ月以上前のデータでモデルをトレーニングしても、方程式には何の意味もない。モデルは現在のパターンをとらえ、それに集中できるものでなければならない。市場の近くにいる必要がある。
あなたの指摘はまったく正しい。私の経験でも、最近のデータを使った方が、より良い結果を出すモデルを訓練しやすいと感じます。しかし、主な問題は、このアプローチでは、非常に短い時間枠を使わない限り、トレーニングセットのサイズが制限されるということです。学術論文によると、トレンド・フォロー戦略は短い時間枠よりも長い時間枠の方がより良いパフォーマンスを発揮する。そのため、予測可能性が高いモデルを訓練するかもしれないが、訓練サンプルが少ないため、オーバーフィッティングになりやすく、元の戦略はそもそもエッジが少ない。これらの要因の間にはトレードオフがあり、スプレッドも一役買っていることは言うまでもない。
これに対する私の解決策は、古いデータを残しつつ、トレーニングセット内の最近のデータにより大きな重みを割り当てることである。こうすることで、レジーム・シフト後の新しいパターンに適応しつつ、長年一貫している古いパターンからも利益を得ることができる。 しかし、先に述べたように、こうした決定には常にトレードオフが伴う。
あなたの指摘はまったく正しい。私の経験でも、最近のデータを使った方が、より良い結果を出すモデルを訓練しやすいと感じます。しかし、主な問題は、非常に短い時間枠を使用しない限り、このアプローチではトレーニングセットのサイズが制限されるということです。学術論文によれば、トレンド・フォロー戦略は短い時間枠よりも長い時間枠の方がより良いパフォーマンスを発揮する。そのため、予測可能性が高いモデルを訓練するかもしれないが、訓練サンプルが少ないため、オーバーフィッティングになりやすく、元の戦略はそもそもエッジが少ない。これらの要因の間にはトレードオフがあり、スプレッドも一役買っていることは言うまでもない。
これに対する私の解決策は、古いデータを残しつつ、トレーニングセット内の最近のデータにより大きな重みを割り当てることである。こうすることで、レジーム・シフト後の新しいパターンに適応しつつ、長年一貫している古いパターンからも利益を得ることができる。 ただし、先に述べたように、こうした決定には常にトレードオフが伴う。
最新3ヶ月のデータを使って3ヶ月ごとにモデルを再トレーニングすれば、おそらくうまくいくだろう。このローリングモデル最適化のアイデアは、後ほど実装してみようと思います。ご提案ありがとうございました。
あなたの指示に従おうとしているのですが、詳細が不明なため、ファイルの参照やダウンロードリンクがなく、最終的な出力まで続けることができません。
これは良いプロセスのように見えるので、私はあなたが見落としているものを教えるために時間を取るでしょう。
1. FileCSV.mqhへの直接リンクがない。
2.すべての機能ハンドルの宣言
3.ファイルを作成またはダウンロードするプロセスの適切な説明。
CatOnnx.mqh
"¦CatBoost_Momentum_test.onnx"
4.catbootをpipなどを使ってインストールする方法と、pythonに必要な依存関係がインストールされていることを確認する方法への直接リンクと関連する説明。(私のためではありませんが、他の人は知っておく必要があるでしょう)
5.CB2.ipynbの説明とワークフローを読むように指示する。
全体として、これは学生があなたの記事を途中まで読んで、チュートリアルを完了し、あなたの結果を再現するための正しいプロセスを何時間も探し続けることにつながります。
全体として、私はこの記事に10点 満点中4点をつけました。
私たち全員が学び、フォローできるように、より教訓的でステップ・バイ・ステップになるように記事を編集してください。
追記
この記事を他の戦略にどのように応用できるか、ご助言いただければ幸いです!
私たちが学び、従うことができるように、より指導的でステップ・バイ・ステップになるように記事を編集してください。
追記
これを他の戦略にどのように応用できるか、ご助言いただければ幸いです!
フィードバックをありがとう。残念ながら、スペースを取りすぎると思ったので、関連記事を簡単に説明しただけに終わった。また、著作権の問題からダウンロードリンクも含めなかった。徹底的な詳細は、やはり原典から入手するのがベストだろう。とはいえ、私のpythonコードとpythonの説明書への直接リンクについては、各行にコメントを加えたものの、いくつかの丁寧な説明を見落としていたと思う。もしあなた自身の実装プロセスで具体的な障害があれば、ここで議論するか、私をチャットに追加してください。
- www.mql5.com
こんにちは。CatBoostで 遊んでいるのですが、2024年の(すべての)データで学習させたストラテジーが、(MetaTraderで)2024年のバックテストでは300%以上のリターンを出すのですが、他の年ではうまくいきません。このような経験をお持ちの方はいらっしゃいますか?直感的にはオーバーフィッティングのように感じますが、もっと低い反復回数(1kなど)でトレーニングしても同じ結果になります。
分のデータで~40~50の特徴でトレーニングしているので、1年あたり25万行くらいです。.cbmファイルサイズは反復回数の1000倍(例:1000反復=1MB、10000反復=10MBなど)になる傾向があります。メタトレーダーでのバックテストでは、バックテスターが停止するまでに10万MBが限界です。C++を使えば、任意の大きさまでバックテストできるが、メタトレーダーとC++ではリターンが大きく異なる。
分のデータで~40~50の特徴でトレーニングしているので、1年あたり25万行くらいです。.cbmファイルサイズは反復回数の1000倍(例:1000反復=1MB、10000反復=10MBなど)になる傾向があります。メタトレーダーでのバックテストでは、バックテスターが停止するまでに10万MBが限界です。C++を使えば、任意の大きさまでバックテストできるが、メタトレーダーとC++ではリターンが大きく異なる。
こんにちは。まず第一に、メタトレーダーのバックテスターはスプレッドと手数料を考慮しています。次に、私の考えでは、機械学習は本質的にオーバーフィッティングのプロセスです。アンサンブル、ドロップアウト、特徴エンジニアリングなど、オーバーフィッティングを減らす方法はたくさんある。しかし、結局のところ、サンプル内はサンプル外よりも常にずっと優れている。金融時系列の予測における機械学習の使用は、古くからある問題である。もしあなたがリターンを予測しようとしているなら(250k行ということなのでそう仮定している)、あなたと他のプレーヤーが同じ予測目的を持っているため、ノイズは予想される。この記事で紹介したのはメタラベルの手法で、予測目的が自分の戦略に絞られているためノイズは少ないが、学習するサンプル数が少なくなるため、複雑さの制約がさらに厳しくなる。私は、ML法の期待値を下げ、オーバーフィッティングを減らす方法を探ることを言いたい。
半年以上前のスレッドにこんなに早く返信してくれてありがとう。ここで考えることはたくさんある。膨大なパラメータ空間に慣れてきて、オーバーフィッティングを減らす方法を見つけようとしています。
本当にありがとう!
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「CatBoost機械学習モデルをトレンド追従戦略のフィルターとして活用する」はパブリッシュされました:
CTA(商品取引アドバイザー)戦略の開発においては、すべての戦略アイデアの背後に明確で直感的な説明があることが重要だというのが、業界で広く受け入れられている経験則です。これは、人が戦略アイデアを思いつく自然なプロセスでもあり、過学習を避ける手段としても有効です。この考え方は、機械学習モデルを用いる場合にも同様に重要です。ここでは、このアイデアの背後にある直感的な理由を説明します。
これが機能する理由
CatBoostモデルは、特徴量を入力として受け取り、それに基づいて各結果の確率を出力する決定木を構築します。このケースでは、勝ち(1)と負け(0)の二値分類問題としてモデルを訓練しています。モデルは、学習データにおける損失関数を最小化するように、決定木内の分岐ルールを調整していきます。モデルがサンプル外のデータでも一定の予測精度を示す場合、勝つ可能性が低い取引をフィルタリングするための手段として活用でき、その結果として全体的な収益性の向上につながる可能性があります。
私たちのような個人トレーダーにとって現実的な期待値は、訓練されたモデルが万能な存在となるわけではなく、あくまでランダムウォークをわずかに上回る程度の精度が得られれば十分ということです。もちろん、モデルの精度を高めるための方法は多く存在し、それについては後で触れますが、たとえ小さな改善であっても、取り組む価値のある重要な一歩となります。
作者: Zhuo Kai Chen