ニューラルネット - ページ 7

 
Cyclesurfer:
素晴らしい新デジタル! 私は数分後に資料を見ます...ロシア語を取り出す必要があります...それはあまり良くないですが、私はAltaVistaと相まって、まともな試みをすることができると思います。 私は現在CORTEXで他のニューラルネットワーク(これからはNN)のコーディングをしていて、MQ4に変換する予定です...このスレッドは絶対に続けるべきだと思います。 NNは基本的に脳を模倣したアルゴリズムで、(人間の脳とは限らないが、それは非常に複雑だ)学習しながら進む。 私はEAを、似たようなシグナルが出たときに、過去に出た小さなパターンに基づいて、特定のシグナルを取るかどうかのアドバイスを与えるように書いています。 NNの多くは、私たちや他のアルゴリズムにとって意味のないような小さなパターンをデータから探し出し、そのパターンが時間とともにどうなるかを見ているのです。 最初のEAはBrain Trendを搭載する予定です。 CORTEX のコーディングには時間がかかります。というより、NN をトレーニングして完璧なものにするのに時間がかかります。 もしどなたかCORTEXやコード変換に詳しい方がいらっしゃいましたら、ぜひお助けください。 ロシアンフォーラムがなぜコマーシャルをするのか、その理由は理解できます。 それで...皆さんはどう思われますか?

このスレッドには、このソフトに関する人が何人か書かれています。そのうちの一人が上に引用されています。

 

MatlabとMetatraderを使ったニューラルネットワーク

こんにちは。

私はMatlabを使用して、いくつかのペアのためのニューラルネットワークを開発しましたが、Matlabからmql4へNNを再プログラミングするのに問題があります。

テストとして、i+10とi+20の価格からUSDJPYの価格を予測する小さなニューラルネットワークを作成しました。2つの入力、3つの隠れ層、1つの出力を持っています。隠れ層の活性化関数は tansigmoideで、出力はlinearである。

NNの出力と実際の価格をプロットすると、NNが機能していることがわかりますが、私が行ったコードでは、間違いなく機能していません。

隠れ層の計算された重みは:

[13.8525 -43.4534;

-11.2084 18.4331;

-0.30603 0.01022]

隠れ層から出力への重みは、以下の通りです。

[0.0020021 0.0047956 -3.4143]

隠れ層のバイアス:

[13.876;

2.644;

0.083215]

出力のバイアス

[0.27514]

問題は活性化関数にあり、tan sigmoideであるべきです。価格が100以上なので、MathExp(-100)は非常に小さいものを与えてしまいます...

以下は、このコードの興味深い部分です。

>>

double a1=iClose("USDJPY",0,i+10)。

double a2=iClose("USDJPY",0,i+20)。

//ノード (1,1)

double Sum_node_1=13.8525*a1 -43.4534*a2+13.876;

double Sigmoide_node_1=(1-MathExp(-Sum_node_1))/(1+MathExp(-Sum_node_1));

//ノード (1,2)

double Sum_node_1_2=-11.2084*a1+18.4331*a2+2.644;

double Sigmoide_node_1_2=(1-MathExp(-Sum_node_1_2))/(1+MathExp(-Sum_node_1_2));

//ノード (1,3)

double Sum_node_1_3=-0.30603*a1+0.01022*a2+0.083215;

double Sigmoide_node_1_3=(1-MathExp(-Sum_node_1_3))/(1+MathExp(-Sum_node_1_3)); //Sum_node_1_3=(1-MathExp(-Sum_node_1_3));

//---- 終了値 -----

double Sum_node_2_1=(0.0020021*Sigmoide_node_1_1+0.0047956*Sigmoide_node_1_2-3.4143*Sigmoide_node_1_3+0.27514);

<<

ご協力ありがとうございました。

 

Matlabでニューラルネットワークを 構築する際の問題点を説明するために、例を示します。掲載した画像は、EURGBPの目標値(X)とニューラルネットワークの出力(Y)を示しています。最悪の場合、0.7の実勢価格に対して、NNの出力は0.68から0.73の間になります(かなり悪いですが、これは単なるテストです!)。

NNの重みを使って出力値を手で計算すると、0.75になりますが、これは0.7では不可能です...。ということは、出力の計算のどこかで間違っているに違いない...。以下はその式です。

-1.1261*tansig(-1.6589*0.6964+1.4776*0.6936+4.5965)

-0.013796*tansig(-2.6065*0.6964+ 4.3402 *0.6936+0.30321)

+1.2166*tansig( 0.88612*0.69669364+0.11309 *0.6936+0.055821)+1.1116

重みの値

-入力から層への重み

[-1.6589 1.4776;

-2.6065 4.3402;

0.88612 0.11309]

-層への重み

[-1.1261 -0.013796 1.2166]

-層1へのバイアス

