MetaTrader4
自動売買システム「コンボ」- MetaTrader 4用の最適化ガイド
こんにちは、トレーダーの皆さん!今日は、私たちの自動売買システム(ATS)「コンボ」についてお話しします。このシステムは、基本的なトレーディングシステム(BTS)を基に、ニューラルネットワークを組み合わせて、より高いパフォーマンスを実現します。
まず、BTSを持っていると仮定しましょう。私たちの目標は、このBTSができないことをニューラルネットワークに学ばせることです。これにより、BTSとNN(ニューラルネットワーク)という2つのシステムが相互補完的に機能するトレーディングシステムを作成します。
「新しい大陸を発見する必要はありません。すでに発見されています。」という言葉があります。速く走る方法を教える必要があるのか?すでに車があるのに。飛ぶ方法を教える必要があるのか?すでに飛行機があるのに。
トレンドフォロー型のATSを持っているので、今度は逆張り戦略をニューラルネットワークに教える必要があります。トレンドベースのトレーディングシステムは、横ばいのトレンドや市場の反転を認識することができませんからね。もちろん、トレンドフォローと逆張りの2つのATSを同じチャートに接続することもできますが、ニューラルネットワークを使って既存のトレーディングシステムを補完することも可能です。
このために、下層に2つのパーセプトロン、上層に1つのパーセプトロンからなる2層のニューラルネットワークを設計しました。ニューラルネットワークの出力は次の3つの状態のいずれかになります:
ロングポジションで市場に入る
ショートポジションで市場に入る
不確定な状態
実際には、3番目の状態はBTSに制御を渡す状態であり、最初の2つの状態ではトレード信号はニューラルネットワークから発信されます。
ニューラルネットワークの学習は3つのステージに分かれており、各ステージは1つのパーセプトロンを学習するためのものです。各ステージでは、最適化されたBTSが存在しなければなりません。
最初のステージは、NNの学習に先立ってBTSの最適化です。ATSの入力に「pass」という識別子を記録して、ステージ番号を確認します。入力識別子は、このステージ番号と同じ数字で終わる必要があります。
では、最適化とNNの学習の準備を始めましょう。初期資金を1,000,000ドルに設定し、戦略テスターの「テスト」タブで「Balance」を最適化する入力として設定し、遺伝的アルゴリズムを開始します。
EAのプロパティの「Inputs」タブに移動し、ポジションを開くためのボリュームを「lots」に1を割り当てて指定します。
最適化は「Open prices only」のモデルに従って実施します。これは、ATSアルゴリズムで利用可能です。
ステージ1:BTSの最適化
「pass」に1を設定します。最初のステージに対応する入力のみを最適化します。
tp1 - BTSのテイクプロフィット。10から100の範囲で最適化。
sl1 - BTSのストップロス。10から100の範囲で最適化。
p1 - BTSで使用するCCIの期間。3から100の範囲で最適化。
ステージ2:ショートポジションのパーセプトロンの学習
「pass」に2を設定します。前のステージでチェックした入力を外します。
x12, x22, x32, x42 - ショートポジションを認識するパーセプトロンの重み。
tp2 - パーセプトロンが開いたポジションのテイクプロフィット。
sl2 - パーセプトロンが開いたポジションのストップロス。
p2 - パーセプトロンが分析する価格差の期間。
ステージ3:ロングポジションのパーセプトロンの学習
「pass」に3を設定します。前のステージでチェックした入力を外します。
x13, x23, x33, x43 - ロングポジションを認識するパーセプトロンの重み。
tp3 - パーセプトロンが開いたポジションのテイクプロフィット。
sl3 - パーセプトロンが開いたポジションのストップロス。
p3 - パーセプトロンが分析する価格差の期間。
ステージ4:上層のパーセプトロンの学習
「pass」に4を設定します。前のステージでチェックした入力を外します。
x14, x24, x34, x44 - 第一層のパーセプトロンの重み。
p4 - パーセプトロンが分析する価格差の期間。
これでニューラルネットワークの学習が完了しました。
ATSには、最適化できないもう一つの入力、mn - マジックナンバーがあります。これは、トレーディングシステムが他のATSや手動で開いたオーダーと混同しないための識別子です。このマジックナンバーの値はユニークで、他のオーダーのマジックナンバーと重複しないようにする必要があります。
おまけ:
初期資金は、絶対的ドローダウンの2倍として設定されています。
提供されたソースコードのEAは最適化されていません。
別のトレーディングシステムのアルゴリズムにBTSを置き換える場合は、関数basicTradingSystem()の内容を修正する必要があります。
最適化の初期値と最終値、ステップ値を入力する手間を省くためには、combo.setというファイルを用意し、
MT4の esterフォルダに置き、EAのプロパティでテスターにアップロードすることができます。
EAの再最適化は、先週の結果が不利だった場合にのみ、週末(土曜日または日曜日)に行うべきです。利益が出ている場合は、再最適化は不要です。
2008.03.06