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

 
mytarmailS:
RFの代わりに、ターゲットを実装するための興味深いアイデアがいくつかあるので、それを試してみたいのですが...。
よし、考えよう。例えば、ニューラルネットワークが各反復において、予測からの目標偏差に基づく標準誤差逆伝播を行わず、以前のバージョンのスケール実トレードにおいて理想と非常に多くのポイント差のあるデータを取得したと想像してください。そして、その情報に基づいて重みを更新する。つまり、情報は機械と並行して流れているはずなのです。もしかしたら、できるかもしれない。
 

をRで行うことは可能でしょうか?

私自身について:私はプログラマーではありません、Rは私の最初の言語です。

 
mytarmailS:

をRで行うことは可能でしょうか?

私はプログラマーではなく、Rは1ヶ月半かけて勉強した初めての言語です。

NSにトレード結果の情報を与えながらティーチングしていくおおよその流れはこんな感じです。まあ、自分で関数を書いて、それをカスタムフィットネス関数としてどこかのRパッケージに送り込んでみるという手もある。しかし、その前にどのR-packageがこれを可能にしているかを調べる必要があります。おそらく、1つはNS自体を書いて、別パッケージでプロでやることになると思います。( R自体が遅い。

これは非常に珍しいケースだということです。通常、フィットネス機能はカスタマイズできませんが、私が知っている限りでは、1つの例外があります。私がやったことといえば、caretパッケージの中に独自の関数を書いて、その最大値をクロスバリデーションで学習パラメータのセットを選択するのに使ったことくらいです。しかし、同時に機械自体も標準的な方法でトレーニングされます。つまり、私の解決策は、私が必要としているものとは全く違うものなのです。ほらね?

 
ググってみると...。ああ、自分で書かなきゃいけないんだけど、この標準的なターゲティングって、やり方が限定的で困るんだよなあ......。
 
mytarmailS:
ググってみると...。でも、この標準的なターゲットというのは、あまりに限定的なアプローチで、困りますね......。

探し続けるしかない。

http://stackoverflow.com/questions/25510960/how-to-implement-own-error-function-while-using-neuralnet-package-in-r

/go?link=https://stackoverflow.com/questions/36425505/own-error-function-including-weights-for-neuralnet-in-r

ニューラルネットのパッケージでは、独自のフィットネス関数を作成できるようで、微分可能なはずです。考えてみないと...。いかがでしょうか?

how to implement own error function while using neuralnet package in R?
how to implement own error function while using neuralnet package in R?
  • stackoverflow.com
I am trying to implement a customized error function in package neuralnet in R. Normally ’sse’ and ’ce’ which stand for the sum of squared errors and the cross-entropy are used to calculate...
 

2つ目のリンク先には、パッケージ内のコードを書き換える必要があると書かれています。

最初のリンクを使って自分でエラーを書くことができますが、提案されたコンセプトで実装するには前の重みがわからないといけないのですが、何か見落としているのでしょうか? 正直なところ、ニューラルネットワークの仕組みは非常に曖昧なのですが......。

 

ニューラルネットワークの学習(逆伝播)は、通常、学習例を投入し、その結果を求め、目的の結果と照合し、誤差を算出する、という流れで行われる。ならば、この誤差を小さくすることが課題だ。ニューラルネットワークの計算は、すべて入力データと係数の足し算・掛け算のオーダーに過ぎないので、誤差を減らすためにどの程度係数を変えればいいのか、正確に計算することができるのです。一般に、最初のステップで誤差をゼロにする係数を見つけることができますが、誰もそれをしません。なぜなら、ある具体例の誤差は小さくなりますが、他のすべての具体例の誤差は、わかっていながら大きくしてしまうからです。

この段階的な誤差の低減は、すべての学習例を何度も通過させながら、1つずつ行っていく。つまり、あるシャープ比を必須の取引結果とすることはできない。 誤差は各トレーニング例で個別に計算することができる。独自の関数を使って誤差を計算することもできますが、その場合も学習例ごとに別々に計算され、すべての例について一度に計算されるわけではありません。貿易の見積もり全体を、すべての個別事例に分割する方法がわからないんです。

ジグザグやバーの終値でトレードするのは、最適なトレードとは言えないというのは、私も同感です。スプレッド、ドローダウン、取引時間などを考慮した上で、取引を開始し、終了することが望ましいと思います。移動平均や 他の指標を使ったExpert Advisorを作り、シャープレシオが最大になるように最適化し、これらのトレードをトレーニングデータとして必要な結果として使用することができます。しかし、少なくともジグザグで安定した結果が得られたら、このようなことをするつもりです。

 
Dr.トレーダー

ニューラルネットワークの学習(逆伝播)は、通常、学習例を投入し、その結果を求め、目的の結果と照合し、誤差を算出する、という流れで行われる。ならば、この誤差を小さくすることが課題だ。ニューラルネットワークの計算は、すべて入力データと係数の足し算・掛け算のオーダーに過ぎないので、誤差を減らすためにどの程度係数を変えればよいかを正確に計算することができる。一般に、最初のステップで誤差をゼロにする係数を見つけることができますが、誰もそれをしません。なぜなら、ある具体例の誤差は小さくなりますが、他のすべての具体例の誤差は、わかっていながら大きくしてしまうからです。

この段階的な誤差の低減は、すべての学習例を何度も通過させながら、1つずつ行っていく。つまり、あるシャープ比を必須の取引結果とすることはできません。 誤差は各トレーニング例で個別に計算することができます。独自の関数を使って誤差を計算することもできますが、その場合も学習例ごとに別々に計算され、すべての例について一度に計算されるわけではありません。貿易の見積もり全体を、すべての個別事例に分割する方法がわからないんです。

ジグザグやバーの終値でトレードするのは、最適なトレードとは言えないというのは、私も同感です。スプレッド、ドローダウン、取引時間などを考慮した上で、取引を開始し、終了することが望ましいと思います。移動平均や 他の指標を使ったExpert Advisorを作り、シャープレシオが最大になるように最適化し、これらのトレードをトレーニングデータとして必要な結果として使用することができます。でも、少なくともジグザグで安定した結果が得られたら、こういうことをやってみようと思っています。

はい、NSはおっしゃるような仕組みになっています。各サンプルについて誤差を計算し,全セットを通過した後に,二乗平均平方根誤差,中央値誤差,平均絶対誤差などの適合度関数の値を求めます.この値をもとに、逆伝播アルゴリズムで計算された勾配に応じて重みが更新される。

ここでは、シミュレーションマシーンシグナル取引に基づいて、前述のフィットネス関数の代わりに、独自のフィットネス関数を置くべきであると議論しています。つまり、NSによって処理された各例に対して、(出力信号が事前に定義された閾値を突破した場合)仮想取引を作成することができるのです。そして,すべての例の最後には,統合統計,たとえばシャープ統計などを計算することができます。そして、すでにそこから逆分布によって重みが処理されることになる。

 

Dr.Trader さん、詳しい説明ありがとうございました。

あのね、たぶん一番正しいのは、同じジグザグでも、反転そのものを教えること、つまり、3つの状態を与えることです 1)上向きにUターンする

