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

 
Alexander_K2 です。

はい!言い忘れました。

状態とは、粒子をほぼ完全に特徴づけるデータの集合と考えられている。つまり、尖度、非対称性、非エントロピーなどの特徴を持った、簡単に言えばサンプル量のようなデータセットである。

すなわち、R.Feynmanの確信をもって、コンクリート対のサンプル量を正しく定義し、このサンプルに対するこれらの係数の履歴特性平均値を計算することで、現時点であるパラメータのセットを持ち、ある時間間隔で、システムがその定常パラメータで状態に移行することを予測することが可能である、と主張することが可能である。

このスレッドに期待することです。正しいサンプルサイズを決定するために助けが必要な場合は、私に手紙を書いてください。

自己回帰過程、すなわち現在の状態が過去の状態に依存するものがあるとする。

システムを予測するために,異なるラグを持つ増分の組み合わせをどのように正しく選択するか? ラグは一定であるべきか,それとも時間とともに変化するべきか,もしそうならどのように決定するか(ありふれた列挙は除く)?

というのも、ターゲットをロバストに予測するような増分の組み合わせがあれば、その上でNSを学習させても問題ないはずだからです。

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

では、この質問ですが、自己回帰の過程、つまり現在の状態が過去の状態に依存するとします。

システムを予測するために、異なる遅延を持つ増分のセットを正しく選択する方法は? 遅延は一定であるべきか、それとも時間とともに変化するのか、変化する場合、それをどのように決定するのか(些細な列挙を除いて)?

ここで、明らかに困難な点があります。

データセットは時間的にローカルなものではありません。

ここが肝心なんです!

つまり、時間を扱うのであれば、厳密に定義された時間間隔では、異なるデータセットを扱うことを理解する必要があります。これが躓きの礎となる。特定の値の同じサンプルで作業しようとすると、時間の経過とともに観測値の「浮遊」ウィンドウが出来てしまう。

私はこの問題を2つの方法で回避しています。

1.特定のティックのセット(サンプル量)のみで作業する - それは一度、すべての特定のペアのために同じです。しかし、この集合は形成される時期が異なるという特徴があり、予測を立てる ことはできない。

2. 一定の時間枠のみで作業する。この場合は逆に、その中にティックサンプリングというフローティングボリュームがあるのです。この難しさを回避するにはどうしたらいいのか。その答えは、「擬似状態」を入力すること、つまり、観測窓のデータ量を必要なサンプルサイズに一旦埋めてしまうことである。指数関数的な 時間スケールで強制的に作業することで行っています。つまり、指数を通して厳密に定義された時間窓でデータを読み、それが本当に到着したティックであるかどうかは重要ではありません。この場合、予測を 立てることが可能です。ただ、指数関数的な間隔が正しい解決策なのかどうかは疑問です。ファインマンは一様な間隔で仕事をしていた。

1つの方法を選択した場合 - 予測問題は原理的に解決できない。

方法2は解けるが、そのようなアーカイブは ない。

これについては、私は行き詰ってしまい、これまで馬鹿正直に自分のアーカイブを入力してきました。他に方法はないのか、残念だが...。

 
Alexander_K2 です。

2.恒久的な時間軸で排他的に作業する。それに対して今回は、その中にフローティングサンプルボリュームを入れています。この難しさをどう乗り越えるか。その答えは、いわゆる「擬似状態」を導入すること、つまり観測窓内のデータ数を必要なサンプル数まで増やすことである。指数関数的な時間スケールで強制的に作業することで行っています。つまり、指数を通して厳密に定義された時間窓でデータを読み、それが本当に到着したティックであるかどうかは重要ではありません。この場合、予測を 立てることが可能です。ただ、指数関数的な間隔が正しい解決策なのかどうかは疑問です。ファインマンは、一様な間隔で仕事をしていた。

実は、指数関数的な区間は、私が理解する限り、まさに定窓問題の正しい解なのです(はずです)。学習サンプルが1000本(ticks)だとします。もちろん、スライディングウィンドウではパターンが変化するため、NSの再トレーニングが必要だ。しかし,もしサンプルが指数関数的に 増加する増分の組み合わせを含んでいるならば,システムが窓から出るだけでなく(例えば,ラグ1500),同じ窓に対して可能なすべての状態を記述するために,合計でいくつの異なるラグが必要になるのだろうか,今はただスライドしているだけなのに。

私がバカなのかもしれませんが :D でも、やってみるのは難しいことではありません。しかし、問題は、いつ止めるかである

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

それは実は定窓問題の解としての指数区間であり、私が理解する限りでは正しい解である(はずだ)。トレーニングサンプルは1000本(ティック)だとします。もちろん、スライディングウィンドウではパターンが変化するため、NSの再トレーニングが必要だ。しかし,もしサンプルが指数関数的に 増加する増分の組み合わせを含んでいるならば,システムが窓から出るだけでなく(例えば,ラグ1500),同じ窓に対して可能なすべての状態を記述するために,合計でいくつの異なるラグが必要になるのだろうか,今はただスライドしているだけなのに。

私がバカなのかもしれませんが :D でも、やってみるのは難しいことではありません。しかし、問題はいつ止めるかです。

そして、システムが不安定な状態から安定した状態になったときに止めなければなりません。

例えば、ある瞬間に非エントロピーの増加が見られた(トレンドが始まった)場合、ある時間間隔で非エントロピーは歴史から計算された特徴的な平均値に戻る。

この遷移時間間隔はどのように決定するのですか?まあ、これが本当の予測だ、ふざけるな。それがニューラルネットワークに期待するところであり、このスレッドを読んだ :)

 
Alexander_K2 です。

