"New Neural "は、MetaTrader 5プラットフォーム用のオープンソース・ニューラルネットワークエンジンプロジェクトです。 - ページ 46

 
maxfade です。

ひげもじもない

生まれた瞬間に「0」なのはどうかと思うし、エラーやディフィクションは常に存在すると思う。
ちなみに、そうですね、赤ちゃんは少なくとも握力と嚥下反射を持って生まれてきますが、それも脳の働きです。だから、特に生まれるずっと前から学習が始まっているので、脳がゼロということはないのです。新生児の鱗を積むことを覚えたというより、進化の問題です。
 

パラメータ付きのコンストラクタでオブジェクトを生成 すると、シーケンスの最後に新しいシーケンスが初期化されるように設計し直しました。

少し動作が遅くなりますが、シーケンスは常にユニークになります。

標準のコンストラクタで作成する場合は、Srand()を呼び出す必要があり、シーケンスは同じように円形に回転することになります。

  uint st=GetTickCount();
  CRandm *rnd=new CRandm((uint)TimeLocal(),10000);// длинна последовательности
  for(int i=0;i<1000000;i++)// количество вызовов
    {
     rnd.Rand();
    } 
  delete rnd;   
  Print("time=",GetTickCount()-st);
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
ファイル:
Randm.mqh  5 kb
 

仮想注文バイブル(マーケットでのオープン/クローズをエミュレート。コマンドは実際の注文とほぼ同じ)の検討を提案します。

ストラテジーテスター 以外で)ヒストリカルデータでモデルを実行する必要がある場合に便利でしょう。

何を忘れているんだ?何を改善、追加、変更、修正できるのか?- 図書館はとても基本的なものです。

これまで、買い0と売り1の操作のみ実装されていました。

ファイル:
C_Orders.mqh  15 kb
 

講義1はこちらhttps://www.mql5.com/ru/forum/4956/page23

レクチャー2はこちらhttps://www.mql5.com/ru/forum/4956/page34

レクチャー3はこちらhttps://www.mql5.com/ru/forum/4956/page36

第4講視覚野の組織化の時系列変換への応用

そこで、私たちの課題は、脳の原理に従って価格パターンの分類ニューラルネットワークを構築することです。このネットワークは、入力情報(価格)を変換するモジュールと、既知の原理(サポートベクターマシンなど)に従って構築できる分類モジュールの2つに分けることができる。

前回の講義で、生物学的な情報変換の例として視覚野のHMAXモデルを紹介したが、このモデルの大きな欠点は、重みの値(受容野)を学習させず、単に脳神経細胞の生体計測値から取ってきていることであった。例えば、V1(S1)の単純なニューロンの受容野は、こちらの動画https://www.youtube.com/watch?v=Cw5PKV9Rj3o のように測定されます(聞こえてくるクリック音はニューロンのパルスです)。時系列の引用の場合、情報を変換する神経細胞の「受容野」があらかじめ未知である。だから、自分たちで探すしかないのです。例えば、価格変換の第1層(S1層)は、視覚野のS1層になぞらえて、次のように構築することができます。

この例では、S1層は0から5までの6つのサブレイヤーを持ちます。同じサブレイヤのニューロン(丸)は同じ入力重み(受容野)を持ち、従来は左の矩形で示されていた。ニューロンの各サブレイヤーはそれぞれ受容野を持つ。もし、k=0...5で受容野w_0,kを持つ部分層(方向は上)があれば、受容野-w_0,kを持つ部分層(方向は下)があることが予めわかっている。正のフィールドを持つ層に偶数(0、2、4)、負のフィールドを持つ層にファジー数(1、3、5)で番号を付けるとする。さらに、S1サブレイヤーは異なるサイズの受容野を持つ必要があることもわかっています。フィールドサイズをサブレイヤ0(とその負の対応物1)からサブレイヤ4(とその負の対応物5)まで増加させるとする。同じ列のすべてのニューロンには同じ価格が入力される(例えば、最初の列のニューロンには価格x_0...x_5が入力される)。次の列のニューロンの入力には、価格を1小節分シフトしたもの(x_1...x_6)などが入力される。つまり、S1層は、方向(上、下)、大きさ、時間位置が異なる受容野を持つニューロンで構成されている。

S1層のニューロンの入力重みの学習は、異なるサブレイヤーからの1列のニューロンに対してのみ行われ、どのサブレイヤーでもかまわない。そして、各サブレイヤーの残りのニューロンに対して、すべての重みがコピーされる。学習は教師なしで、S1層の入力に異なる価格パターンを与え、何らかのルールで重みを変化させることで行われる。ニューロン重みの自己学習には多くの規則があり、こちらでよく説明されている。

ミラー、K.D.、マッケイ、D.J.C.(1994).ヘッブ学習における制約の役割, Neural Computat.