2)ダウンリバーサル

3)Uターンではない

しかし、それを教えるかどうかは、反転をキャッチすることは非常に困難であり、さらに観測の数の歪み、クラス "ではない反転 "は数十または数百倍となる

また、どのような予測因子を使って、どのような結果を出しているのでしょうか?

スペクトル分析を使い始めたところです。最初のテストでは、インジケータよりもずっと良い結果が出ました。ガラガラで実行したところ、トレーニングとテストの誤差は6%程度でしたが、Rを使い始めると誤差が30%に上昇しました。サンサニッチはリトレーニングと言うので、まだあまり理解できませんが

また、スペクトル分析によって、どの期間が市場で支配的であるかを調べ、適応的な指標 になるが、履歴には適応しないので、その期間を指標に使用する方法もある。

 
mytarmailS:

2つ目のリンク先には、パッケージ内のコードを書き換える必要があると書かれています。

最初のリンクでは、自分でエラーを書くことができますが、あなたが提案するコンセプトを実装するためには、やはり以前の重みを知る必要があります。 それとも、私は何かを見逃してしまったのでしょうか? 正直、私はニューラルネットワークの仕組みについて非常に大まかな知識を持っています。

まあ、まず第一に、私はそれを提案しているわけではありません。あなたの直感をエンコードできる形に変換しているのです。機械はトレーディングカーブを合理的な範囲に収めることを任務とすべきと提案されましたね。) そのためのオプションです。

次に、最初のリンクは、まさにその方法を示しています。唯一の制約は、ドキュメントにも記載されている。それに、重さは必要ない、質問者のために特別に必要なんだ。関数でウェイトを取得することはできません。何のためにウエイトが必要なのですか?そもそも、なぜそれを持ち出すのですか?

微分できる誤差関数は基本的にすべて使うことができます。