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

 
アレクセイ・ヴャジミキン

そうですね、特にPythonでいきなり実行する場合、基本的な設定はそこにしっかり与えられています。でも、それじゃダメなんです。

確かに、アンナ・ベロニカの方がナレーションが上手いし、ダンスも上手い。

 
マキシム・ドミトリエフスキー

番組はその通りで、アンナ・ヴェロニカの方がナレーションが上手いし、ダンスもする。

普段は高速モードで見ているので、気にしていないのでわかりません。

いずれにせよ、クリエイターに答えを求めなければならない疑問があり、それをどこにどう聞けばいいのかがわからないのです。

 
アレクセイ・ヴャジミキン

普段は早送りで見てるから気にしてないなぁ

とにかく、クリエイターに答えてもらわなければならない疑問があり、それをどこにどう聞けばいいのかがわからないのです。

おそらくギタブ

 
マキシム・ドミトリエフスキー

ギサブで、かもしれない。

みんな英語を話すので、自分がどこにいるのかわからなくなるくらいです(笑)。

 
アレクセイ・ヴャジミキン

みんな英語を話すので、自分がどこにいるのかわからなくなるくらいです(笑)。

Pythonの代わりにRを使う必要があるようです。Renatは、松葉杖を使わずに直接リンクできるようになると書いています。

つまり、mt5から1行でcatbustを実行することができるようになります。

 
マキシム・ドミトリエフスキー

PythonよりもRに力を入れる必要があるようです。Renatは、松葉杖を使わずに直接バンドルできるようになると書いています。

つまり、mt5から1行でcatbustを実行できる。

一般に、Rでcatbustを実行することはできませんでした...。私はあまり器用ではないのかもしれません。バンドルされるのであれば良いのですが、最適化を実行さ せることができず、レスポンスの速さが疑問視されています...。

 

サンプルをトレーニングサンプルとバリデーションサンプルに分割した場合の影響に関する研究を完了(トレーニングが停止し、モデル選択が行われる方のサンプル)。

使用したサンプルは2014年から2018年までで、20%ごとに約1年に相当します。方法は以下の通りです。全サンプルから検証用サンプルを10%ずつ増やし、トレーニング用サンプルを同じ10%ずつ減らし、9セットのサンプルを作成しました。各サンプルに対して,Seedが1~200のモデルを作成し,サンプルごとに合計200モデル,合計1800モデルを作成しました。

モデルテストは、トレーニングに関与していない固定サンプル-2018年-で実施しました。

商品はSi先物取引ののりです。

表の下には、モデルの結果を判断するための指標があります。左側は、端末で見慣れた金融指標で、右側は誤差のバランスに関する指標(私はそう呼んでいます - 誰かがそれを使用している場合、私はそれを修正する方法を知りません)、つまり、ターゲット1が正しく決定された場合、+1、正しくなければ、-1、それは全体のサンプルに分類の品質を正確に評価することができます。薄緑色は、平均値で最も良い成績をマークしたものです。

以下は、モデルのメトリックス値です。

その結果、2014年のトレーニング(80%~90%)が最も悪い結果を出し、70%の落差が大きかったことは、むしろサンプル数が少ないということではなく、2014年のパターンがほとんど満たされない、つまり市場が大きく変化したことを示唆しており、理論的にはこの期間をトレーニングから完全に外してもよいということになります。

今、私はテスト(試験)サンプルのパターンの選択には、次のような基準を用いています。

if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;

この基準を満たすモデル数のデータは以下の通りです。

以下の表は、3つのサンプルの指標を考慮し、以下の基準でモデルを選択したものである。

if(t==0)if (FinRez>10000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_01=1;
if(t==1)if (FinRez>3000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_02=1;
if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;


ここで、利益という基準が決まっていることと、その利益に到達するまでの時間がセットによって異なることを考慮する必要がある(おそらく、比較を正しく行うためには、数値を小さくする必要があるのだろう)。

そして、どのような結論が導き出されるのでしょうか。つまり、学習はモデルの検証よりも少ないサンプルで行う必要があります。しかし、30%という内訳を強調しないわけにはいかないが、そこでもあらゆる指標による結果は悪くなく、40%、50%にかなり近い失敗をした。サンプルサイズとコンテンツのどちらが影響するのか、それをどう立証すればいいのか...。

また、この実験結果について、もしかしたら私の解釈が間違っているかもしれませんが、どのようにお考えでしょうか?このトレーニングサンプルとセレクションサンプルの割合の問題を解決するために、方法論の変更など、何かいいアイデアがあれば教えてください。

追加されました。

80%-90%の平均値については、多くのゼロがあり(モデルからの入力信号が全くない)、そのために歪みが生じています、これはStdv_K_Korrekt_Balansインジケータで見ることができます。

StDV_K_Korrekt_Balansのヒストグラム 90%。


StDV_K_Korrekt_Balansのヒストグラム 70%。


StDV_K_Korrekt_Balansのヒストグラム30%。

そして、チャートはこんな感じです(ヒストグラムはクリックできるようになっていて、ちらつきが気にならないようになっています)。

30%


40%


50%


60%

 

また、トレーニングは常にトレーニングコントロールが行われるデータよりも古いデータで行われることに注意しなければなりません。それらを入れ替えて、どうなるか見てみるのもいいかもしれませんね...。

100本のツリーで改善が見られなかったり、安定したパターンが少なかったりした場合に学習を中止するのではなく、さらにモデルを学習させる必要があるのかもしれません。

もしRecallが低ければ、相関性は低いが同じように利益を生むモデルが存在する可能性があり、その場合は1つのプールにまとめるのが理想的です。

 
アレクセイ・ヴャジミキン
また、トレーニングは常にトレーニングコントロールが入るデータよりも古いデータで行われることも注意しておきます。もしかしたら、入れ替えてみてどうなるか......。

上記のすべてがクールで、とても参考になるのですが、「トレーニングコントロール」、どういう意味でしょうか?

I.e.例えば、2014年のデータのサンプルでシステムを訓練し、2015年のサンプルを与えて、パターンの確率を見たいですか?もしそうなら、何も交換する必要はなく、すべてが正しいのです。ただ、私はここで、制御によって予想と異なる結果が出たとしても、それは必ずそうなるのだから問題ないと考えている。

 

もし、あなたの場合のMOの実用化は、私の考えでは次のようなものです。

真の結果の100%の確率を得ることは単に現実的ではないので、その後、単純な方法で、例えば、真の結果と偽の結果の比率によって行く、それが50/50の領域である場合、再び我々はあなたがこれらの結果で得るどのような利益を理解しなければならない、利益の50%が100ポイントの平均であり、残りの50%の損失は50ポイントを平均すると、私はあなたのシステムはすでに実用に適していると思います。

理由: