私たちのファンページに参加してください
- ビュー:
- 1337
- 評価:
- パブリッシュ済み:
- 2016.03.30 16:29
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
何かの標準取引システムを持つと仮定してみましょう。あなたが必要なのは
標準取引システムができないことを担うニューラルネットワーク
を作成することです。結局、
標準取引システムとニューラルネットワークの組み合わせで
自動売買システムが発生します。
簡単に言えば、 車輪を再発明する必要は
ありません。いったい、なぜ自動車があるという黙契で誰かに走り方を教えますか?
いったい、なぜ飛行機があるという黙契で誰かに飛び方を教えますか?
私たちはトレンドを追うシステムがあると、やるべきなのはニューラルネットワークに
逆張りタイプのストラテジーを教え込むことだけです。それは、トレンドを追うシステムが
レンジ相場で取引できないし、
巻き戻しや反転を判断することもできないからです。やはり、2つのトレンドフォロータイプのシステムと逆張りタイプのシステムをただ組み合わせて1つのチャートに設定してもいいです。一方、ニューラルネットワークに何かの取引システムを教え込んでもいいですね。
その為に、2つの下層のパーセプトロンと1つの上層のパーセプトロンから
二重層ニューラルネットワークが作成されました。
ニューラルネットワークの出力は以下などの場合に行われます。:
- 買いポジションを保有する場合
- 売りポジションを保有する場合
- 注文が不明な状態にある場合
3つ目は標準取引システムで配信されます。ただし、最初の2つはニューラルネットワークで配信されるシグナルに関連します。
ニューラルネットワークの教育にはステップが3つあります。
各ステップ毎に1つのパーセプトロンにストラテジーを教え込みます。また、各ステップには
最適化された標準取引システムも含まれます。パーセプトロンは標準取引システムのことが分かるべきです。
3つのステップに分かれたパーセプトロンの教育は
遺伝的アルゴリズムにおける欠陥によって生じます。
もっと詳しく言えば、入力引数の数制限によって生じます。ただし、各ステップは
理路整然としたステップであり、ニューラルネットワークのサイズはそんなに大きくないので、
最適化処理が早いです。
しかしながら、ニューラルネットワークに取引システムを教え込む前に、標準取引システムを最適化するステージがあります。
簡単のために、ステージは自動売買システムの
pass名引数で指定されます。ステージに当てはまる入力引数の名前は、
ステージに当てはまる
番号で終わります。
では、最適化やニューラルネットワークの教育の準備をしましょう。
MT4ツールバーの「ストラテジーテスター」ボタンをクリックします。次に、「エキスパート設定」をクリックし、
「テスト設定」タブでは初期証拠金に「1000000」を入力します(最適化中に、
人工的なマージンコールを避ける為)。
その後で、遺伝的アルゴリズムにティックを付けます。
「パラメータの入力」タブへ行きます。
ポジションのロットサイズを
1で設定します。
「始値のみ」モデルではバックテストを行います。
ステージは以下の通りです。まず最初に、標準取引システムの最適化です。:
pass引数に1を指定します。
第1ステージに当てはまる入力引数だけを最適化します。
1で終わる識別子を持つ引数を最適化する必要があるので、
これらだけにチェックを付けます。
他のパラメータからチェックを外します。
tp1 - 標準取引システムのテイクプロフィット。10から100の間を1ずつ変化させます。
sl1 - 標準取引システムのストップロス。10から100の間を1ずつ変化させます。
p1 - 標準取引システムで使用されるCCIの期間3から100の間を1ずつ変化させます。
第2ステージに行きましょう。売りポジションを処理するパーセプトロンの教育:
pass引数に2を指定します(つまり、第2ステージに当てはまる番号)。
前のステージでチィックを付けた引数からチェックを外します。念のために削除前のパラメータをバックアップしておく事をおすすめします。
第2ステージに当てはまる入力引数だけを最適化します。すなわち、2で終わる識別子を持つ引数だけにチェックを付けます。
売りポジションを処理するパーセプトロンは重み係数x12・x22・x32・x42を使います。0から200の間を1ずつ変化させます。
tp2 - 売りポジションのテイクプロフィット10から100の間を1ずつ変化させます。
sl2 - 売りポジションのストップロス10から100の間を1ずつ変化させます。
p2 - パーセプトロンで処理される価格レンジの期間3から100の間を1ずつ変化させます。
遺伝的アルゴリズムにより最適化を行います。
第3ステージに行きましょう。買いポジションを処理するパーセプトロンの教育:
pass引数に3を指定します(つまり、第3ステージに当てはまる番号)。
前のステージでチィックを付けた引数からチェックを外します。
念のために削除前のパラメータをバックアップしておく事をおすすめします。
第3ステージに当てはまる入力引数だけを最適化します。すなわち、3で終わる識別子を持つ引数だけにチェックを付けます。
売りポジションを処理するパーセプトロンは重み係数x13・x23・x33・x43を使います。0から200の間を1ずつ変化させます。
tp3 - 買いポジションのテイクプロフィット10から100の間を1ずつ変化させます。
sl3 - 買いポジションのストップロス10から100の間を1ずつ変化させます。
p3 - パーセプトロンで処理される価格レンジの期間3から100の間を1ずつ変化させます。
遺伝的アルゴリズムにより最適化を行います。
第4ステージ(最終ステージ)です。上層のパーセプトロンの教育:
pass引数に4を指定します(つまり、第4ステージに当てはまる番号)。
前のステージでチィックを付けた引数からチェックを外します。
念のために削除前のパラメータをバックアップしておく事をおすすめします。
第4ステージに当てはまる入力引数だけを最適化します。すなわち、4で終わる識別子を持つ引数だけにチェックを付けます。
上層のパーセプトロンは重み係数x14・x24・x34・x44を使います。0から200の間を1ずつ変化させます。
p4 - パーセプトロンで処理される価格レンジの期間3から100の間を1ずつ変化させます。
遺伝的アルゴリズムにより最適化を行います。
よし、できたんですね~
ただし、自動売買システムにはもう一つの最適化されない引数mnがあります。マジックナンバーを示します。つまり、システムが自分の保有しているポジションと手動で作られたポジションを区別するためのポジションの識別子を意味します。各売買システムごとにはマジックナンバーは固有値となります。EAのポジションのマジックナンバーは他のEAのポジションのマジックナンバーと一致できません。
P.S.
- 初期証拠金は、2に最大ドローダウンを掛けて求められます(蓄えを考慮する)。
- ソースコードのEAが最適化されませんでした。
- 組み込みの標準取引システムを他のシステムに変えたい場合、basicTradingSystem()関数に他の引数を渡します。
- 「スタート」、「ステップ」及び「ストップ」を設定しないために、combo.setというファイルを\tester MT4ディレクトリ内に置き、EAのプロパティにアップロードします。
- EAの再最適化は、すなわち土曜・日曜などの週末に行われます。先週の結果は損な場合のみです。損失の存在は、相場が変化したので最適化が必要であることを意味します。利益の存在は、自動売買システムが問題なく相場パターンを見極め、再最適化が必要ではないことを意味します。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/7917

インディケータBB-Squeezeの修正版です。インディケータBB-Squeezeとともにだけ機能します。

この自動売買システムは、ユーロドル1時間足で取引する為に使用されます。最高の結果です。

複数時間軸のインジケータです。いくつか異なる時間軸のトレンドの方向をサブウィンドウにまとめるインジケータです。

日足のピボットレベルを正確で有意義なチャートとして表示するインジケータです。