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

 
mytarmailS:

この無邪気な子供も、10分から話しています。

https://www.youtube.com/watch?v=KUdWTnyeBxo&list=PLDCR37g8W9nFO5bPnL91WF28V5L9F-lJL&index=3

動画では、フーリエ級数を正確に当てはめるのではなく、何らかの関数を使ってデータを加工し、別の空間に移す(カーネル変換)ことがポイントになっています。写真はHSLカラーパレットに、音声は周波数のヒストグラムに変換することが提案されています。これだけではデータが変わってしまうが、必要であれば逆関数で簡単に復元することができる。この変換は、変換後のクラスが多次元空間で互いにグループ化され、分類がより簡単になるように、何らかの論理的な意味を持たせなければならない。もし、変身後のクラスが以前よりもさらに空間に散らばってしまうなら、この行動には何も良いことはなく、悪くなる一方でしょう。

正確にはフーリエを使用することは推奨されないので、使用する必要はない。例えば、Alexeyは、生の値ではなく、バー間の差分を取ることを提案しています。libVMR の Yury は異なる数学的変換を使用しており、これも興味深いです。主成分法を使ってデータを分解し、ニューロニックコンポーネントに送り込むことができるのですが、これについてはSanSanychと私がいくつかの記事や例を紹介しています。やりたいことは何百通りもあって、フーリエはその中のひとつに過ぎない。

あるいは、何十層ものニューロニクスを使えば、カーネル変換をしなくても、生データで勝手に解決してくれるんです。しかし、規制やクロスバリデーションなど、いろいろな問題が出てくるでしょう。

また、いずれの方法も投入ゴミの問題を解消するものではありません。入力ゴミ→変換後ゴミ→出力ゴミ→フロントテスト梅。

 
mytarmailS:

一つ質問ですが、振幅、位相、周波数によって機能間の類似性を測定することは可能でしょうか?

それだ!!!!それ以外には興味がない...。

フーリエについて書かれた残りの部分はすべて、CCの回答の結果であり、私の質問とは関係ありません。

関数が周期的なものであれば非周期的な場合、2つの関数のエッジ(開始時-引数の0値、終了時-引数の2*PI値)の比較に誤差が生じます。
 
Dr.トレーダー

ビデオでは、フーリエ級数を正確に適用するのではなく、データを何らかの関数で処理して別の空間に移すこと(カーネル変換)がポイントです。

あるいは、何十層ものニューロニクスを使えば、カーネル変換をしなくても、生データで勝手に解決してくれますよ。

この動画のカーネル変換は、予測変数のペアを可視化し、手動で選択したものです。つまり、適切なペアを視覚的に見つけ出し、それに対して適切なカーネル変換を選択する人間のスペシャリストが必要なのです。

Dr.トレーダー


あるいは、何十層ものニューロニクスを使えば、カーネル変換をしなくても、生データで勝手に動いてくれるんです。

ビデオでは、うまくいかないばかりか、さらに混乱すると言っています。また、逆誤差伝播の方法では、出力層から離れた層の重みを調整しても、信号が届かなかったり、届いても弱すぎたりして、実用的ではありません。


Dr.トレーダー


YuriはlibVMRで様々な数学的変換を行っていますが、これも興味深いです。


様々なものではなく、A.G. Ivakhnenkoの引数の群分解法(GMDH)によりアルゴリズム的にコンパイルされたものです。ランダムに、つまり何の構造もなく撮ると、でたらめになる。


 
ユーリー・レシェトフ
関数が周期的なものであれば非周期的な場合、2つの関数のエッジ(開始時-引数の0値、終了時-引数の2*PI値)を比較するときにエラーが発生します。

なるほど、やはり端に歪みが出て、端に近いほど強くなるのですね、すみません、収まりません...。

Dr.トレーダー

ニューラルネットはどのように学習させたのですか?

 

あるサイトで見つけたのですが、なぜかもう使えません

もしかしたら、誰かが興味を持ってくれるかもしれない。

"....先生のアドバイスに従って、いくつかのロボットモデルを作りました。ロボットは学習し、新しいデータでいくつかのことを認識しますが、残念ながら、結果は私が期待したものからはまだ程遠いものでした。

......まず、ローパスフィルターに多項式調和近似を適用して、短期トレンドと長期トレンドのフィルターを作り、二次特徴の最初のセットを得ました。2次特徴として、周波数、cosおよびsin振幅、P係数を取得します。...ネットワークは学習したが、汎化しなかった。

...次のステップは新しいモデルでした。終値に ローパスフィルター(私は2次のバターワースフィルターを使いました)をかけ、多項式調和近似を適用し、A*cos(wx)+B*sin(wx)をM*sin(wx+f)という形に変換し、Mとfを第二属性として取り込みました。

....そして、このモデルを使って、ほとんどすべての新しいデータを正しく認識する、非常に優れた汎化特性を持つネットワークを構築することに成功しました。

多項式調和近似は時間がかかるので、別のモデルとして、周波数分布が等しいバンドパスフィルターのセットを作り、終値のLFフィルターに適用し、それにヒルベルト変換をかけることにしました。また、新しいデータをうまく認識する人工市場モデル用のネットワークを作ることにも成功しました。

その後、このモデルを実際の見積もりに適用しています。

- 終値を適応型 LF フィルタでフィルタリングする.

- 市場波を検出するためのバンドパスフィルタのセットを構築する。

- は、ヒルベルト変換を適用します。

- 第一の副次的属性:バンドパスフィルタの値、瞬時の振幅と位相の値。

- を使用し、近値でローパスフィルターを構築しています。

- 二次属性の第二セット - 最後のろうそくの終値と安値の相対偏差、LFフィルタの値からサポートとレジスタンスレベル、バー内の相対ボリューム(平均値に対する相対的な)。

- は、トレーニングサンプルを作成します。

その結果、ネットワークは学習されるが、新しいデータではうまく働かないということになる。あるところでは正確に極小値を予測し、あるところでは何をすべきかを忘れてしまうのです。以前と比べると、質的に違うレベルの仕上がりになっているような気がします。そうですね、もう一つはっきりさせておきたいのは、「入力ネットワーク特徴量(この場合は二次特徴量)の数<学習サンプルサイズ/10、隠れ層のニューロン数はネットワーク入力数を超えない...」という経験則に従ったことです。この手紙からの抜粋で、特徴量検索のアプローチの可能性を感じていただければと思います。

 
mytarmailS:

なるほど、やはり端に歪みが出て、端に近いほど強くなるのですね、合わないのは残念ですが...。

合うか合わないかというのは、とても些細なことなんです。まず、関数をフーリエ級数に分解し、逆変換により級数から復元する。そして、分解前の初期関数と復元された関数を比較する。もし、再構築された関数が元の関数と根本的に異なる場合、この方法がうまくいかないことは明らかである。

非周期的な関数に対しては、ウェーブレット変換を使用することが推奨されます。私自身は試していないのですが。しかし、ウェーブレットで圧縮した画像を復元すると、フーリエ変換による歪みに比べて視覚的に目立たない程度の歪みが生じることから判断すると、ウェーブレットはフーリエ変換に比べて非周期的な系列に適していることが明らかであると言えます。私は引用BPにウェーブレットを適用した実務経験がないので、ここでどのウェーブレットが最も適切かについて有益な情報を共有することはできない。しかも、ワゴン車と小さな荷台がある。

mytarmailS:

ニューラルネットワークの調子はどうですか?

どのようなタスクやデータかによる?乱数のサンプルを渡すと、ブツブツとつぶやきます。"Garbage in, Garbage out "です。そして、有意な予測因子のサンプルを与えれば、一般化可能な値を出すことができます。少なくとも十数個の予測因子と数千例のサンプルであれば、訓練に時間はかかりません。
 
ユーリー・レシェトフ

うまくいくかどうかというのは、非常に些細なことです。まず、関数をフーリエ級数に分解し、得られた級数から逆変換により関数を再構成する。そして、分解前の元の関数と再構成された関数を比較します。もし、再構築された関数が元の関数と根本的に異なる場合、この方法が機能しないことは明らかである。

そうしようかな...。まず、私が一般的に何をしているのか、何を解決しなければならないのかを話し、それについて皆さんの意見を聞かせてください。私は皆さんを混乱させていると思いますので...。
 

少し前史を紹介すると...。

私はまず、次のような原理で履歴のパターンを探しました。

1)我々は、現在の価格を持って いる - それは最後の20キャンドルとします。

2)歴史を見て、過去に似たような状況がないか探す(近接度はピアソンの相関とユークリッドで測る)

3)そのような状況を見つけたら、それがどのように終わったかを見る - 成長か衰退か

4) このような類縁体を多く発見した場合、例えば、10個の類縁体を発見した場合、ある程度の普及率で統計を取ることが可能である。

そのうち8つが成長、2つが下落に終わったので、価格がどうなるかを予想してみました :)

つまり、Ivakhnenokの「類型をコンパイルする方法-モデルフリー予測」と似たような ことをやったが、私の方法はもっと原始的な ものである

さて、この方法は、いくつかの理由でうまく いかないことが判明しました。

1) 必要なベクトル中のローソク足の数が多ければ多いほど、歴史上の類似点が少なくなります。実際には、すべてのOHLC価格とピアソン相関の精度>0.93を取る場合、3本のローソク足のベクトルが限界となり、通常の予測ではもっと大きなベクトルが必要となります。

2)実際には、市場には同一の価格状況は存在しない......。

3) ベクトルを大きくすると精度が落ちるので、大きくできないことがわかった。 しかし、たとえできたとしても、同じ状況は存在しないので、大きなベクトルで類似のものを見つけることはできない。

その解決策が見つかった......。

 
ユーリー・レシェトフ

どのようなタスクやデータに依存するのか?乱数のサンプルを渡すと、ブツブツとつぶやく。"Garbage in, Garbage out "です。そして、有意な予測因子のサンプルを与えれば、一般化可能な値を出すことができます。少なくとも十数個の予測因子と数千例のサンプルであれば、訓練に時間はかかりません。

ごあいさつ!!!!LibVMRを使用していますが、古いバージョンのようで、"Bad Data "というエラーが出続けています。新バージョンがあるとのことですが。どこでダウンロードできますか?もし可能なら?
 
mytarmailS:

少し前史を紹介すると...。

私はまず、次のような原理で履歴のパターンを探しました。

1)我々は、現在の価格を持って いる - それは最後の20キャンドルとします。

2)歴史をループにして、過去に似たような状況がないか探す(近接度はピアソンの相関とユークリッドで測りました)

よくわからない?価格をOHLCとしてパターンや何らかの変換で捉えているのでしょうか?

要は、OHLCをそのまま受け取ると、全く似ていないパターンでも10pips高いか低いかよりも、似ていても1000pips高いか低いかの方がユークリッド距離で差が出るということです。そして、その差は2桁になるので、比較誤差も2桁になります。

理由: