今回は、MetaTrader 5用のEA「MTCコンボ」について話します。このシステムは、基本的なトレーディングシステム(BTS)を補完するために設計された神経ネットワーク(NN)を活用しています。
BTSとNNの組み合わせを目指しているため、私たちは既存のトレーディング手法を再発明する必要はありません。車があるのに速く走る方法を教える必要はないですよね。
トレンドに基づいたシステムでは、フラットな市場では取引ができません。そのため、トレンドと逆トレンドの両方の戦略を使うことが重要です。このEAは、その両方を組み合わせて使用することができるんです。
二層の神経ネットワークを開発しました。これには、二つの下層パーセプトロンと一つの上層パーセプトロンが含まれています。神経ネットワークは以下の3つの状態のいずれかにあります:
- ロングエントリー
- ショートエントリー
- 未定義
未定義の状態では、制御はBTSに移行し、最初の二つの状態ではネットワークがトレーディングシグナルを生成します。
神経ネットワークのトレーニングは3つの段階に分かれています。各段階で1つのパーセプトロンをトレーニングします。最適化されたBTSが各段階に存在し、パーセプトロンが何をできるかを理解します。
個別のパーセプトロンのトレーニングは、遺伝的アルゴリズムによって行われます。このアルゴリズムの制約を考慮し、トレーニングプロセスは論理的に整然としており、全体の最適化が合理的な時間内に完了します。
最適化準備をしましょう。テスターでの初期資金を$100に設定し、最適化パラメータは「バランス + 最大シャープレシオ」に設定します。また、「迅速な遺伝的アルゴリズム」タイプを選択してください。
次に、EAのプロパティのInputsタブに移動し、オープンポジションのロットサイズを0.01に設定します。最適化は「オープン価格のみ」のモデルで行います。この方法は高速です。
第一段階 - BTSの最適化:
'pass'を1に設定します。この段階のIDで最適化マークを設定し、それ以外のパラメータからはマークを外します。
- tp1 - BTSのテイクプロフィット。100から1000まで、10刻みで最適化。
- sl1 - BTSのストップロス。100から1000まで、10刻みで最適化。
- p1 - BTSで使用されるCCIオシレーターの期間。3から100まで、1刻みで最適化。
遺伝的アルゴリズムによる最適化を開始します。
第二段階 - ショートポジション用パーセプトロンのトレーニング:
'pass'を2に設定します。前の段階で設定した最適化マークを外し、入力をファイルに保存しておきます。
第二段階のパラメータに対して最適化マークを設定します:
- x12, x22, x32, x42 - ショートポジションを認識するパーセプトロンの重み比率。0から200まで、1刻みで最適化。
- tp2 - パーセプトロンが開くポジションのテイクプロフィット。100から1000まで、10刻みで最適化。
- sl2 - パーセプトロンが開くポジションのストップロス。100から1000まで、10刻みで最適化。
- p2 - パーセプトロンが分析する価格差の期間。3から100まで、1刻みで最適化。
遺伝的アルゴリズムによる最適化を開始します。
第三段階 - ロングポジション用パーセプトロンのトレーニング:
'pass'を3に設定します。前の段階で設定した最適化マークを外し、入力をファイルに保存します。
第三段階のパラメータに対して最適化マークを設定します:
- x13, x23, x33, x43 - ロングポジションを認識するパーセプトロンの重み比率。0から200まで、1刻みで最適化。
- tp3 - パーセプトロンが開くポジションのテイクプロフィット。100から1000まで、10刻みで最適化。
- sl3 - パーセプトロンが開くポジションのストップロス。100から1000まで、10刻みで最適化。
- p3 - パーセプトロンが分析する価格差の期間。3から100まで、1刻みで最適化。
遺伝的アルゴリズムによる最適化を開始します。
最終段階 - 第一層(上層パーセプトロン)のトレーニング:
'pass'を4に設定します。前の段階で設定した最適化マークを外し、入力をファイルに保存します。
第四段階のパラメータに対して最適化マークを設定します:
- x14, x24, x34, x44 - 第一層パーセプトロンの重み比率。0から200まで、1刻みで最適化。
- p4 - パーセプトロンが分析する価格差の期間。3から100まで、1刻みで最適化。
遺伝的アルゴリズムによる最適化を開始します。
これで神経ネットワークのトレーニングが完了しました。
このEAには、他のEAや手動で開かれたオーダーを区別するためのマジックナンバー('mn')という非最適化可能な入力もあります。このマジックナンバーはユニークである必要があります。
P.S.
- 初期資金は、絶対的なドローダウンの2倍で定義されます(安全マージン)。
- EAのソースコードは最適化されていません。
- 基本の基本トレーディングシステム(BTS)を別のトレーディングシステムのアルゴリズムに置き換えたい場合は、基本TradingSystem()関数の内容を変更してください。
- 前週の結果が不利益だった場合は、週末にEAを再最適化してください。損失は市場の変化を示し、再最適化の必要性を示します。EAが利益を上げている場合は、再最適化は不要です。
コメント 0