そして、システムが不安定な状態から安定した状態に移行したときに停止することが必要です。

例えば、ある瞬間に非エントロピーの増加が見られた(トレンドが始まった)場合、ある時間間隔が経過すると、非エントロピーは歴史から算出された特徴的な平均値に戻るということです。

この遷移時間間隔はどのように決定するのですか?まあ、これが本当の予測だ、ふざけるな。それがニューラルネットワークに期待し、このスレッドを読む :)

指数関数的にモデルを学習させ、予測値と現在値との スプレッドチャートを作成し、平均からの偏差(残差)がどのように分布するかを見るという、極めて単純な問題でした。

来週やる予定です :) ただ、inentropyという単語をvarianceという単語に置き換えてください。

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

指数関数的に増加するモデルを学習させ、予測値と現在の価格の 差をプロットし、平均からの偏差(残差)がどのように分布しているかを見るというものです。

来週やる予定です :)

マキシムさん、楽しみにしています。マジかー、できるんだなー。ただ、シグナルを開くのを忘れないでください。私は最初にサインアップします。

市場で本当に機能するのは、ニューラルネットワークと理論家の2つだけです。他はゴミ、捏造、結果的に空っぽのポケット。

 
Alexander_K2 です。

マキシムさん、楽しみにしています。マジかー、できるんだなー。ただ、シグナルを開くのを忘れないでください。私は最初にサインアップします。

市場で本当に機能するのは、ニューラルネットワークと理論家の2つだけです。それ以外はすべてジャンク、いじり倒し、結果的にポケットが空っぽになる。

例としてボットをお見せしますので、後で微調整してください :D わかりやすくするために、最初はインジケータとして作成します

 

続報 -https://www.mql5.com/ru/forum/86386/page643#comment_6472393

Dr.トレーダー

予測因子を選別するための興味深いパッケージがもう一つ見つかりました。FSelectorと呼ばれるものです。エントロピーを含む約12種類の予測変数の選別方法が用意されています。


予測変数の選別関数である random.forest.importance() は,いくつかのテストにおいて非常に良い結果を示した.その意見では、すべての予測変数が少なくとも少しは重要であることが不都合である。が、例えば平均重要度を計算し、平均以上に重要な予測因子だけを取り出せば、非常に良い結果が得られます。

library(FSelector)

load("ALL_cod.RData")
trainTable <- Rat_DF1
PREDICTOR_COLUMNS_SEQ <- 1:27
TARGET_COLUMN_ID      <- 29

targetFormula <- as.simple.formula(colnames(trainTable)[PREDICTOR_COLUMNS_SEQ], colnames(trainTable)[TARGET_COLUMN_ID])

rfImportance <- random.forest.importance(targetFormula, trainTable)
colnames(trainTable)[PREDICTOR_COLUMNS_SEQ][rfImportance[[1]] > mean(rfImportance[[1]])]
 
Dr.トレーダー

今年1月頃にユーロドルm1だけ取って、1日スライディングウィンドウ。

論理的には、エントロピーが上昇すれば取引を中断し、低エントロピーで取引を続ければよいことになる。しかし、ここではなぜか低エントロピーでトレンドが発生しています。フラットでトレードしやすいとはいえ、珍しいことです。

(添付のコードでこのタイプミスを修正しました。すでに古いコードをダウンロードする時間があった場合は、再度ダウンロードしてください)

目で見れば、系列が定常でないことは明らかなので、最初の引用のテストを行うのは意味がない。

そして、興味深いのは、時系列 log(p/p-1)のグラフです(私はいつも使っているのですが)。

何が入っているんですか?もちろん、縦軸の目盛りも必要です。

 
Dr.トレーダー

もう一つ、予測因子を選別するための面白いパッケージを見つけました。FSelectorと呼ばれるものです。エントロピーを含む約12種類の予測変数の選別方法が用意されています。


また、CORElearnパッケージには、非常に興味深い大規模なReliefツールのセットがあります。

このテーマについて長い間練習してきましたが、caretの予測値選択関数、特にsafより優れたものは見つかりませんでした。

しかし、予測変数の事前選択が、ターゲット変数に対して「やらなければならない」ベースで行われない限り、いずれもうまくいかない。

2つのクラスの例でもう一度説明します。

  • の部分は、あるクラスに関連し、他の部分は別のクラスに関連しなければならない。予測変数のこの2つの部分の交点が、分類誤差を与えるものであり、克服することはできない。



PS.

主要な構成要素について議論し、アルゴリズムが教師なしであるという欠点を見抜いたのですね。

こちらは先生と。

sgpls( x, y, K, eta, scale.x=TRUE,
        eps=1 e-5, denom.eps=1 e-20, zero.eps=1 e-5, maxstep=100,
        br=TRUE, ftype='iden' )
Arguments

x       Matrix of predictors.
y       Vector of class indices.
K       Number of hidden components.
eta     Thresholding parameter. eta should be between 0 and 1.
scale.x Scale predictors by dividing each predictor variable by its sample standard deviation?
eps     An effective zero for change in estimates. Default is 1 e-5.
denom.eps       An effective zero for denominators. Default is 1 e-20.
zero.eps        An effective zero for success probabilities. Default is 1 e-5.
maxstep Maximum number of Newton-Raphson iterations. Default is 100.
br      Apply Firth's bias reduction procedure?
ftype   Type of Firth's bias reduction procedure. Alternatives are "iden" (the approximated version) or "hat" (the original version). Default is "iden".

spls パッケージ

理由: