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

 
elibrarius:

列車内やテスト内で混ぜることはできますが、意味がありませんし、列車とテストの間で混ぜることはできません。ひょっとして混ぜていないのでは?と思うくらい、試験付きのテストとしては非常に良い結果でした。

混ぜてないのに、テストサンプルの結果がイマイチ - Recallが小さい。

しかし、サンプルの終わりに向かって減少していくのではなく、安定したパターンであると信じるならば、シャッフルは問題ないでしょう。ちょうどここでファイルがループの助けを借りて形作られた可能性があり、いくつかのパラメータが調査領域に入らなかっただけなのです。

 
Aleksey Vyazmikin:

混ぜてないのに、テストサンプルの結果がイマイチ ・Recallが小さい。

しかし、サンプルが終了するまでにパターンが減少せず、安定していると考えれば、ミキシングは十分に可能です。ファイルはループで形作られ、一部のパラメータがテスト領域に入らなかっただけかもしれません。

混ぜると、すぐにテストが良くなる--隣接するバーによって、のぞき見ができるようになるのです。例えば、あるバー(10:00)がトレースに入り、隣のバー(10:01)がテストに入りますが、前のバーもターゲットも互いに非常によく似ています。
 
elibrarius:
混ぜるなら、テストはすぐに改善されます - 隣のバーで、のぞき見があります。つまり、あるバー(10:00)がトレースにあり、隣のバー(10:01)がテストにあり、過去のものも対象のものも互いに非常によく似ている。

サンプルのバーは交代制ですか?私は単純にすべてのバーでトレーニングするわけではなく、シグナルを取るだけですが、その場合、サンプルを混ぜることは可能だと考えています。

 
Aleksey Vyazmikin:

サンプルのバーは1本ずつあるのでしょうか?

すでに削除 しましたので、ご自身でご確認ください。CSVファイルを生成するには、1つ1つ丁寧に行うことが最も理にかなった方法だと思います。

 
elibrarius:

すでに削除 しましたので、ご自身でご確認ください。1枚ずつCSVファイルを生成するのが一番合理的だと思います。

何かがある......それが何なのかはわからない。

 2 6 0 4 2 6 57 57 100 100 -1
4 2 6 0 4 2 6 57 57 100 200 -1
4 2 6 0 4 2 6 57 57 100 300 -1
4 2 6 0 4 2 6 57 57 100 400 -1
4 2 6 0 4 2 6 57 57 100 500 -1
4 2 6 0 4 2 6 57 57 100 600 -1
4 2 6 0 4 2 6 57 57 100 700 -1
4 2 6 0 4 2 6 57 57 100 800 -1
4 2 6 0 4 2 6 57 57 100 900 -1
4 2 6 0 4 2 6 57 57 100 1000 -1
4 2 6 0 4 2 6 57 57 100 1100 -1
4 2 6 0 4 2 6 57 57 100 1200 -1
4 2 6 0 4 2 6 57 57 100 1300 -1
4 2 6 0 4 2 6 57 57 100 1400 -1
4 2 6 0 4 2 6 57 57 100 1500 -1
4 2 6 0 4 2 6 57 57 100 1600 -1
4 2 6 0 4 2 6 57 57 100 1700 -1
4 2 6 0 4 2 6 57 57 100 1800 -1
4 2 6 0 4 2 6 57 57 100 1900 -1
4 2 6 0 4 2 6 57 57 100 2000 -1
4 2 6 0 4 2 6 57 57 100 2100 -1
4 2 6 0 4 2 6 57 57 100 2200 -1
4 2 6 0 4 2 6 57 57 100 2300 -1
4 2 6 0 4 2 6 57 57 100 2400 -1
4 2 6 0 4 2 6 57 57 100 2500 -1
 
Aleksey Vyazmikin:

そこに何かがある--それが何なのかはわからない。

ファイルの持ち主からの返信を待っています。
 
elibrarius:
ファイルホストからの返事を待っているところです。

ちなみに、1%のサンプルでC4.5ツリーを学習させたところ、学習サンプルとテストサンプルで100%の認識が得られたので、シャッフルが必要な順序付きループのことだと思われます。しかし、私はMQL5で良い混合アルゴリズムを持っていません - 私はちょうどテストとコントロールの両方のサンプルからn行を引き出し、したがってテストサンプルを形成することができます - そして私はクラスのバランスで再びいくつかの運を持って、ループはここで良いことはないだろう。

 
Aleksey Vyazmikin:

ただ、私はすべてのバーでトレーニングするわけではなく、シグナルを取るだけなので、その場合、 サンプルを混ぜることは可能 だと思います。サンプルを増やすことなくトレーニングする情報量が増え、私のデータによると、試験サンプルが改善されるようです。

できるかもしれませんが、未来の一部を軌道に投じることは、実際の取引ではできないと思います。トレーニングでも現実でも、未来は未知数であるように。
テストと試験と、ずっと良くなったり悪くなったりを繰り返さなければならない。これが普通です。要は、プラスアルファの部分です。
クロスバリデーション(内蔵されている場合もあります)を使用するか、ロールフォワードを使用するとよいでしょう。

 
Aleksey Vyazmikin:

ちなみに、1%のサンプルでC4.5ツリーを学習させたところ、学習サンプルとテストサンプルで100%の認識が得られたので、シャッフルが必要な順序付きループが原因だと思われます。しかし、MQL5には良いミキシングアルゴリズムがないので、テストサンプルとコントロールサンプルの両方からn行ずつ引っ張ってきて、テストサンプルを形成してしまうかもしれません。

これならMSGをうまく混ぜても大丈夫 https://www.mql5.com/ru/blogs/post/735953
Rand 0 ... Max Int с равномерным распределением
Rand 0 ... Max Int с равномерным распределением
  • www.mql5.com
Потребовалась функция ГСЧ с гнерацией числа Int от 0 до любого значения. Получилась такая функция. Думаю распределение получилось равномерным. На форуме посоветовали другую функцию из статьи. Отбросив лишнее, получилось: Сделал сравнение по скорости обоих функций, оригинальной из статьи и просто MathRand(): Оригинальная из статьи Rnd.Rand_01...
 
elibrarius:

できるかもしれませんが、未来の一部をトレーニーに投げてはいけないと思います、実際のトレーディングでは無理です。現実と同じように、トレーニングでも未来は未知数であるように。
テストと試験と、ずっと良くなったり悪くなったりを繰り返さなければならない。これが普通です。要は、プラスアルファの部分です。
クロスバリデーション(組み込みのものがあるかもしれません)、あるいはさらに良いのは、バレディクトリアンフォワードを使うことです。

それをしないで、マキシムのように末端から学習していくと、非常に古いデータから学習することになり、よくない。試験サンプルには触れないが、トレーニングやコントロールのサンプルは、触れることができると思う。そして、安定した性能が得られたら、基本モデルの設定を知った上で、実生活に応用できるよう、よりエッジに近い学習ができるようになります。

クロスバリデーションではうまくいっていません。そこは自動化する必要があるのですが、まだ手をつけていないんです。

しかし、ニブルテストは、そうです、これは正しいアプローチなのですが、常に歴史が私にとっては欠落しているのです。

elibrarius:
これなら混ぜても大丈夫 https://www.mql5.com/ru/blogs/post/735953

ところで、繰り返しのない配列からランダムに数字を生成するようなジェネレータを見たことがありますか?

理由: