メインコンテンツへスキップ
見出し画像

EAを作ろう #6「最適化をしてみよう」

    AIで作ったEA、即運用……とはいかないんです


    前回まででEAのコードが完成しました。「よし、すぐ運用だ!」と思ったそこのあなた、少し待ってください。


    AIが作ったものとはいえ、そのまま実戦投入は早計です。通貨ペアや時間足によって値動きには個性があります。

    ドル円とユーロドルでは動き方が違いますし、同じ通貨ペアでも1分足と1時間足ではまるで別物です。


    その個性にEAのパラメータを合わせていく作業が「最適化」です。

    「必ず勝てるロジックさえあれば最適化なんていらないのに」と思う気持ち、よくわかります(笑)。

    でも現実はそう甘くないので、一緒に丁寧にやっていきましょう。

    最適化とカーブフィッティングは別物です


    ここで必ず知っておいてほしい話があります。最適化とカーブフィッティングは似て非なるものです。

    ▶ 最適化(やっていいこと) 通貨ペアや時間足の値動きの特徴を読み取り、長期間の過去データから最も安定した成績を出せるパラメータを見つけること。

    たとえばチャート一つとっても、こんなに数値のスケールが違います。


    画像

    値動きの桁が全然違いますよね。それぞれのスケールや特性に合わせてパラメータを調整するのが最適化の本質です。

    ▶ カーブフィッティング(やってはいけないこと) 過去に起きた大きな損失(ドローダウン)をピンポイントで回避するようなフィルターを追加したり、コードに細工して過去データ上の成績だけを良く見せたりすること。


    「過去では最強のEA」が出来上がりますが、将来の相場では全く機能しません。意味がないどころか危険です。

    💡 ちょっと曖昧な境界線の話 実は最適化とカーブフィッティングの境界線は、プロの間でも意見が分かれます。「ロンドン時間やニューヨーク時間は値動きが荒れるから日本時間だけ稼働させる」というフィルターは最適化の範囲内ですが、「2020年3月のコロナショックを避けるフィルターを入れる」のはアウトです。


    私のEAもカーブフィッティングかどうかは人によって意見が分かれるかもしれません。こればかりは実績で証明するしかないですね。


    ちなみに私がGogoJungleで販売・運用しているEAは、自身の運用も含めてドローダウンはあってもロスカットは一度も発生したことがありません。……ナンピンマーチン型で一度やらかしたことはありますけど(笑)。あの教訓があるので、今は安全設計を最優先にしています。

    まずは簡単なバックテストから確認しよう


    前回(#5)ではビジュアルモードで動作確認をしました。

    今回はまずビジュアルモードを外して最速で実行してみましょう。

    1. ストラテジーテスターの「ビジュアルモード」のチェックを外す

    2. 「スタート」を押す


    画像


    実行後、「結果」「グラフ」「レポート」タブを確認します。

    次に「エキスパート設定」でパラメータを手動で変えて「スタート」を押す……この繰り返しで成績の良い設定を探していくことができます。


    画像
    画像


    ただし、MT4に最初から入っているデータは期間が短すぎます。開始日を2年前に設定しても、実際は途中からのシミュレートにしかならないことが多いです。

    「レポート」タブのモデリング品質が低い値になっていたら、そのテスト結果はあまり信用できません。

    💡 モデリング品質とは? バックテストで使われたデータの精度を示す指標です。 高いほど実際の値動きに近いデータでテストできています。 99%前後が理想で、70%を下回ると結果の信頼性が低くなります。


    画像

    信頼性の高い過去データを用意しよう


    きちんとした最適化をするには正確な過去データが必要です。


    最もおすすめなのは「Tick Data Suite」という有料ツールです。20年以上・モデリング品質99.90%・スプレッドやスリッページまで再現したティックデータでテストできます。2週間の無料試用もあります。


    ただ今回は、完全無料で使える1分足データを使って過去2年分のバックテストをやっていきます。


    使うのはこちらの「AXIORY ヒストリカルデータ」です。口座開設は不要、データのダウンロードだけできます。
    👉 https://www.axiory.com/jp/trading-tools/historical-data


    画像

    過去データのダウンロードと準備

    STEP 1:データをダウンロードする

    1. PCのデスクトップに「History」フォルダを作成します

    2. AXIORYのサイトで「スタンダード口座」から目的の通貨ペアを選び、2024・2025・2026年分を1つずつダウンロードします


    画像
    1. ダウンロードしたファイルはZIP圧縮されているのでダブルクリックして開きます

      • 昨年以前のファイルは「all」ファイル(1年分まとめたもの)だけコピー

      • 今年のファイルは出来ている月のもの全部コピー

    2. コピーしたファイルをすべて「Historyフォルダ」に入れます


    画像

    💡 時短テクニック 複数ファイルをあらかじめ1つにまとめておくと、後のインポート作業がぐっと楽になります。

    STEP 2:MT4の既存データを削除する


    MT4を開き、チャート画面が表示されている場合はすべて閉じておきます。

    1. 「ファイル」→「データフォルダーを開く」

    2. 「History」フォルダをダブルクリック

    3. デモ口座のサーバーフォルダをダブルクリック
      (例:「XMTrading-Demo 7」)

    4. テストする通貨ペアの既存ファイルをすべて削除します

      • EURUSDなら「EURUSD1」「EURUSD5」「EURUSD15」「EURUSD60」……などすべて


    画像


    STEP 3:ヒストリーセンターからデータをインポートする


    1. 「ツール」→「ヒストリーセンター」を開きます

    2. 自分の口座タイプのフォルダを開き、
      通貨ペアをクリック→「1分足(M1)」をダブルクリック

      • 例:KIWAMI極口座の場合
         「Forex KIWAMI」→「EURUSD#」→「1分足(M1)」

    3. 「インポート」ボタンをクリック


    画像


    4.「参照」ボタンをクリック


    画像


    5.「History」フォルダを選択して上から順番に .csv ファイルを選び「開く」をクリック


    画像


    6.取り込まれたら「OK」→再度「インポート」をクリックして全ファイルを読み込むまで繰り返す

    画像


    全ファイルを取り込んだら「ヒストリーセンター」を閉じます。


    STEP 4:チャートを表示してデータを確認する


    1. 「ファイル」→「新規チャート」で自分の口座タイプの通貨ペアを開く(例:EURUSD#)

    2. チャート上で右クリック→「時間足設定」→「1分足」に切り替える


    画像


    3.「チャート」→「自動スクロール」をOFFにする

    画像


    画像
    ON                                                                                                
    画像
    OFF                                                                                               


    4.「チャート」→「更新」をクリック

    チャートをキーボード操作で以下の確認します。


    画像


    データに抜けがないか(休場日を除く)を確認してください。
    特にインポートした最後の月と翌月のつながりが重要です。
    たとえば2026年2月27日(金)→3月2日(月)が自然につながっているかを見てください。

    月替りなので窓が開くことはあります。

    「窓」とは、隣り合うローソク足の間に隙間ができる現象のことです。主に土日の休場明けの月曜早朝に発生しやすく、相場の急変を示唆する重要なサインとなります。


    画像
    日付がつながってるか

    確認できたらMT4を一度閉じます(Historyファイルへの書き込みのため)。


    数秒後にMT4をもう一度起動します。

    STEP 5:オフラインチャートで最終確認


    1. 「ファイル」→「オフラインチャート」をクリック

    2. テスト通貨ペアの1分足(金色の$アイコン)「EURUSD#, M1」をダブルクリック


    画像
    1. 「チャート」→「更新」→先ほどと同じようにHome・End・PageUp・PageDownでデータの抜けがないか確認


    ここまでで1分足のバックデータが完成です。


    STEP 6:他の時間足を一括作成する

    残りの時間足(5分・15分・1時間……)は、この1分足データから自動的に作れます。便利なスクリプト「PeriodConverter ALL」を使いましょう。

    MT4には「PeriodConverter」が付属していて5分足15分足1時間足と作っていくことができますが、使いにくいんですよね!


    1. Googleで「period converter all ダウンロード」と検索

    2. MQL5のサイトから「PeriodConverterAllTimeframes.mq4」をダウンロード


    画像

    (Googleアカウントで登録が必要です)

    3.「ファイル」メニュー「データフォルダーを開く」→「MQL4」→「Scripts」フォルダを開く

    4.ダウンロードした .mq4 ファイルをここにコピー


    画像

    5.「表示」→「ナビゲーター」を開く

    6.「スクリプト」を右クリック→「更新」


    画像

    7.追加された「PeriodConverterAllTimeframes」をオフラインチャートにドラッグ&ドロップ


    画像


    8.パラメーター入力画面で「D1(日足)」「W1(週足)」「MN(月足)」を必要に応じてTrueに変更して「OK」


    画像

    (わからなければ全部Trueにして大丈夫です)

    やっと準備完了!最適化スタートです


    長かった……(笑)。お疲れさまでした。でもここまでの準備は最初の1回だけです。次回以降はずっと使い回せます。

    MT4のチャートは全部閉じてから「ストラテジーテスター」を表示します。

    設定内容:

    • 「期間を指定」に✅ → 開始日:2024.01.01、終了日:直近(例:2026.04.20)

    • 「ビジュアルモード」のチェックを外す

    • 「最適化」に✅チェックをつける


    画像


    「エキスパート設定」を開きます。

    テスト設定:タブ


    画像


    画像


    パラメーター入力:タブ

    画像

    変数列に✅をつけた項目が、「スタート」から「ストップ」まで「ステップ」刻みで全組み合わせテストされます。

    たとえばこんな設定だと:

    • 利確:30〜50をステップ2で変化(30, 32, 34……50)

    • 損切:20〜30をステップ1で変化(20, 21, 22……30)


    画像
    この全組み合わせ×設定期間のテストが自動で走ります。



    こちらも実際に以下の設定で最適化してみます。

    画像


    「スタート」ボタンを押したら、あとは待つだけです。

    テスター画面下のバーが右端まで進めば最適化完了です。


    画像


    結果の見方


    「最適化結果」タブをクリックすると、全組み合わせの成績一覧が表示されます。

    出てこない場合、エントリーがゼロか損益がマイナスです、パラメータレンジを変えて再度挑戦しよう。


    • 見出し行をクリックすると昇順・降順で並べ替えができます

    画像



    • 詳細を見たい行をダブルクリックして「スタート」を押すと、そのパラメータのテストが実行されます

    画像


    画像


    「結果」「グラフ」「レポート」タブで成績を確認。

    別のパラメータも見たければ最適化結果から別の行をダブルクリックして「スタート」→何度でも確認できます。


    画像

    ⚠️ 最適化結果は保存しておこう MT4を閉じると結果が消えます。 結果画面で右クリック→「すべてコピー」→Excelに貼り付けて保存しておきましょう。


    画像


    画像


    皆さんいい感じのEAができましたでしょうか、出来たらコメントでこんなEAができたよ、損益このくらい出たよ、等、共有いただけたら嬉しいです。


    今回あまりいい出来ではなかった方、方法さえ分かれば、何度でもチャレンジ出来ます。AIへの指示の出し方も工夫して作っているうちにきっと良いものが出来ると思いますよ。


    今回はここまで

    データ準備から最適化の実行まで、ボリュームたっぷりでしたね。「スクリーンショットの枚数どうなってんだ」というくらいの手順でしたが(笑)、一度やってしまえば次からはずっとスムーズです。

    次回(#7)は最適化の続き、お楽しみに!


    続きはこちら


     
     

    Sonop

     
     
    IT業界20年のエンジニアです。裁量トレードに限界を感じ、100種以上のFX自動売買(EA)を開発。バックテストの数値より、リアル口座での「再現性」を最優先に設計しています。 https://www.gogojungle.co.jp/users/600410?via=mymenu

    あなたへのおすすめ