トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 361

削除済み  
サンサニッチ・フォメンコ

トレーニング、再トレーニング、オーバートレーニングは、根本的に違うものです。

新しいバーのたびにこのようなトレーニングが行われ、このフォーラムやTA内でも一般的に咀嚼されます。

オーバートレーニング(過適合)との戦いにおいて、私は2つの方法を知っています。

1. 予測変数の集合をターゲット変数に関係しない予測変数からクリーニングする - 予測変数の入力集合のノイズからクリーニングする。このスレッドの最初の100投稿で詳しく説明されています。

2. ノイズから除去された予測変数のセットを持って、トレーニングサンプルでモデルのフィットを開始し、次に1つのファイルからのランダムなサンプルであるテストと検証のサンプルでフィットを開始します。3つのセットの誤差は、ほぼ同じになるはずです。

3.そして、先ほどとは別のファイルを取り出して、その上でモデルを走らせます。今回も前回と同じ程度の誤差になるはずです。

4.これらのチェックを定期的に行っていれば、最初の3つのステップでモデルのパラメータとしてスランプが発生し、それを超えるとモデルが機能しなくなり、すべてをやり直すことになるので、「20%のスランプは再トレーニングのシグナル」という質問はまったく出なくなります。


まあ、これはすべて一般的なケースです、はい。そして、それぞれのケースで、それぞれのTSにもっと働きかける必要があります。そして、よく訓練されたとき、再教育されたとき、そして期間があるときに、理解が得られるのです。例えば、売買比率がほぼ同じであること、学習サンプルがアップトレンド、ダウントレンド、フラットを含んでいること、そうでなければ一方通行の抽選となることです。この場合、重要なのは「オーバートレーニング」にならないようにすることです :)

また、季節要因、危機要因、その他様々な規則性を考慮する必要があります。

 
サンサニッチ・フォメンコ

1. ターゲット変数に無関係な予測変数から予測変数集合をクリーニングする - 入力予測変数集合からノイズをクリーンアップする。このスレッドの最初の100ほどの投稿で、この問題は非常に詳細に議論されました

最終的にどのような解決策が出てきたかというと、出力コマンドに関係のない予測因子をどのように特定するかということです。
 
エリブラリウス
最終的な解決策、つまり出力コマンドに関係ない予測因子を定義する方法とは何だったのでしょうか?
どうやって?- すべては仕様次第です。簡単な問題を解決するのに2日かかりました。これで解決は明らかなようだ))
 
ユーリイ・アサウレンコ
どうやって?- すべては仕様次第です。簡単な問題を解決するのに2日もかかってしまった。これで解決は明らかなようです))。
一般的、普遍的な原則もあるのでしょうね?具体的な事例を知ることができるのも面白いですね。
 
エリブラリウス
一般的、普遍的な原則もあるのでしょうね?なるほど、あなたの特殊な例も興味深いですね。

私のブログで調べてみてください。

原理は、そう、普遍的なものです。しかし、一般的な解決策はありません。一部のクラスのタスクを除く。

 

これまでの100ページのまとめ :)

Neuronicsをはじめとするほとんどすべての普及モデルは、人工知能から非常に遠いところにあります。そのような学習精度を達成する予測値の組み合わせを見つけ、将来の予測では過去の結果を補間(あるいは外挿)して新しい予測を得るというようなことをすればよい。

つまり、例えばMa、Rci、Stochasticを予測変数とし、ジグザグ反転を学習目標としてニューラルネットワークを学習させると、ニューラルネットワークに対して「この3つの予測変数は反転を予測できますよ」と言うことになります。また、ニューラルネットワーク自体も、これらの予測変数が本当に適合しているかどうかは分からない。これらのデータを許容できる精度で記憶し、取引においては、反転前にMa、Rci、ストキャスティックの同じ組み合わせが保存されることを期待することになります。でも、そうならないから失敗する。

