記事"MetaTrader 5での自己組織化機能マップ(Kohonenマップ)の使用"についてのディスカッション - ページ 4 123456 新しいコメント Dmitriy Skub 2011.07.12 10:54 #31 Graff:何に使うのかは知らない。端末から直接情報を得ることができる。おそらく誰かが手動でカウントしているのだろう。SZY: 誰かスクリプトなしで、Expert Advisorがターミナルから直接情報を取り込めるように改造してくれない? まあ、怖いのであれば、もちろん無理でしょうけど)。 Serge 2011.07.12 12:04 #32 sergeev: どのような情報が必要ですか? つまり、SOM.mq5 Expert Advisorが独立して(DJ.mq5とFX.mq5スクリプトの助けを借りずに)ターミナルからデータを受信できるようにします。 supercoder2006 2012.07.26 19:26 #33 この記事には、エキスパート・アドバイザーを取得するためのすべてが含まれていますか? ニューラルネットワークエキスパートアドバイザーの 実装に興味があります。 Sealdo Сергей 2012.08.31 22:20 #34 フォーラムの皆さん、こんにちは!とても興味深い記事ですね!私もこのSOMコードを使おうとしています。ウェイトp1-p4 - 市場からのデータ(今のところZZポイントの差だけ)。p5 - 仮想買いトレードの結果 - TP=1, SL=-1 (今のところTP=SP=300pp)。順張りの場合、p5のBMU(最も近いベクトル)1つだけでは、結果を予測するには十分ではないように思えます。どなたか、BMUからの距離を考慮して、BMUの周囲(わかりやすくするために青色)の結果を計算する方法を教えてください。 Viktor Vasilyuk 2012.09.26 22:21 #35 sealdo:どなたか、BMUからの距離を考慮して、BMUの周囲(わかりやすいように青で囲んだ部分)の面積を計算する 方法を教えていただけませんか? 私が考えていたのもそうだったのですが、座標を使ってプログラム的にこの面積を求める方法ということですか? Sealdo Сергей 2012.10.31 20:22 #36 progma137: 私もそう思っていたのですが、この面積を座標を使ってプログラムで求める方法ということですか?CSOMクラスにはすでに関数があります:int BestMatchingNode(double &vector[]); // 与えられたベクトルに基づいてグリッド内の最適なノードを見つける。グリッドの次元を知れば、BMU(この実装ではBMN)の座標を計算するのは簡単です。 ここでは、BMUからの距離を考慮して、BMU周辺の領域の(1つのパラメータ(重み)による)合計結果を正確に計算したいと思います。例えば、直径 10 のニューロン(セル)の領域を考える。最も近いニューロンは結果に大きな影響を与える。そして遠ければ遠いほど弱くなる......。ここで、グリッドの端に位置する BMU シェルをどのように扱うべきかという疑問がある。結局のところ、それらは隣人が少ないのだ。 Sergey Gustaytis 2012.11.13 23:33 #37 地図上で小節を見つける方法を教えてください。4つのベクトルを入力し、4つの地図を得ます。そのすべてのマップに軌跡を描きたいのですが、例えば、現在の日(日数分)から3つ前の小節までの軌跡を描き、クラスターの状態を分析したいのです。例えば、void DrawTrajectory(int from, int count) 関数を使えば、すべてのマップに指定された小節番号からの軌跡を描く ことができます。 そして2番目の疑問は、どのようにして出力マップを得るか、そして最も重要なことは、頻度マップを得るか、ということです。 Sergey Gustaytis 2012.11.17 03:40 #38 返事を待たずに...。入力ベクトルの指定された数から、指定されたステップ数だけ軌跡を入力マップに表示する方法を書いたのですが、何か間違っていたら許してください - 私はプログラマーではありません :)誰か、このとても賢いライブラリ(作者とアレクセイ・セルゲーエフに感謝)を実用レベルにまで引き上げてくれないだろうか?//------------------------------------------------------------------ ShowTrajectory void CSOM::ShowTrajectory(int n_patern, int m_cnt) // 入力ベクトルの軌跡を示す方法 { if(m_cnt<=0) return; int idx=0,x[],y[], dy=0; string name[]; ArrayResize(x,m_cnt); ArrayResize(y,m_cnt); ArrayResize(name,m_cnt); double data[]; ArrayResize(data, m_dimension); for(int ind=0; ind<m_nSet; ind++) // 訓練セットからのベクトル値でデータを設定する { if(ind<n_patern) continue; // 必要な入力パターンを待つ for(int k=0; k<m_dimension; k++) data[k]=m_set[m_dimension*(ind)+k]; int winningnode=BestMatchingNode(data); // 最も近いノードのインデックスを見つける // トレース用に選択された入力パターンの座標を保存する int x1,y1,x2,y2; m_node[winningnode].GetCoordinates(x1,y1,x2,y2); if(m_bHexCell) // もし六角形なら { int x_size=int(MathAbs(x2-x1)); int y_size=int(MathAbs(y2-y1)); dy=y_size; y1=y1+y_size/4; y2=y2+y_size/4; } x[idx]=(x1+x2)/2; y[idx]=(y1+y2)/2; name[idx]=(string)ind; //x[idx]=(int)m_node[winnode].X(); //y[idx]=(int)m_node[winnode].Y(); idx++; m_cnt--; if(m_cnt==0) break; // 必要な入力パタニオンの数を記録する } // 軌跡、ノード、碑文を描く int bcol=clrBlack; for(int k=0; k<m_dimension; k++) { int yp=0, yc; int sz=ArraySize(x); for(int j=0; j<sz; j++) { yc=y[j]; // ノード int sh=2; if(j>0) sh=1; m_bmp[k].DrawRectangle(x[j]-sh,y[j]-sh,x[j]+sh,y[j]+sh,bcol,true); // 軌道 if(j<sz-1) m_bmp[k].DrawLine(x[j],y[j],x[j+1],y[j+1],bcol); yc=y[j]-dy; if(MathAbs(yp-yc)<dy) yc-=dy; yp=yc; // パテルナ(小節)の数 m_bmp[k].TypeText(x[j],yc,name[j], clrIndigo); } } } Sealdo Сергей 2013.01.05 22:47 #39 CSOMクラスでは、CSOM::CSOM()コンストラクタでのみ、ロードされた学習ベクトルのカウンタm_nSetがリセットされます。その結果、ループ再トレーニング・モードではトレーニング・ベクトルの数が増え続けます。CSOM::LoadTrainData(...)メソッドに m_nSet=0; という行を追加するのがよいでしょう. Viktor Vasilyuk 2013.01.16 16:34 #40 GSB:もしかしたら、誰かがとても便利なライブラリ(著者とアレクセイ・セルゲーエフに感謝)を実用レベルにまで引き上げて くれるかもしれない! これらの地図は、分析する必要があるデータを確立し、それに基づいて結論を出すための手段に過ぎない。 123456 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
何に使うのかは知らない。端末から直接情報を得ることができる。
おそらく誰かが手動でカウントしているのだろう。
SZY: 誰かスクリプトなしで、Expert Advisorがターミナルから直接情報を取り込めるように改造してくれない?
どのような情報が必要ですか?
この記事には、エキスパート・アドバイザーを取得するためのすべてが含まれていますか?
ニューラルネットワークエキスパートアドバイザーの 実装に興味があります。
フォーラムの皆さん、こんにちは!
とても興味深い記事ですね!私もこのSOMコードを使おうとしています。
ウェイトp1-p4 - 市場からのデータ(今のところZZポイントの差だけ)。
p5 - 仮想買いトレードの結果 - TP=1, SL=-1 (今のところTP=SP=300pp)。順張りの場合、p5のBMU(最も近いベクトル)1つだけでは、結果を予測するには十分ではないように思えます。
どなたか、BMUからの距離を考慮して、BMUの周囲(わかりやすくするために青色)の結果を計算する方法を教えてください。
どなたか、BMUからの距離を考慮して、BMUの周囲(わかりやすいように青で囲んだ部分)の面積を計算する 方法を教えていただけませんか?
私もそう思っていたのですが、この面積を座標を使ってプログラムで求める方法ということですか?
CSOMクラスにはすでに関数があります:
int BestMatchingNode(double &vector[]); // 与えられたベクトルに基づいてグリッド内の最適なノードを見つける。
グリッドの次元を知れば、BMU(この実装ではBMN)の座標を計算するのは簡単です。
ここでは、BMUからの距離を考慮して、BMU周辺の領域の(1つのパラメータ(重み)による)合計結果を正確に計算したいと思います。例えば、直径 10 のニューロン(セル)の領域を考える。最も近いニューロンは結果に大きな影響を与える。そして遠ければ遠いほど弱くなる......。
ここで、グリッドの端に位置する BMU シェルをどのように扱うべきかという疑問がある。結局のところ、それらは隣人が少ないのだ。
地図上で小節を見つける方法を教えてください。
4つのベクトルを入力し、4つの地図を得ます。そのすべてのマップに軌跡を描きたいのですが、例えば、現在の日(日数分)から3つ前の小節までの軌跡を描き、クラスターの状態を分析したいのです。
例えば、void DrawTrajectory(int from, int count) 関数を使えば、すべてのマップに指定された小節番号からの軌跡を描く ことができます。
そして2番目の疑問は、どのようにして出力マップを得るか、そして最も重要なことは、頻度マップを得るか、ということです。
返事を待たずに...。入力ベクトルの指定された数から、指定されたステップ数だけ軌跡を入力マップに表示する方法を書いたのですが、何か間違っていたら許してください - 私はプログラマーではありません :)
誰か、このとても賢いライブラリ(作者とアレクセイ・セルゲーエフに感謝)を実用レベルにまで引き上げてくれないだろうか?
CSOMクラスでは、CSOM::CSOM()コンストラクタでのみ、ロードされた学習ベクトルのカウンタm_nSetがリセットされます。
その結果、ループ再トレーニング・モードではトレーニング・ベクトルの数が増え続けます。
CSOM::LoadTrainData(...)メソッドに m_nSet=0; という行を追加するのがよいでしょう.
もしかしたら、誰かがとても便利なライブラリ(著者とアレクセイ・セルゲーエフに感謝)を実用レベルにまで引き上げて くれるかもしれない!