トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 321 1...314315316317318319320321322323324325326327328...3399 新しいコメント Dr. Trader 2017.05.05 11:52 #3201 マキシム・ドミトリエフスキーhttps://www.mql5.com/ru/code/127コードに誤りが あるだけで、インジケータの正規化が間違っているのでは?正しいです。[0;1]とは異なる区間に正規化されるだけです。簡単のために、あなたが持っているのと同じCalcRegression関数を残すことができます(しかし、bはすでに反対の符号*で返すことを考慮してください、つまり、あなたは2回目に符号を変更する必要はありません)。実験的に、結果を[-0.5;0.5]の範囲に収めるには、どの値を掛ければよいかを調べてみましょう。そして、真ん中を0から0.5にずらすために+0.5を加えます。*この式は、最も古い価格が配列の中で最も高いインデックスを持っている場合、右の符号を持つbを与えることになります。 Maxim Dmitrievsky 2017.05.05 11:55 #3202 Dr.トレーダーすべて正しいです。[0;1]ではなく、別の区間で正規化されているだけです。簡単のために、CalcRegression 関数をそのままにしておくこともできます(ただし、b はすでに反対の符号で返しているので、2回目に符号を変更する必要はないことを考慮してください)。実験的に、結果を[-0.5;0.5]の範囲に収めるには、どの値を掛ければよいかを調べてみましょう。そして、平均値を0から0.5にずらすために+0.5を加える。 異なるタイムフレームでは、異なる最大値と最小値が必要で、それは非常に便利ではありません。 Maxim Dmitrievsky 2017.05.05 12:04 #3203 Dr.トレーダー*この式は、最も古い価格が配列の中で最も高いインデックスを持っている場合、右の符号を持つbを与えることになります。 既存のバッファの上に、別の正規化されたバッファを追加するだけです。) Maxim Dmitrievsky 2017.05.06 09:06 #3204 回帰の傾きも面白いかもしれませんね。バックテストとフォワード要するに、このロジックで作業して、いろいろな予測器を試してみるのがよさそうです。 ファイル: RNN_with_regr_angle.zip 386 kb RNNregr30min.set 1 kb Dr. Trader 2017.05.07 01:23 #3205 マキシム・ドミトリエフスキー回帰の傾きも面白いかもしれませんね。バックテストとフォワード要するに、このロジックで作業して、いろいろなプレディクターを実験することができそうです。 コードありがとうございます、テストしてみました。悪化してしまいました。でも、早く確認したかったので、1年ではなく1ヶ月だけ最適化に時間をかけました。Fronttestでは、EAが最初は正常で、徐々にバランスが崩れ始め、その後スローダウンしていく様子を見ることができました。まだ新しいデータで少し生きている、悪くはない。私ならこう変える1) double a3 = regr[0]; - 0 番目のインデックスが時間的に最も古いデータです。ここの最新(最新)バーは49だろう(50が取られたので)、その方がいい。ただ、最後の方はオーバーローンになることもあるので、48の方が良いですね。また、インジケーターがオーバーローンになっていないかどうかも確認する必要があります。 rsiも同様で、新しいほうを削除していますね。インデックスがゼロのものを、最も古いものとして削除しようとするのは理にかなっている。2) Yuri's Expert Advisorの第3バージョンでは、RNN関数が4つのパラメータを持つため、3つのrxとトレンドを取ることも可能です。一般に、この関数は、Yuriさんの記事に書かれているように、新しいパラメータで補完することができますが、パラメータが+1されるごとに、係数の数が2倍になります。3) ストップとテイクオフは好きではありません。その最適値は新しいバーで常に変化します。正確には、最適な値というのはなく、特定の時間間隔でのEAにとって「都合の良い」値があるだけです。さらにブローカーはストップの前にローソク足を引くことができます。私なら、新しいバーごとに予測を立て、次のバーと予測まで単純にこの方向で取引を保持し、必要ならそこで反転させるようにします。4) int handle=iRSI(_Symbol,0,9,PRICE_OPEN); double rsi[30]; CopyBuffer(handle,0,0,28,rsi);ハンドルはOnInitで初期化する必要があり、EA作成時に毎回初期化する必要はない。また、配列には30個の要素がありますが、コピーされるのは28個だけです。すなわち、インデックス28と29はアクセスできない(誰もアクセスしないが、わからない)ので、埋まっていないのである。 Maxim Dmitrievsky 2017.05.07 11:56 #3206 Dr.トレーダー コードありがとうございます、試してみました。もっとひどいのを買った。しかし、1年ではなく1ヶ月しか最適化に時間をかけていないのは、早くテストしたかったからです。フロントテストでは、私のExpert Advisorは、最初は良いですが、その後、バランスを平らにし始め、その後、下に走ります。まだ新しいデータで少し生きている、悪くはない。私ならこう変える1) double a3 = regr[0]; - 0 番目のインデックスが時間的に最も古いデータです。ここの最新(最新)バーは49だろう(50が取られたので)、その方がいい。ただ、最後の方はオーバーローンになることもあるので、48の方が良いですね。また、インジケーターがオーバーローンになっていないかどうかも確認する必要があります。 rsiも同じで、新しいほうを削除していますね。インデックスがゼロのものを古いものとして削除しようとするのは理にかなっている。2) Yuri's EAの第3バージョンでは、RNN関数に4つのパラメータが含まれており、それで3つのrsiとトレンドの両方を取ることができます。一般に、この関数は、Yuriさんの記事に書かれているように、新しいパラメータで拡張することができますが、パラメータが+1されるごとに係数の数が2倍になります。3) ストップとテイクオフは好きではありません。その最適値は新しいバーで常に変化します。正確には、最適な値というのはなく、特定の時間間隔でのEAにとって「都合の良い」値があるだけです。さらにブローカーはストップの前にローソク足を引くことができます。私なら、新しいバーごとに予測を立て、次のバーと予測までこの方向で単純に取引を持ち、必要ならそこで反転させるようにします。4)ハンドルはOnInitで初期化する必要があり、EA作成時に毎回初期化する必要はない。また、配列には30個の要素がありますが、コピーされるのは28個だけです。すなわち、インデックス28と29はアクセスできない(誰もアクセスしないが、したいかもしれない)ので、埋まっていないのである。 バッファをコピーするときのゼロは、一番最初の値を返すと思っていたのですが、確認が必要ですね。https://www.mql5.com/ru/docs/series/copybufferslの代わりにtrailingを追加したりしましたが、結果はあまりよくありませんハンドルについてですが、リグレッションの時はinitに入れましたが、ラディーの時は入れ忘れたままです。バックテストでも同じような結果が得られており、これらのパラメータでグリッドは適切な予測を行うことができます。統計を取ってみても、なぜ見逃してしまったのか、その理由がわからない。そして、RNN3は、なぜか信号がかなり少なくなります。私はまだよく理解していない正規化関数が50の代わりに5000バーの配列を取る方が良いかどうか、それは最初から、より正しい最大値と最小値を見つけ、時間の経過とともにそれらを更新しないので、テストの最初の段階で我々はエントリのためにかなり正しく正規化された値を受け取るが、後でより正確にさらに、やはりチャートをデトレンドして、より消化しやすい値をグリッドに供給したい。例えば、定常系列の回帰勾配や自己相関をどう改善するかは、計量経済学が 苦手なのでまだ分からない、今はビデオクリップを見ているところだ。また、このRNNと通常のMLPを後で比較したいのですが、mlpは出力に何かを与えなければならないので、そこではきちんとした比較にはならないでしょう。もう一つの方法は、3人のRNNの委員会を作り、その結果をRNN :Dや、畳み込みNSに送り込むことです。クラウドでも最適化するのに非常に時間がかかる。それよりも、3つのRNNをMLPに送り込み、価格刻みで出力することで、理論上はオーバートレーニングから解放されます。すなわちRNNがオートエンコーダの役割を果たすことになる http://cyberleninka.ru/article/n/avtoenkoder-podhod-k-ponizheniyu-razmernosti-vektornogo-prostranstva-s-kontroliruemoy-poterey-informatsii СанСаныч Фоменко 2017.05.07 14:31 #3207 マキシム・ドミトリエフスキー ARIMAに適用できる見積もりを見つけることは、ほとんど不可能です。しかし、それで講義は終わってしまった。ガーチはどうする?1日未満のタイムフレームでは、高頻度取引でもはるかに有望であり、非常に広く利用されています。 Maxim Dmitrievsky 2017.05.07 14:45 #3208 サンサニッチ・フォメンコ ARIMAを適用できる見積書を見つけるのは、ほとんど不可能である。しかし、それで講義は終わってしまった。ガーチはどうする?1日未満のタイムフレームでは、高頻度取引でもはるかに有望であり、非常に広く利用されています。 こういうのは知り始めたばかりで、まだ実験もしていないんです。ゴミの話しか聞いたことがない :)MLPのオートエンコーダーとしてRNNを使うのはどうでしょうか?私が理解する限り、リカレントネットワークは、論理的なルールのセットを持つタイプのオートエンコーダーである。 mytarmailS 2017.05.07 14:48 #3209 マキシム・ドミトリエフスキー じゃあ、トレンドの引き算をして、それに自己回帰を適用して、回帰勾配と一緒にNSに値を突っ込むのはどうでしょう? こういうのは知り始めたばかりで、まだ実験もしていないんですけどねすぐにでも実験したほうがいい多くの時間と無駄な知識を節約することができます。 Yuriy Asaulenko 2017.05.07 14:49 #3210 サンサニッチ・フォメンコ ARIMAに適用できる見積もりを見つけることは、ほとんど不可能です。しかし、それで講義は終わってしまった。ガーチはどうする?1日未満のタイムフレームでは、高頻度取引でもはるかに有望であり、広く利用されている。 私も観ましたよ。イマイチ、私たちのテーマではないですね。 1...314315316317318319320321322323324325326327328...3399 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
https://www.mql5.com/ru/code/127
コードに誤りが あるだけで、インジケータの正規化が間違っているのでは?
正しいです。[0;1]とは異なる区間に正規化されるだけです。
簡単のために、あなたが持っているのと同じCalcRegression関数を残すことができます(しかし、bはすでに反対の符号*で返すことを考慮してください、つまり、あなたは2回目に符号を変更する必要はありません)。実験的に、結果を[-0.5;0.5]の範囲に収めるには、どの値を掛ければよいかを調べてみましょう。そして、真ん中を0から0.5にずらすために+0.5を加えます。
*この式は、最も古い価格が配列の中で最も高いインデックスを持っている場合、右の符号を持つbを与えることになります。
すべて正しいです。[0;1]ではなく、別の区間で正規化されているだけです。
簡単のために、CalcRegression 関数をそのままにしておくこともできます(ただし、b はすでに反対の符号で返しているので、2回目に符号を変更する必要はないことを考慮してください)。実験的に、結果を[-0.5;0.5]の範囲に収めるには、どの値を掛ければよいかを調べてみましょう。そして、平均値を0から0.5にずらすために+0.5を加える。
異なるタイムフレームでは、異なる最大値と最小値が必要で、それは非常に便利ではありません。
*この式は、最も古い価格が配列の中で最も高いインデックスを持っている場合、右の符号を持つbを与えることになります。
既存のバッファの上に、別の正規化されたバッファを追加するだけです。)
回帰の傾きも面白いかもしれませんね。バックテストとフォワード要するに、このロジックで作業して、いろいろな予測器を試してみるのがよさそうです。
回帰の傾きも面白いかもしれませんね。バックテストとフォワード要するに、このロジックで作業して、いろいろなプレディクターを実験することができそうです。
コードありがとうございます、テストしてみました。悪化してしまいました。でも、早く確認したかったので、1年ではなく1ヶ月だけ最適化に時間をかけました。Fronttestでは、EAが最初は正常で、徐々にバランスが崩れ始め、その後スローダウンしていく様子を見ることができました。まだ新しいデータで少し生きている、悪くはない。
私ならこう変える
1) double a3 = regr[0]; - 0 番目のインデックスが時間的に最も古いデータです。ここの最新(最新)バーは49だろう(50が取られたので)、その方がいい。ただ、最後の方はオーバーローンになることもあるので、48の方が良いですね。また、インジケーターがオーバーローンになっていないかどうかも確認する必要があります。
rsiも同様で、新しいほうを削除していますね。インデックスがゼロのものを、最も古いものとして削除しようとするのは理にかなっている。
2) Yuri's Expert Advisorの第3バージョンでは、RNN関数が4つのパラメータを持つため、3つのrxとトレンドを取ることも可能です。一般に、この関数は、Yuriさんの記事に書かれているように、新しいパラメータで補完することができますが、パラメータが+1されるごとに、係数の数が2倍になります。
3) ストップとテイクオフは好きではありません。その最適値は新しいバーで常に変化します。正確には、最適な値というのはなく、特定の時間間隔でのEAにとって「都合の良い」値があるだけです。さらにブローカーはストップの前にローソク足を引くことができます。私なら、新しいバーごとに予測を立て、次のバーと予測まで単純にこの方向で取引を保持し、必要ならそこで反転させるようにします。
4)
ハンドルはOnInitで初期化する必要があり、EA作成時に毎回初期化する必要はない。また、配列には30個の要素がありますが、コピーされるのは28個だけです。すなわち、インデックス28と29はアクセスできない(誰もアクセスしないが、わからない)ので、埋まっていないのである。
コードありがとうございます、試してみました。もっとひどいのを買った。しかし、1年ではなく1ヶ月しか最適化に時間をかけていないのは、早くテストしたかったからです。フロントテストでは、私のExpert Advisorは、最初は良いですが、その後、バランスを平らにし始め、その後、下に走ります。まだ新しいデータで少し生きている、悪くはない。
私ならこう変える
1) double a3 = regr[0]; - 0 番目のインデックスが時間的に最も古いデータです。ここの最新(最新)バーは49だろう(50が取られたので)、その方がいい。ただ、最後の方はオーバーローンになることもあるので、48の方が良いですね。また、インジケーターがオーバーローンになっていないかどうかも確認する必要があります。
rsiも同じで、新しいほうを削除していますね。インデックスがゼロのものを古いものとして削除しようとするのは理にかなっている。
2) Yuri's EAの第3バージョンでは、RNN関数に4つのパラメータが含まれており、それで3つのrsiとトレンドの両方を取ることができます。一般に、この関数は、Yuriさんの記事に書かれているように、新しいパラメータで拡張することができますが、パラメータが+1されるごとに係数の数が2倍になります。
3) ストップとテイクオフは好きではありません。その最適値は新しいバーで常に変化します。正確には、最適な値というのはなく、特定の時間間隔でのEAにとって「都合の良い」値があるだけです。さらにブローカーはストップの前にローソク足を引くことができます。私なら、新しいバーごとに予測を立て、次のバーと予測までこの方向で単純に取引を持ち、必要ならそこで反転させるようにします。
4)
ハンドルはOnInitで初期化する必要があり、EA作成時に毎回初期化する必要はない。また、配列には30個の要素がありますが、コピーされるのは28個だけです。すなわち、インデックス28と29はアクセスできない(誰もアクセスしないが、したいかもしれない)ので、埋まっていないのである。
バッファをコピーするときのゼロは、一番最初の値を返すと思っていたのですが、確認が必要ですね。
https://www.mql5.com/ru/docs/series/copybuffer
slの代わりにtrailingを追加したりしましたが、結果はあまりよくありません
ハンドルについてですが、リグレッションの時はinitに入れましたが、ラディーの時は入れ忘れたままです。
バックテストでも同じような結果が得られており、これらのパラメータでグリッドは適切な予測を行うことができます。統計を取ってみても、なぜ見逃してしまったのか、その理由がわからない。
そして、RNN3は、なぜか信号がかなり少なくなります。
私はまだよく理解していない正規化関数が50の代わりに5000バーの配列を取る方が良いかどうか、それは最初から、より正しい最大値と最小値を見つけ、時間の経過とともにそれらを更新しないので、テストの最初の段階で我々はエントリのためにかなり正しく正規化された値を受け取るが、後でより正確に
さらに、やはりチャートをデトレンドして、より消化しやすい値をグリッドに供給したい。例えば、定常系列の回帰勾配や自己相関をどう改善するかは、計量経済学が 苦手なのでまだ分からない、今はビデオクリップを見ているところだ。
また、このRNNと通常のMLPを後で比較したいのですが、mlpは出力に何かを与えなければならないので、そこではきちんとした比較にはならないでしょう。もう一つの方法は、3人のRNNの委員会を作り、その結果をRNN :Dや、畳み込みNSに送り込むことです。クラウドでも最適化するのに非常に時間がかかる。それよりも、3つのRNNをMLPに送り込み、価格刻みで出力することで、理論上はオーバートレーニングから解放されます。すなわちRNNがオートエンコーダの役割を果たすことになる http://cyberleninka.ru/article/n/avtoenkoder-podhod-k-ponizheniyu-razmernosti-vektornogo-prostranstva-s-kontroliruemoy-poterey-informatsii
ARIMAに適用できる見積もりを見つけることは、ほとんど不可能です。しかし、それで講義は終わってしまった。
ガーチはどうする?1日未満のタイムフレームでは、高頻度取引でもはるかに有望であり、非常に広く利用されています。
ARIMAを適用できる見積書を見つけるのは、ほとんど不可能である。しかし、それで講義は終わってしまった。
ガーチはどうする?1日未満のタイムフレームでは、高頻度取引でもはるかに有望であり、非常に広く利用されています。
こういうのは知り始めたばかりで、まだ実験もしていないんです。ゴミの話しか聞いたことがない :)
MLPのオートエンコーダーとしてRNNを使うのはどうでしょうか?
私が理解する限り、リカレントネットワークは、論理的なルールのセットを持つタイプのオートエンコーダーである。
じゃあ、トレンドの引き算をして、それに自己回帰を適用して、回帰勾配と一緒にNSに値を突っ込むのはどうでしょう? こういうのは知り始めたばかりで、まだ実験もしていないんですけどね
すぐにでも実験したほうがいい
多くの時間と無駄な知識を節約することができます。
ARIMAに適用できる見積もりを見つけることは、ほとんど不可能です。しかし、それで講義は終わってしまった。
ガーチはどうする?1日未満のタイムフレームでは、高頻度取引でもはるかに有望であり、広く利用されている。