無駄な予測変数に基づくモデルは、gbmであろうとニューロンであろうと回帰であろうと失敗します。ランダムな系列を生成して予測因子として使うこともでき、ニューロニックはその中から繰り返される組み合わせを見つけ出し、記憶することができます。
予測変数の選択や学習の目的など、他のツールを使って行うのは人間のデータマイニング担当者の仕事である。そして、モデル(ニューロン)のトレーニングは、ごく小さな最終段階である。

予測器は、過去と未来の両方の学習データにおいて、ターゲットとの相関を保つ必要がある。そのため、SanSanychは、発見された依存関係が新しいデータによって消滅しないことを確認するために、異なるファイルでモデルをテストすることについて述べています。
つまり、予測因子とターゲットを綿密に調査・収集し、モデルを訓練し、テストする。そして、そのモデルに対して、全く新しいデータでテストを行います。両者の予測精度が一致しない場合、予測因子またはターゲットが適切でないと考えられます。他を探した方がいい。


SanSanych Fomenko:

NSは非定常な系列を予測できるのか?もしそうなら、どのような種類の非定常性があるのか?

私の考えでは、ニューロニクスは、価格を用いて非定常な時系列を 予測する作業には全く向いていません。価格の動きは常に変化し、時間外になるとパターンが見つからなくなり、すべてが混沌としています。そして、誰かがニューロニュークルを手に取り、数ヶ月間値段をつけ、その間に繰り返される依存関係を見つけるよう依頼するのです。しかし、依存関係が繰り返されることはなく、神経細胞が見つけて記憶できることは、100%ランダムな偶然に過ぎないでしょう。

もし、ニューロンを使うのであれば、加工された価格(純粋なohlcではない)だけを与えるべきで、例えば、指標を与えるべきです。

 

まとめありがとうございます!100ページ読む気にはなりませんでしたが...)

例えば、3つのPCの組み合わせによる予測変数の手動選択のプロセスは、非常に長い時間がかかります。MT5では、38種類のテクニカル指標が標準装備されています。3の組み合わせ-膨大な数。さらに、期間、価格の種類、その他の入力パラメータを選択する必要があります。さらに、標準的でない面白い指標を加えれば、テストの数はさらに増えるでしょう。

そのため、指標の自動推定を模索する必要があります。Vladimir Perervenko氏の 記事には、2つの共通した方法が書かれています。

1) 相関性の高い変数の除去 - Rで実装されています。

2) 最も重要な変数の選択 - Rでも解ける。

私はまだMT5で直接書いているのですが、もしかしたらこれらの質問に対する解答が用意されているかもしれません。あるいは、少なくとも簡易版でRからMT5へ解答を転送する方法・・・?

指標の相関を見るなら、単純に各指標のペアの差を探す→各バーごとにまとめる→バーの数で割る、です。(それとも別の方法?)

最も重要なものについては、まだ完全には解決していませんが......。

もしかしたら、他にも予測値をクリアする方法があるのでは?

 
エリブラリウス

しかし、私はまだMT5で直接書いているので、もしかしたら、これらの問題に対する解決策がすでに用意されているかもしれません。あるいは、少なくとも簡易版でRからMT5へ解答を転送する方法・・・?

MQLで一気に書くには、しかしRに頼るのはNG。R でストラテジーを開発し、このライブラリhttps://www.mql5.com/ru/code/17468 を使って Expert Advisor から R のコードを呼び出し、テスターでテストするのが簡単です。
多くの場合、作成中やテスト中に多くの削除や変更、パッケージやモデルの変更などが発生しますが、R自体ですべて変更しテストする方が簡単です。

最後に、このコードが気に入り、すべてがうまくいくようになったら、手作業でmqlに移植してみるとよいでしょう。
Rで使われている多くのパッケージは、実はC/C++で書かれており、標準的なパッケージのソースコードはこちらで見ることができますhttps://cran.r-project.org/web/packages/available_packages_by_name.html,

 
Dr.トレーダー

これまでの100ページのまとめ :)