神経細胞の自己学習の最初の規則は、1949年にHebbによって提唱された(https://en.wikipedia.org/wiki/Hebbian_theory)。このルールは、「あるニューロンが他のニューロンから入力を受け、かつ両者が高い活性を持つ場合、ニューロン間の重みを増加させなければならない」というものである。数学的には以下のように記述されます。

dw_i = mu*x_i*y,

ここで dw_i は重み w_i の増分、x_i は i 番目の入力の値、y はニューロンの出力、mu は学習率である。ここでは、競争的学習則の クラスに属するオジャ則(https://en.wikipedia.org/wiki/Oja's_rule)を用いることにする。

dw_i = mu*y*(x_i - y*w_i/a),

dw_i は重み w_i の増分、x_i は i 番目の入力の価格、y は y = SUM(w_i*x_i, i=0..m-1) として計算されるニューロンの出力、μ は学習率、a はパラメータ(重みの二乗和 SUM(w_i^2,i=0..m-1) が a になる傾向)である。このルールの利点は、価格相場の主固有値としての重みを自動的に見つけることができる点である。つまり、小木のルールはPCA(Principal Component Approach)を再現しているのである。これは、視覚野S1層の受容野が視覚情報の主な固有ベクトルを表しているという生物学的な仮定と一致する。添付のC++コードは、EURUSD M5クォートを入力として、32個のS1サブレイヤーの重みを自動的にトレーニングし、mu=1、a=1。これらの重みを入力の関数として以下に示す。

最初の2つのサブレイヤー(0と1)の重みは、赤で示されている。0.707と+0.707の2つのみである。サブレイヤー2、3の重みはオレンジ色で表示されている。0でない値を4つ持つ。などなど。

添付のコードを使うには、BoostとCImgライブラリをインストールする必要があります。http://cimg.sourceforge.net/。 私は上位層(C1、S2、C2)まで到達していませんし、おそらく長い間到達しないでしょう。私の以前の文章を読んだ人は、すべてのHMAX層の仕組みを理解し、価格見積もり変換モジュールを完成させるはずです。次回(最終回)は、SparseNetsについてお話します。

ファイル:
BrainPower.zip  907 kb
 

仮想注文バイブル(マーケットでのオープン/クローズをエミュレート。コマンドは実際の注文とほぼ同じ)の検討を提案します。

ストラテジーテスター 以外で)ヒストリカルデータでモデルを実行する必要がある場合に便利でしょう。

何を忘れているんだ?何を改善、追加、変更、修正できるのか?- 図書館はとても基本的なものです。

これまで、買い0と売り1の操作のみ実装していました。

図書館にありがとうございました。簡単な使い方の説明を受けることはできますか?
 
グラフ
ライブラリーをありがとうございました。使い方の簡単なチュートリアルをお願いします。

実は、語るべきことはあまりないんです。

各履歴の実行前に、注文履歴 をクリアするために

void Initialise(int MaxPossibleCountOrd, double Spread, double Point_);

を作成し、取引戦略に応じて必要なコマンドを呼び出します。

int    OrderOpen        (int Type, double Volume, int Time,double Price,double SL, double TP);
void   Possible_SL_or_TP(int Time, double PriceHigh,double PriceLow);
void   OrderClose       (int Ticket, int Time,double Price);
void   OrderCloseAll    (int Time, double   Price);
int    ProfitTradeCount ();
int    TotalPipsProfit  ();
int    LossSeriesCount  ();
int    ProfitSeriesCount();

スプレッドは固定で、初期化時に設定されます。フローティングスプレッドについては、適切な機能を追加する必要があります。私見では、この機能は必要ないと思います。楽器に対して可能な限り最大のスプレッドを設定すればよいのです。

 
joo:

特に語るべきことはないのですが。

各履歴の実行前に、注文履歴 をクリアするために、以下のコマンドを呼び出す必要があります。

を実行し、取引戦略に応じて必要なコマンドを呼び出す。

スプレッドは固定で、初期化時に設定されます。フローティングスプレッドについては、適切な機能を追加する必要があります。私にとっては地獄のようなもので、楽器の最大可能スプレッドを設定するだけで十分です。

ありがとうございます、今夜試してみます。MT4 のアナログhttps://www.mql5.com/ru/forum/124013 が参考になるかもしれません。
Простая идея мультивалютного тестера с примером реализации - MQL4 форум
  • www.mql5.com
Простая идея мультивалютного тестера с примером реализации - MQL4 форум
 

申し訳ありませんが、誤算だったようです。今のところ、実質的にプロジェクトに 関わる機会はない。

参加したい気持ちは大きいのですが、時間と体力がどうしても足りず、残念です。

試験終了後(12月中旬)には参加できる予定です。ちなみに、そのうちの1つはニューラルネットワークに直接関係するコースです。

 

ちなみに。対象機能は2つ。ロジスティック 回帰、単回帰の場合。

分類はロジスティック回帰の一例である。

対象関数はロジスティック回帰用です。

そして、通常の回帰の場合。

その誘導体は類似しているがそのためか、区別は普段は黙認されています。

最初のものは、分類問題において出力シグモイド層で使用される。

2つ目は、予測問題における線形出力に使用される。

 
TheXpert です。

申し訳ありませんが、誤算だったようです。今のところ、実質的にプロジェクトに関わる機会はない。

参加したい気持ちは大きいのですが、時間と体力がどうしても足りず、残念です。

試験終了後(12月中旬)には参加できる予定です。ちなみに、そのうちの1つはニューラルネットワークに直接関係するコースです。

角の同志に散っていくんですね。まさかね。