私たちのファンページに参加してください
MTCコンボ - MetaTrader 5のためのエキスパート
- 発行者:
- Vladimir Karputov
- ビュー:
- 1120
- 評価:
- パブリッシュ済み:
- 2017.02.17 10:03
- アップデート済み:
- 2018.06.27 15:57
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
近頃は通貨ペアに5桁の数字が使用されているので、著者の説明と私のマイナーな編集は以下のとおりです。
EAの目的は次のとおりです。basic trading system(基本取引システム)(BTS)があるとします。後者がアクセスできない行動を実行することでBTSを補完できるようにneural network(ニューラルネットワーク)( NN)を設計して訓練する必要があります。その結果、2つの相補的なBTSとNNを組み合わせた取引システムが得られることになります。
とっくに発明されている車輪の再発明は必要はありません。車があるのに速く走ることを教える、また、ヘリコプターがあるのに飛ぶことを教える必要性はどこにあるでしょうか。
トレンドTSがある場合は、ニューラルネットワークに逆トレンド戦略のみを教えることが必要です。トレンドのためのシステムは、もみ合い相場では取引できず、ロールバックとリバースを適切に定義することもできません。もちろん、2つの取引戦略(トレンドと逆トレンド)を単一のチャートで起動することはできます。一方、ニューラルネットワークはト取引システムを補完するように訓練することができます。
この目的のために、2つの最下層パーセプトロンと1つの上位層パーセプトロンからなる2層ニューラルネットワークが開発しされました。
ニューラルネットワークは、3つの状態のうちの1つにあり得ます。
- ロングポジションに入る
- ショートポジションに入る
- 定義されていない
第3の状態は、売買シグナルが最初の2つの状態においてネットワークによって生成される間に、制御がBTSに渡されることを意味します。
ニューラルネットワークの訓練は3段階に分かれています。1つのパーセプトロンは、それぞれで訓練されています。パーセプトロンに何ができるかを知らせるために、各ステージには最適化されたBTSが存在します。
遺伝的アルゴリズムを使用したパーセプトロンの別個の訓練は、アルゴリズムの欠点、すなわちその助けによって選択できるパラメータの数の制限によって引き起こされます。とにかく、各訓練段階は論理的に一貫しており、ニューラルネットワークはそれほど大きくはないので、最適化プロセス全体は妥当な時間内で終わります。
しかし、NN訓練に先立つ最初の段階は、BTS最適化のためのものです。
混乱を避けるために、ステージ番号はEA入力では「pass」IDで指定されています。ステージ番号に対応する入力IDは、その番号自体で終わります。
NNの最適化と訓練の準備をしましょう。
テスターの初期入金を100ドルに設定します(最適化中に人為的なマージンコールを作成しないようにする)。最適化された「Balance + max Sharpe Ratio」パラメータと「高速遺伝的アルゴリズム」最適化タイプを設定します。
次に、EAプロパティの入力タブに移動します。
「lots」IDに0.01の値を割り当てることによって、ポジションのロットサイズを設定します。
最適化は 「始値のみ」モデルに従って行われます。この方法は、高速化のために選択されています。さらに、EAアルゴリズムは新しいバー管理機能を備えています。
最適化の第1段階:BTS最適化
パスを1に設定します。
すべてのIDが1で終わる第1段階に対応する入力のみを最適化します。したがって、残りのパラメータからマークを削除して最適化マークを設定します。
tp1 - BTS決済指値。100〜1000の値で10のステップで最適化
sl1 - BTS決済逆指値。100〜1000の値で10のステップで最適化
p1 - BTSに適応されたCCIオシレータの期間。3〜100の値で1のステップで最適化
遺伝子アルゴリズムの最適化による訓練を開始します。
第2段階:ショートポジションを担当するパーセプトロンの訓練
「pass」入力を2に設定します(段階番号と一致するように)。
前の段階で設定した最適化マークを削除します。念のために前の段階で得られた入力をファイルに保存します。
第2段階パラメータの最適化マークを設定します(IDは2で終わります)。
x12, x22, x32, x42 - ショートポジションを認識するパーセプトロンの重量比。0〜200の値で1のステップで最適化
tp2 - パーセプトロンによって開かれたポジションの決済指値。100〜1000の値で10のステップで最適化
sl2 - パーセプトロンによって開かれたポジションの決済逆指値。100〜1000の値で10のステップで最適化
p2 - パーセプトロンで分析した価格差の期間。. 3〜100の値で1のステップで最適化
遺伝子アルゴリズムの最適化による訓練を開始します。
第3段階:ロングポジションを担当するパーセプトロンの訓練
「pass」入力を3に設定します(段階番号と一致するように)。
前の段階で設定した最適化マークを削除します。念のために前の段階で得られた入力をファイルに保存します。
第3段階パラメータの最適化マークを設定します(IDは3で終わります)。
x13, x23, x33, x43 - ロングポジションを認識するパーセプトロンの重量比。0〜200の値で1のステップで最適化
tp3 - パーセプトロンによって開かれたポジションの決済指値。100〜1000の値で10のステップで最適化
sl3 - パーセプトロンによって開かれたポジションの決済逆指値。100〜1000の値で10のステップで最適化
p3 - パーセプトロンで分析した価格差の期間。. 3〜100の値で1のステップで最適化
遺伝子アルゴリズムの最適化による訓練を開始します。
第4/最終段階:
第1層(上層パーセプトロン)の訓練:
「pass」入力を4に設定します(段階番号と一致するように)。
前の段階で設定した最適化マークを削除します。念のために前の段階で得られた入力をファイルに保存します。
第4段階パラメータの最適化マークを設定します(IDは4で終わります)。
x14, x24, x34, x44 - 上層パーセプトロンの重み。0〜200の値で1のステップで最適化
p4 - パーセプトロンで分析した価格差の期間。3〜100の値で1のステップで最適化
遺伝子アルゴリズムの最適化による訓練を開始します。
これで全部です。ニューラルネットワークは訓練されています。
EAはさらにもう1つの最適化出来ない「mn」入力を備えています。これは、システムが手動でまたは他のEAによって開かれたものの中で自身の注文を区別できるようにするマジックナンバーです。マジックナンバーは一意でなければなりません。
追記
- 初期入金サイズは、絶対的なドローダウンに2を掛けたもの(安全マージン)として定義されています。
- EAのソースコードは最適化されていません。
- 組み込みのBTSを別の取引システムのアルゴリズムで置き換える場合はbasicTradingSystem()関数の内容を変更してください。
- 前週の結果が不採算だった場合は、週末にEAを再最適化してください。損失は市場の変化と再最適化の必要性を表します。EAに収益性がある場合は、ロボットが市場パターンを非常によく認識しているので再最適化は必要ありません。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/16762
入力パラメータでの時間枠選択オプションを含むMFI_Histogram_Round指標です。
Exp_GTakeProfitこのエキスパートアドバイザーは、総利益が事前定義された制限を超えた場合にすべてのポジションを決済します。
ギャンのスイングチャートとハイブリッドジグザグの実装です。
Exp_GStopこのエキスパートアドバイザーは、総損失/利益が事前定義された制限を超えた場合、すべてのポジションをクローズします。