Neuronicsをはじめとするほとんどすべての普及モデルは、人工知能から非常に遠いところにあります。そのような学習精度を達成する予測値の組み合わせを見つけ、将来の予測では過去の結果を補間(あるいは外挿)して新しい予測を得るというようなことをすればよい。

つまり、例えばMa、Rci、Stochasticを予測変数とし、ジグザグ反転を学習目標としてニューラルネットワークを学習させると、ニューラルネットワークに対して「この3つの予測変数は反転を予測できますよ」と言うことになります。また、ニューラルネットワーク自体も、この予測変数が本当に適合しているかどうかを把握することはできないでしょう。これらのデータを許容できる精度で記憶し、取引においては、反転前にMa、Rci、ストキャスティックの同じ組み合わせが保存されることを期待することになります。でも、そうならないから失敗する。

役に立たない予測因子で訓練されたモデルは、gbmであれ、ニューロニックであれ、回帰であれ、失敗するのです。ランダムな系列を生成し、それを予測因子として使うこともできます。ニューロニックは、その中から繰り返しの組み合わせを見つけ出し、それを記憶するのです。
予測変数の選択や学習の目的など、他のツールを使って行うのは人間のデータマイニング担当者の仕事である。そして、モデル(ニューロン)のトレーニングは、ごく小さな最終段階である。

予測器は、過去と未来の両方の学習データにおいて、ターゲットとの相関を保つ必要がある。そのため、SanSanychは、発見された依存関係が新しいデータによって消滅しないことを確認するために、異なるファイルでモデルをテストすることについて述べています。
つまり、予測因子とターゲットを綿密に調査・収集し、モデルを訓練し、テストする。そして、そのモデルに対して、全く新しいデータでテストを行います。両者の予測精度が一致しない場合、予測因子またはターゲットが適切でないと考えられます。もう一台探そうか。


私の考えでは、ニューロニクスは非定常な時系列を予測するのには適していません。価格の動きは常に変化し、時間外になるとパターンが見つからなくなり、すべてが混沌としています。そして、誰かがニューロニュークルを手に取り、数ヶ月間値段をつけ、その間に繰り返される依存関係を見つけるよう依頼するのです。しかし、依存関係が繰り返されることはなく、神経細胞が見つけて記憶できることは、100%ランダムな偶然に過ぎないでしょう。

もし、ニューロンを使うなら、処理された価格(純粋なohlcではない)、例えば指標だけを与えることができます。

問題は、ニューロニクスそのものでも、市場に適用されるものでもない。問題は、DMツールに入力される内容です。そして、裸の価格を入力として使用するのは、純粋に狂気の沙汰です。

問題は、CCが言うところのプレディクター(予測因子)です。つまり、非定常な系列をどのように定常と表現するかが問題なのである。この問題を解決するために最も近いところにいる人が、最高なのです。

 
Dr.トレーダー

全てをMQLで書き、同時にRに頼るのは最適解とは言えません。R でストラテジーを開発し、このライブラリhttps://www.mql5.com/ru/code/17468 を使って、Expert Advisor から R のコードを呼び出し、Strategy Tester でテストするのが簡単です。
多くの場合、作成中やテスト中に多くの削除や変更、パッケージやモデルの変更などが行われますが、R自体ですべて変更しテストする方が簡単です。

最後に、このコードが気に入り、すべてがうまくいくようになったら、手作業でmqlに移植してみるとよいでしょう。
Rで使われている多くのパッケージは、実はC/C++で書かれており、標準的なパッケージのソースコードはこちらで見ることができますhttps://cran.r-project.org/web/packages/available_packages_by_name.html,

複雑なんです...。上記のK-correlationのように)アルゴリズムを理解して書くよりも時間がかかると思います。すべての入力を試し、相関を計算し、相関の高いものを選別する機能は、2〜3時間かかると思います。

予測因子を選別するための他のソリューションも同じように簡単に使えるようになるといいですね)。

では、不要な予測因子を見つけるための他の解決策はあるのでしょうか?