[4.5965;

0.30321;

0.055821]

-レイヤー2へのバイアス

[1.1116]

出力計算に使用される2つの入力価格は、:

0.6964

0.6936

ネットワークは2入力/3隠れ/1出力で、隠れ層はTangente sigmoide activation、出力はlinear activationです。

ありがとうございました。

ファイル:
captureplot.jpg  23 kb
 

それに加えて、正しいTangente sigmoide活性化関数が、私のmql4コードでは間違っていました。正しい関数は、2/(1+MathExp(-2* x ))-1 です。

乾杯

 

最初の成果

このスレッドは少し死んでいるように見えますが、私はまだ周りにニューラルネットワークに興味を持っている人がいることを望みます!そこで、あなたのニューラルネットの経験をここで共有してください。

私はすでにニューラルネットの予測能力をテストするために、いくつかの要因の組み合わせをテストしました。

様々な論文や投稿で読んだように、以前のHigh-Low-Open-Closeを使うのは全く効率的でないように思われます。NNは完全に暗礁に乗り上げています...。実数値とNNの出力のFittingプロットは水平であり(1枚目 Open-Low-High-Close.jpg)、全く予測できていないことになる。これは、NNでロトリー数字を見つけようとしたのと同じ結果です。 入力と出力の値を変えてみましたが、正規化してもしなくても、結果は同じです。

では、何を見るのが悪いのでしょうか?それは、テクニカル指標は ずっと良い仕事をするようです。私は、絶対価格を予測するための入力として古典的な指標のミックスをテストしました。フィッティングプロットはベストではありませんが、悪くはありません(2nd pic - Technical factors inputs.jpg).また、絶対値を使うのは非常に悪い考えだと思います。

移動平均の傾きを使って将来の傾きを予測すると、反転の可能性を特定するのに興味深い結果が得られる(3枚目 MA Slope.jpg)。

もう一つの興味深い研究方法は、良い取引条件を評価するためにNNを使用することです。そこで、現在の終値と将来の高値・安値との距離から、正規化したスコアを作成しました。このスコアが高ければ、次の4つの期間において、現在の終値と将来の高値の間の距離が高く(利益先行の買い)、低値までの距離が低い(大きなドローダウンがない)ことを意味します。私は今のところこの方法で成功したことはありません。

この方法は今のところ成功していません。

ファイル:
 

Webesaさん、おめでとうございます。

Webesa様、ありがとうございます。

良い結果ですね。

しかし、1つの質問:ローソク間のより良い関係を近似するために、より大きなNN(より多くの入力、より多くの層、より多くのニューロン)を使用する方が良いのではないでしょうか?

 

ニューラルネットからDLLへ

こんにちは。

MatlabやNeurosolutionsで学習したニューラルネットを 含むDLLをmq4スクリプトに統合した経験のある方はいらっしゃいませんか?

 
webesa:
このスレッドは少し死んでいるように見えますが、私は周りにまだニューラルネットワークに興味を持っている人がいることを望みます!というわけで、NNetsの経験をここで共有してください!

私はすでに、ニューラルネットの予測能力をテストするために、いくつかの要因の組み合わせをテストしました。

いろいろな論文や投稿を読むと、以前のHigh-Low-Open-Closeを使うのは全く効率が悪いようです。NNは完全に暗礁に乗り上げている...。実数値とNNの出力のFittingプロットは水平であり(1枚目 Open-Low-High-Close.jpg)、全く予測できていないことになる。これは、NNでロトリー数字を見つけようとするのと同じ結果である。

入力と出力の値を変えてみても、正規化してもしなくても、結果は同じです。

では、何を見るのが悪いのでしょうか?テクニカル指標の方がずっとうまくいくようです。私は、絶対価格を予測するための入力として、古典的な指標の組み合わせをテストしました。フィッティングプロットはベストではありませんが、悪くはありません(2nd pic - Technical factors inputs.jpg).また、絶対値を使うのは非常に悪い考えだと思います。

移動平均の傾きを使って将来の傾きを予測すると、反転の可能性を特定するのに興味深い結果が得られる(3枚目 MA Slope.jpg)。

もう一つの興味深い研究方法は、良い取引条件を評価するためにNNを使用することです。そこで、現在の終値と将来の高値・安値との距離から、正規化したスコアを作成しました。このスコアが高ければ、次の4つの期間において、現在の終値と将来の高値の間の距離が高く(利益先行の買い)、低値までの距離が低い(大きなドローダウンがない)ことを意味します。この方法は今のところ成功したとは言えません。

また、コメントや体験談をお待ちしています。

移動平均を 利用したNNは具体的にどのような入力・出力だったのでしょうか?

 
 

継続的に再トレーニングする必要がなければ、DLLは必要ないというのが正しいのでしょうね。

そのためのテンプレートを共有しませんか?