AI EA スクール
0記事中 0記事 読了
カリキュラム 第6章 AIで改善する 改善のサイクル
6-1

改善のサイクル

読み終わるまでの目安 約30分

この記事でできるようになること

  • バックテストの結果をChatGPTに渡して、改善案と修正コードをもらえる
  • 「修正 → コンパイル → 再テスト → 比較」のサイクルを1人で回せる
  • 「1回に直すのは1か所だけ」のルールで、何が効いたかを見失わずに改善できる

準備するもの

  • 第5章でバックテストを行い、レポートを保存したMT4
  • ChatGPTにログインしたブラウザ(第3章で準備したもの)
  • 第4章で使ったMetaEditor
  • 結果を記録するメモ帳やExcel

手順

手順1 改善サイクルの全体像をつかむ

EAの改善は、次の1周を何度も回す作業です。

  1. レポートの数字を書き出す
  2. ChatGPTに渡して、原因と改善案をもらう
  3. 改善案のうち「1つだけ」を反映したコードをもらう
  4. MetaEditorに貼り付けてコンパイルする
  5. 第5章とまったく同じ条件で再テストする
  6. 前回の結果と比べて、良くなったか悪くなったかを記録する
  7. 良くなったら採用、悪くなったら元に戻して、次の改善案へ

大事なのは3番の「1つだけ」です。損切り幅と移動平均の期間を同時に変えて成績が上がった場合、どちらが効いたのか分かりません。逆に成績が下がった場合、どちらを戻せばよいのかも分かりません。1回に1か所だけ直せば、「この変更でこう変わった」と必ず言えます。

ここに画面写真を入れてください改善サイクル7ステップを1周の図にしたもの。「1回に1か所」を強調6-1-01.png

手順2 レポートの数字を書き出す

第5章で保存したレポートをブラウザで開き、次の項目を書き写します。

  • テスト条件: 通貨ペア、時間足、期間、モデル、スプレッド
  • 結果: 純益、プロフィットファクター、最大ドローダウン(%)、総取引数、勝率、平均勝トレード、平均敗トレード

「平均勝トレード」「平均敗トレード」は、レポートの下の方にある「1回の勝ちの平均額」「1回の負けの平均額」です。要確認ChatGPTが原因を考えるうえで重要な手がかりになるので、忘れずに書き出してください。

ここに画面写真を入れてくださいブラウザで開いたレポート。書き出す項目にマーカーを引いた状態6-1-02.png

手順3 改善依頼のプロンプトを送る

ChatGPTで、第4章でEAを作ったときと同じチャットを開きます(前のやり取りを覚えているので、話が早くなります)。もしチャットが見つからなければ、新しいチャットを開き、最初にEAのコード全文を貼り付けてから、次のプロンプトを送ってください。

以下は本スクールのプロンプト雛形「3. バックテスト結果をもとに改善してもらうプロンプト」です。【 】の部分を、手順2で書き出した数字に置き換えます。

作成したEAをバックテストしました。結果は以下の通りです。

【テスト条件】
- 通貨ペア: 【USDJPY】 時間足: 【H1】
- 期間: 【2023/01/01〜2025/12/31】
- モデル: 全ティック  スプレッド: 【20】

【結果】
- 純利益: 【-12,000円】
- プロフィットファクター: 【0.85】
- 最大ドローダウン: 【28%】
- 総取引数: 【210】
- 勝率: 【38%】
- 平均利益 / 平均損失: 【4,500円 / 3,200円】

この結果を踏まえて、
1. 何が原因で成績が悪いと考えられるか
2. 改善案を3つ、効果が高そうな順に
を教えてください。
改善は一度に1つだけ試したいので、まず最も効果が高そうな1つを反映した完全なコードを出力してください。

このプロンプトのポイントは、最後の1行です。「改善案を3つ」と頼みつつ、「コードに反映するのは1つだけ」と釘を刺しています。これを書かないと、ChatGPTは親切心から3つ全部を一度に反映したコードを出してくることがあります。

ここに画面写真を入れてくださいChatGPTに改善依頼プロンプトを送信した画面6-1-03.png

手順4 回答を読んで「1つ目」を確認する

ChatGPTの回答は、おおむね次の形で返ってきます。

  • 原因の分析(例: 「勝率38%に対して利確50pips/損切り30pipsでは、損切りが頻発しやすい」など)
  • 改善案3つ(例: ①損切り幅の見直し、②トレンドフィルターの追加、③取引時間帯の制限)
  • ①を反映した完全なコード
  • 変更点の説明

ここで確認することは2つです。

  1. コードの変更が「1か所だけ」になっているか。説明文に「あわせて〜も変更しました」と書かれていたら、「①だけを反映して、ほかは元に戻してください」と頼み直します。
  2. コードが省略されていないか。途中に「// 以下同様」「// 省略」のような行があったら、「省略せずに完全なコードを出力してください」と頼み直します。

改善案の内容そのものは、理解できなくても構いません。「何を変えたのか」を一言でメモしておけば十分です(例: 「損切り30→45pips」)。

ここに画面写真を入れてくださいChatGPTの回答。原因・改善案3つ・コードの3ブロックに分かれている状態6-1-04.png

手順5 コードを貼り替えてコンパイルする

  1. MetaEditorで、第4章で作ったEAのファイル(例: MA_Cross_Sample.mq4)を開きます。
  2. 元のコードを別名で残しておきます。 「ファイル」→「名前を付けて保存」で、MA_Cross_Sample_v1.mq4 のように保存してから、改善版を貼り付けるか、あるいは改善版を MA_Cross_Sample_v2.mq4 として新規保存します。要確認元に戻せる状態を必ず作ってください。
  3. ChatGPTのコードをコピーし、全消ししてから貼り付けます(第4章と同じ手順です)。
  4. [F7] でコンパイルし、「0 error」を確認します。エラーが出たら第4章の「エラーが出たときの直し方」の手順で対処します。
ここに画面写真を入れてくださいMetaEditorで改善版を「MA_Cross_Sample_v2.mq4」として保存し、コンパイル成功した画面6-1-05.png

手順6 同じ条件で再テストする

ストラテジーテスターで、改善版のEAを選び直してテストします。

ここで最も重要なのは、テスト条件を1文字も変えないことです。通貨ペア、時間足、モデル、期間、スプレッド、初期証拠金、そして「パラメータの入力」の値まで、前回とまったく同じにします。条件が違えば、成績の変化がEAの改善によるものか、条件の違いによるものか分からなくなります。

改善によってinput変数が増えている場合(例: 新しく UseTimeFilter のような項目が追加された)は、ChatGPTの説明を見て、その項目だけ意図どおりの値になっているかを確認します。

テストが終わったら、レポートを保存します。ファイル名に v2 と入れておきます。

ここに画面写真を入れてくださいEAを「MA_Cross_Sample_v2」に切り替えた以外は前回と同じ設定のストラテジーテスター6-1-06.png

手順7 前回と比べて記録する

改善前(v1)と改善後(v2)を表にします。数字は例です。

変更点 PF 最大DD 総取引数 勝率 純益
v1 初期版 0.85 28% 210 38% -12,000円
v2 損切り 30→45pips 1.05 24% 205 44% +9,000円

比べるときは、第5章の「見る順番」(グラフ → PF → 最大DD → 取引数 → 勝率)で見ます。

  • PFが上がり、最大DDが下がった → 採用。v2を新しい基準にします
  • PFは上がったが、最大DDも大きく上がった → 保留。「利益は増えたが危険も増えた」状態なので、ChatGPTに「最大DDを増やさずに済む方法はあるか」と聞き直します
  • 悪くなった → 不採用。v1に戻し、改善案の②を試します

「悪くなった」ときも、その結果は無駄ではありません。「損切りを広げても効かなかった」という情報を次のプロンプトに添えれば、ChatGPTはより的確な案を出せます。

ここに画面写真を入れてくださいv1とv2の結果を並べた記録表(Excelやメモ帳)6-1-07.png

手順8 サイクルを繰り返す・やめどきを知る

採用したv2を基準に、手順2からもう一周します。ChatGPTには、次のように続けて送ります。

損切りを45pipsにした結果、PF 1.05、最大DD 24%、総取引数205、勝率44%、純益+9,000円になりました。
次に、先ほどの改善案②を「1つだけ」反映した完全なコードを出力してください。

改善サイクルを回す回数の目安は、3〜5周です。理由は、直す箇所が増えるほど「過去のデータに合わせすぎたEA」になっていくからです。この落とし穴については、6-3で詳しく説明します。

また、改善のたびに必ず第5章の「結果を疑う視点」(特に前半/後半の分割検証)を行ってください。全期間の数字だけを追いかけると、知らないうちに過去に合わせすぎてしまいます。

ここに画面写真を入れてくださいv1〜v4まで改善履歴を記録した表。PFと最大DDの推移が分かる状態6-1-08.png

つまずきポイント

  • ChatGPTが複数の変更を同時に入れてきた: 「〜だけを反映し、ほかは元のままにしてください」と、変更を1つに絞るよう明示的に頼み直します。プロンプトの最後の1行を毎回つけるのが確実です。
  • 改善版のコードで、元にあった機能が消えている: 長いやり取りの後半で起きやすい現象です。「元のコードにあった〇〇の機能が消えています。元のコードをもう一度貼るので、これに①だけを追加してください」と、コードを再度貼り付けて頼みます。
  • 何度直しても成績が上がらない: そのEAのルール自体が今の相場に合っていない可能性があります。3〜5周試して改善しなければ、いったん区切りをつけ、第3章に戻って別のルール(RSI逆張りなど)で新しいEAを作る方が早いことも多いです。
  • どの版がどの結果か分からなくなった: ファイル名に版番号(v1, v2…)を入れ、レポートのファイル名にも同じ番号を入れる。この2つを徹底するだけで防げます。
  • 改善後の結果が良すぎる(PF 3.0など): 喜ぶ前に疑ってください。6-3で説明する「過剰最適化」の典型的なサインです。まず前半/後半の分割検証を行ってください。

次の記事

6-2 よくある改善パターン で、損切り幅・フィルター・トレーリングストップなど定番の改善方法と、MT4の最適化機能の使い方を学びます。