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

 
アンドレイ・ディク
いつまで?

記事中の御社のコードは、すでに発見されたポイントでの売買をシミュレートするのに適しており、それを使うのがちょうどいいということだと理解しています。) それは素晴らしいことです。

まあ、機械稼働の数日後(あるいは1週間後)にはとしましょう。ある程度予測可能な期間とでも言いましょうか。

 
アレクセイ・ブルナコフ

記事中の御社のコードは、すでに発見されたポイントでの売買をシミュレートするのに適しており、それを使うのがちょうどいいということだと理解しています。) それは素晴らしいことです。

まあ、機械稼働の2、3日後としましょうか。

アルゴリズム自体は動作するので、(よほどこだわりがない限り)追加作業は必要ありません。一方、理想的なzzを持つコード断片は、多少の追加作業で取引シミュレーションとして利用することが可能です。

2、3日以内に?- いや、もっと早く、数時間、数分で良い結果が得られると思うんです。記事中では、検索は数秒といったところですが、バーが100本ありました。もちろん、あなたの場合はもっと時間がかかるかもしれません。指定された精度で結果が得られ、かつ制限時間を守ることができるように、実験的にエポック数を推定することができます。

 
アンドレイ・ディク

アルゴリズム自体は動作するので、(よほどこだわりがない限り)多少の微調整は必要ないのですが、完璧なzzを持つコード部分は、原理的に多少の微調整でトレードシミュレーションとして使用することができます。

2、3日以内に?- いや、もっと早く、数時間、数分で良い結果が得られると思うんです。記事中では、検索は数秒といったところですが、バーが100本ありました。もちろん、あなたの場合はもっと時間がかかるかもしれません。エポック数を実験的に調整することで、目的の精度で結果を得ることができ、時間的な要求を満たすことができます。

だからありがとうございます。試してみます。全履歴の分単位バーの入力を生成したい。そして、実験に投入する。

いい仕事をしましたね。そして、理想的なエントリーが必ずしもZZロジックと一致しないことは、自明でない重要な結論です。

 
Alexey Burnakov:

なるほど。ありがとうございます。試してみます。全履歴の分単位のバーの入力を生成したいのですが。そして、実験に投入する。

いい仕事をしましたね。そして、理想的な入力が必ずしもZZロジックと一致しないことは、自明ではない重要な結論である。

そして、ありがとうございました。太字に注目する人は、なぜか少なかった...。

付け足しておきます。記事では、機器の平均スプレッドを考慮してPPIを最適化して いますが、今となっては、最適化はスプレッドなしで行い、テストパス時にスプレッドを考慮する必要があるのではと思うようになりました。

 
アンドレイ・ディク

こちらこそ、ありがとうございました。太字に注目する人は、なぜか少ない...。

付け足しておきます。この記事では、商品の平均スプレッドを考慮してWPIを最適化していますが、今となっては、最適化はスプレッドなしで行い、テストトレードの実行はスプレッドありで行うべきだと思うようになりました。

すべてのバーで」最適化するためには、もちろんスプレッドを考慮する必要があります。そうでない場合は、すべてのバーで次の始値の 方向に取引が実行されます。スプレッドによってタスクが非線形化され、最適なディール構成が定義される。
 
Alexey Burnakov:

後で見るLSTM。

とりあえず、私と同僚のテストでは、R^2 0.2に到達しました。完全連結層における数個の畳み込みフィルタと数個のニューロン。そこには、再発は必要ないという考え方があります。必要なのは、特徴を正しく抽出することです。

これまでの結果は、私の問題では以下の通りです(テストセットでのR^2スコアは全て)。

ARIMA: 0.14

MLP(完全連結型NN):0.12~0.15

GBM: 0.1

畳み込み網(単純、あまり発達していない):少なくとも0.2

このように、依存関係のシミュレーションは、確かにそれほど単純ではなく、一般的な方法では失敗することが判明しています。畳み込みネットワークを 改良していきます。

もし、どなたかお時間があれば、(何らかのリカレントネットワークを使って)この問題を解いてみて、その結果を共有してください。

 
アレクセイ・ブルナコフ

今のところ、私の問題に対する結果は以下の通りです(すべてテストセットでのR^2推定値)。

ARIMA: 0.14

MLP(完全連結型NN):0.12〜0.15

GBM: 0.1

畳み込み網(単純、あまり発達していない):少なくとも0.2

このように、依存関係のシミュレーションは、確かにそれほど単純ではなく、一般的な方法では失敗することが判明しています。畳み込みネットワークを改良していきます。

もし、この問題を解決する時間がある人がいたら、(何らかのリカレントネットワークを使って)その結果を教えてください。

また、自分の問題にも取り組みました。また、完全連結層を上に載せた畳み込みNSも使いました。

テストのR^ 2で一番いい結果が出たのは0.23 でした。

天井のようです。ネットワークの複雑さを増やしても、もう何も得られないのです。しかし、ネットワークの出力は完璧ではありません。これは、モデルに対する応答のドットプロットです。狭い傾斜の雲が予想されます。実際、複雑な応答関数はネットワークで完全にモデル化されていない(ジャンプが認識されていない)ことがわかる。ネットワークが生み出す機能は、私がレイアウトしたものよりもずっとスムーズです。


NSに詳しい方なら、このような複雑な関数をどのようにモデル化すればよいか、何かお考えがあるのではないでしょうか(例)。

層数を増やす、ニューロン?

実際、入力変数を準備することなく、すべての一般的な方法が統合されました。コンバートは本当に必要な特徴を抽出できる可能性があり(積分、微分、非線形平滑化)、NSはすでにそこから正常に学習している。それがコンボリューションの力です。

ちなみに、ペレヴェンコ氏は、ニューラルネットワークに関する記事の中で、この種のネットワークについては何も言っていない。さて、全記事の中で言及されているのは1つだけでした。そして、時系列への適用性の問題を(思慮深く)明らかにすることが可能でしょう。

アレクセイ

 

あなたが、最も重要なのは、より多くのインプットをすることです。

トレーニング例も。

 
ヴァディム・シシュキン

あなたが、最も重要なのは、より多くのインプットをすることです。

トレーニング例も。

もういいよ。
 

隠れ層のニューロンの数が多ければ多いほど、つまりニューロンで記述できる機能が複雑であればあるほど、隠れ層とその中のニューロンの数が必要になります。

しかし、その場合、ニューロンは連続した加算と乗算(例えば活性化関数にシグモイド)を使って対象を記述することになります。つまり、明らかに元の関数ではなく、ある種の近似値を得ることになります。また、この近似式は学習データの特徴を覚えているため、新しいデータでは正しく動作しないことが判明することもあります。ですから、時にはトレーニングを中断して、テストサンプルの誤差が小さくなったかどうかを確認し、問題がなければトレーニングを継続する必要があります。ある時点でテストデータに対する誤差が大きくなり始めると、学習を完全に停止しなければならなくなる。

また、neuronkeyの出力は活性化関数によって制限される。シグモイドは(0;1)、リルムは(0;inf)です。ターゲット値は別の間隔にスケーリングする必要があります。間隔 (-7;7) の出力は、多くのパッケージでは単に達成不可能なのです。

理由: