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

 
アナクサゴール

この勘違いを したメーカーが言うのは褒め言葉にしか聞こえない。

まあ、私が親切なうちに使ってください :-)残念でなりません......。そして、記事を理解できなかったということは、それだけで嬉しいとさえ思っています。少ないほど、多いほど :-)

 

マキシムさん、こんにちは。

もし、高値と安値を追加したい場合は、calcsignal()関数だけを 変更する必要があります。そうでしょうか?

以下のコードは正しいですか?それとも、EAコードやライブラリコードに他の変更を加える必要があるのでしょうか?

また、このコードの中でインジケータコードを一つ教えてください。

void calcSignal ()

{

sig1 = 0;

for (int i = 0; i <ArraySize (ag1.agent); i ++)

{

CopyClose (_Symbol, 0.0, 100, ag1.agent [i] .inpVector);

normalizeArrays (ag1.agent [i] .inpVector);

}

for (int i = 0; i <ArraySize (ag1.agent); i ++)

{

CopyHigh (_Symbol, 0.0, 100, ag1.agent [i] .inpVector);

normalizeArrays (ag1.agent [i] .inpVector);

}

for (int i = 0; i <ArraySize (ag1.agent); i ++)

{

CopyLow (_Symbol, 0.0, 100, ag1.agent [i] .inpVector);

normalizeArrays (ag1.agent [i] .inpVector);

}

sig1 = ag1.getTradeSignal ();

}

 
うーん...悲しい番組
 
マキシム・ドミトリエフスキー:
様悲しきプログラミング

上記のコードが正しくないということでしょうか、それともGMDHコードの実装のことでしょうか?GMGHのコードは、私がすぐに見つけた大まかな実装に過ぎません。しかし、今のところ改善することはできません。もっと良いコーディング方法があると思うので、それも試してみたいと思います。

現在のソースコードでは、「ag1.agent [i] .inpVector」のように似た名前のエージェントや変数が多く、ドット演算子が複数あるので、コード全体を見るまで混乱します...。

 
FxTrader562 です。

上記のコードが正しくないということでしょうか、それともGMDHコードの実装のことでしょうか?GMGHのコードは、私がすぐに見つけたラフな実装に過ぎません...しかし、私はより良い方法があると思います...今のところありません

現在のソースコードでは、「ag1.agent [i] .inpVector」のように似た名前のエージェントや変数が多く、ドット演算子が複数あるので、コード全体を見るまで混乱します...。

前に説明したとおりです。100の予測変数が あるので、この配列に25種類の終値、25種類の始値、25種類の高値、25種類の安値をコピーする必要があります。合計 100

または、4つの予測変数の配列を作成し、1つのクローズ、1つのオープン、...または他の任意の異なる指標の値をコピーします。

フォーラムでのコミュニケーションは時間がかかりすぎるから、記事を待つとか(私にとっては)。

gdmhについて - いろいろな実装が ありますが、特に問題はありません。しかし、私のタスクのためには、さらに調査が必要です。

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

前に説明したとおりです。100の予測変数が あるので、この配列に25種類の終値、25種類の始値、25種類の高値、25種類の安値をコピーする必要があります。合計 100

または、4つの予測変数の配列を作成し、1つのクローズ、1つのオープン、...または他の任意の異なる指標の値をコピーします。

フォーラムでのコミュニケーションは時間がかかりすぎるから、記事を待つとか(私にとっては)。

gdmhについて - いろいろな実装が ありますが、特に問題はありません。しかし、私のタスクのためには、さらに調査が必要です。

はい、了解しました。

また、ソースコードを持っていますが、コメントが少ないため、理解し、変更するのに時間がかかります。また、私は専門家レベルのプログラマーではありません。なので、皆さんの力を借りて早送りしていたところです :))

とにかく、詳しい説明のある記事を待っています。

GMDHについては、先ほど申し上げたように、複数のアプローチ、複数の計算式がありますので、その中からRDFの実装に適したものを選択する必要があります。GMDHの一般式をwikipediaのリンクからMQL5のコードに翻訳・変換しただけのものです。

また、コード内の説明も十分に行い、理解しやすいようにしました。MQL5のコードを書く前に、すでに複数のPythonのコードを調べてみたのですが、私のニーズを満たすものはありませんでした。そこで、関数とswitch case文を使って、最もシンプルなGMDHの方法を書きました。

 
FxTrader562 です。

はい、了解しました。

また、ソースコードを持っていますが、コメントが少ないため、理解し、変更するのに時間がかかります。また、私は専門家レベルのプログラマーではありません。なので、皆さんの力を借りて早送りしていたところです :))

とにかく、詳しい説明のある記事を待っています。

GMDHについては、先ほど申し上げたように、複数のアプローチ、複数の計算式がありますので、その中からRDFの実装に適したものを選択する必要があります。GMDHの一般式をwikipediaのリンクからMQL5のコードに翻訳・変換しただけのものです。

また、コード内の説明も十分に行い、理解しやすいようにしました。MQL5のコードを書く前に、すでに複数のPythonのコードを調べてみたのですが、私のニーズを満たすものはありませんでした。そこで、関数とswitch case文を使って、最もシンプルなGMDHの方法を書きました。

リニアなケースを記述しています。例えば、1stライン、2ndラインなど、最適なメンバーを募集しています。そして、式から1つの(新しい)変数にベストメンバーを追加します。RDFの場合、非線形モデルなので、そうすることはできません。したがって、すべての行を独立変数として入力に加え、選択の周回ごとに

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

リニアなケースを記述しています。例えば、1stライン、2ndラインなど、最適なメンバーを募集しています。そして、式から1つの(新しい)変数にベストメンバーを追加します。RDFの場合、非線形モデルなので、そうすることはできません。したがって、すべての行を独立変数として入力に加え、選択の周回ごとに

より良いお手伝いをさせていただくために、あなたが実装しようとしている箇所を正確にサンプルコードで教えていただけませんか?

w1,w2,w3...といった重さのことでしょうか?これらは、x1.w1,x2.w2,x3.w3...を与えたときに、学習中に計算されてRDFに格納されなければならないものである。を個別入力とする。

なお、関数を 考える場合、現実には1次関数と2次関数というものは存在せず、2次関数は常に無限の1次関数に分解することができます。そのため、1次関数の小さな断片を入力として使っており、必要であれば任意の数に拡張することができるのです。でも、コーディング部分については、今はあまり言えません。

よりよく理解するために、あなたが行き詰っているRDFのコードを教えてください。

私の理解では、GMDHの公式をコードに変換しています。ですから、もしそれが必要であれば、ランダム性を持たせるか、あるいは単純にベースとなる関数の構成要素を任意の数に拡張してランダムに選択すればいいのです。

 
FxTrader562 です。

より良いお手伝いをさせていただくために、あなたが実装しようとしている箇所を正確にサンプルコードで教えていただけませんか?

w1,w2,w3...といった重さのことでしょうか?これらは、x1.w1,x2.w2,x3.w3...を与えたときに、学習中に計算されてRDFに格納されなければならないものである。を個別入力とする。

なお、関数を 考える場合、現実には1次関数と2次関数というものは存在せず、2次関数は常に無限の1次関数に分解することができます。そのため、1次関数の小さな断片を入力として使っており、必要であれば任意の数に拡張することができるのです。でも、コーディング部分については、今はあまり言えません。

よりよく理解するために、あなたが行き詰っているRDFのコードを教えてください。

私の理解では、GMDHの公式をコードに変換しています。ですから、もしそれが必要であれば、ランダム性を持たせるか、あるいは単純にベースとなる関数の構成要素を任意の数に拡張してランダムに選択すればいいのです。

線形係数を求めるには、線形回帰を使わなければならないが、RFで直接求めることも可能である。ちょうど今、そのことについて興味深い本を読んでいるところです。

本書では、代数的ネットワーク多項式、カーネルネットワーク多項式、直交ネットワーク多項式、三角ネットワーク多項式、有理ネットワーク多項式、動的ネットワーク多項式など、木構造ネットワークの形をしたさまざまな多項式を開発しています。
 
マキシム・ドミトリエフスキー

線形係数を求めるには、線形回帰を使わなければならないが、RFで直接求めることも可能である。ちょうど今、それについて面白い本を読んでいるところです。

もし、GMDHの正確な実装が必要で、さらにmを大きくして私のコードを拡張する必要があるのなら、それは可能です。しかし、私があなたにやってほしいのは、まずm値を3にして実装し、M1タイムフレームでテストすることです。M1タイムフレームのローソク足の終値は非常に小さく、したがって、3つに分割すれば目的を達成するのに十分だからです。

このように、GMDHを実装してM1タイムフレームでどうにか動くようになれば、それ以上のタイムフレームでは、10や15など、より大きなmの値でforループを拡張することができるのです。

ところで、現在実装されているコードでは、以下のようなときにカーネルトリックを使われたのでしょうか?

#define _kernel(ker,degree) (cos(MathPow(ker,degree)))

私は自分のアルゴを実装する前に様々なカーネルをテストしたかったので、完全に調査しましたが、あなたのコードでどのカーネル関数が 使用されているか見つけることが出来ませんでした。

http://crsouza.com/2010/03/17/kernel-functions-for-machine-learning-applications/

どのカーネル関数なのか、あるいはあなたの計算式なのか、参考までに教えてください。

また、現在お使いのコードにキャンドルシミュレーションアルゴリズムを実装することに成功しました。しかし、1週間程度のシミュレーションで効果が出る場合もあります。そこで、シミュレーションを始める前に、いくつか確認したいことがありました。

1.使用する機種に制限はありますか?100万個のモデルを使用することはできますか?

2.使用するエージェントに制限はありますか?1000エージェントを使用することはできますか?

3.学習データが大きすぎると、取引判断のスピードが遅くなるのでは?つまり、".rl "ファイルが大きすぎる場合、取引実行時間の遅れはどの程度になると予想されますか?それについて、1秒あたりの反復回数やforループなどの計算をしたことがありますか?

4.基本的に、私はあなたのモデルとエージェントを使用して、トレーニング中にランダムなローソクを作成し、ライブ取引のために「.rl」ファイルに格納されます。このバージョンの「.rl」ファイルは、前バージョンの「Mtrees」ファイルに似ていますが、合っていますか?

1,000万本から1億本程度のキャンドルのシミュレーションを予定していますが、これは約280年から2,800年の最適化に匹敵します。しかし、トレーニングを実行する前に、コードや実行の速さなどについて複数のことを確認したかったのです。

時間があるときに、私の上記の質問に目を通して、さらに計算するのに役立つ答えを教えてください...。

理由: