SOM:調理法 - ページ 4

 
alexeymosc:

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

何度か掲示板の古参の方にどうしたのか聞いてみました。fakyuなどに送っていただき、読ませていただきました。一般的に、私はあなたなしで行うことはできません - そうでなければ私は実験を自分で行う必要がありますが、私はNSを調理することを学ぶことを "感じる"。
 

これがSOMの仕組みです。

要するに、ネットワークの大きさを設定するのですが、例えば、常に5×5の正方形にします。各要素は基本的に値のベクトルであり、初期値はスクリプトによってあらかじめ生成され保存されている例の配列(サイズ40のベクトル)からランダムに選択するのが最適である。つまり、配列(例えば5000例の大きさ)からランダムに25例を取り出します。そして、そのアルゴリズムは次のようになります。学習配列から再びランダムに例を選び、それをネットワークの各ベクトル要素と比較します(ユークリッド距離測度を使用? 正確にはわかりません、多分他のものです)最も近いベクトルの値は、次の式で補正されます。この補正は、ガウス関数に従って、近隣のベクトルにも及ぶ。

要するに複雑なんです...私は統計パッケージでNSを構築しています。

https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D1%83%D1%8E%D1%89%D0%B0%D1%8F%D1%81%D1%8F_%D0%BA%D0%B0%D1%80%D1%82%D0%B0_%D0%9A%D0%BE%D1%85%D0%BE%D0%BD%D0%B5%D0%BD%D0%B0

 
SOM学習後、誤差が減らなくなったら、新しいベクトルを取り、25個のベクトルと比較して、誤差が最小になったものを勝利ニューロンとし、市場への参入を 示すなら参入、そうでないなら次のベクトルの形成を待つ、といった具合にするのです。
 

私はOpenとCloseはランダムな変数だと思います。あなたのTSがD1で比較的良い結果を示し、低いタイムフレームでは悪い結果を示すという事実は、取引をするためには、HighとLowバーの予測があれば十分であることを確認します。高値と安値だけでNSを作れますか?

また、難しいことでなければ、説明していただけますか。例えば、3つのTFと5つのバーという3x5のマトリックスを入力に持つようなNSを設計することは可能でしょうか?

alexeymosc:

NSを静的パッケージで構築しています。

NeuroSolutions 6とSTATISTICA 6は手元にあるのですが、Matcadのようなディストリビューションがどこかにあるのか、調べる必要があります。
 

--- NSはD1では比較的良い結果を示し、それ以下のタイムフレームでは悪い結果を示すという事実は、取引には高値と安値のバー予測があれば十分であることを証明しています。高値と安値だけでNSを作れますか?

私自身は、始値終値)で 価格シグナルを切るのはノイズでありランダムだと思うので、議論するつもりはありませんが、始値でモデルを構築するのは便利なだけで、堅牢なシステムで、メタトレーダーでの計算も素早くできます。高値の分析も可能です。興味本位でやってもいいし、投稿もしますよ。時間足バーで作業します、MT5ターミナルから履歴を取ります、ダウンロードが可能であれば。

--- また、3×5のマトリックスで、例えば、3TFと5バーのようなNSを投影することは可能でしょうか?

はい、もちろんそうです。想像力は無限大ですが、入力は常に2次元配列ではなく、ベクトルです。より正確には、任意の2次元、3次元配列などを1次元ベクトルに変換する。例えば、最初の5つの値は日足バーの始値、次の5つの値は4時間バーの始値、別の5つの値は時計バーの始値である。などなど・・・。NSにとっては、どのような順番でデータを与えても構わないのです。(ただし、パターン認識の場合は例外で、データシフトが重要であり、結果が劣化する)。

--- 手元にあるのはNeuroSolutions 6とSTATISTICA 6ですが、Matcadのようなディストリビューションもあるようなので、見てみようと思っています。

スタティスティカのルールNSファイルをCコードでアップロードするオプションがあり、それがDLLにコミットされ、EAはDLLにデータを送り込んでシグナルを受け入れるように規定されています。

 
alexeymosc:
より正確には、2次元、3次元などの配列を1次元のベクトルに変換し、例えば、最初の5つの値は日足バーの始値、次の5つの値は4時間バーの始値、さらに5つの値は時間バーの始値というようにします。などなど・・・。NSにとっては、どのような順番でデータを与えても構わないのです。(ただし、パターン認識の場合は例外で、データシフトが重要であり、結果が劣化する)。

入力データの順序が重要であることを確認しましたか? 私は100%確かめたいのですが、1つのTFでNSを構築することは、入力データの数を増やすことを意味し、これは順番にTAの公理につながる: "歴史は繰り返す "が、残念ながら - 歴史は繰り返さない、自己欺瞞は別のものです ;) 、あなたが日中の仕事のための戦略を作成する場合、おそらくNSを訓練するためのいくつかのTFの使用と50%を上回る確率で予測モデルを与えるでしょう。

SZZY:HighとLowを使ったNSの作成と表示を期待します。

 

2001年から2010年4月までの9年間の高値の時間足でSOMの学習を開始しました。 2010年5月から2011年5月まではOOS期間です。 入力データのベクトルを72(つまり3日間)に増やしました。 SOMのサイズを10×10ニューロンにしています。

入力変数の順番は確かで、人工的なデータで証明できるのですが、なぜか直感的にわかるんですよね......。私たちが扱っているのはあくまでも近似値であり、機械なのです。

マルチTF戦略についてですが、このアイデアには可能性があると思います。

Statistica 8をインストールして、同じページにするのはどうでしょうか。

 

私はStatistica 8を探します、バージョン6はすでに立っている、NSを作成するときにStatistica 8の必要な手順を詳細に記述することは困難ではない場合、すべてのプログラムでの作業を自分で学ぶために絶対に時間がありません。

入力データのHighとLowをどのように正規化するのですか?

 

動作は統計6の他の箇所と同じです。

同様に、上の式で正規化する。

 

約束通りEURUSD H1をチェック。Highをベースにしたモデルです。私は成功しませんでした。OOS期間で負けてしまいました。

ガスプロム株の1時間足でテストしてみましたが、OOSはプラス側で、なかなか良いチャートです。

また、EURUSD Day1のポジションを シグナルに基づいて(ある状態から別の状態への移行時、つまりニューロンスイッチング時)クローズ するアイデアもテストしました。Expert Advisorを作り、テスターでオープニングとクローズニューロンを拾い、最適化期間で何度も利益を出しています。OOSで - もプラスになります。