FX Trading Tools

ChatGPTでMT5インジケーターを改良する方法

ChatGPTやClaudeなどのAIは、MQ5コードの理解・改良に非常に強力なツールです。 プログラミング経験が浅くても、AIと対話しながらインジケーターやEAを改良できます。

この記事では、実際のMQ5コードを題材に、AIを使った改良の流れを解説します。

AIにコード改良を依頼するコツ

効果的なプロンプトの3要素

  1. 現在のコードを全文提示する
  2. 何を改良したいかを具体的に伝える
  3. 制約条件を明記する(MT5用、コンパイルエラーなし等)

良いプロンプトの例

prompt-example.txt text
以下のMT5用インジケーター(MQ5)を改良してください。

【現在のコード】
(ここにコード全文を貼り付け)

【改良内容】
1. ADXフィルターを追加して、トレンドが弱い時のシグナルを抑制したい
2. ADXの閾値はパラメータで変更可能にしたい
3. ADXが25以上の時のみシグナルを出すようにしたい

【制約】
- MT5(MQL5)で動作すること
- コンパイルエラーがないこと
- 既存のパラメータは維持すること

実践: MAクロスインジケーターにADXフィルターを追加

当サイトで配布している移動平均線クロスアラートに、AIを使ってADXフィルターを追加してみましょう。

AIからの回答例

AIに上記のプロンプトを送ると、以下のような改良コードが返ってきます(該当部分のみ抜粋):

MACrossAlert_ADX.mq5(追加部分) mq5
// --- パラメータにADX設定を追加 ---
input bool           UseADXFilter  = true;
input int            ADXPeriod     = 14;
input double         ADXThreshold  = 25.0;

// --- ハンドルとバッファを追加 ---
int adx_handle;
double ADXBuffer[];

// --- OnInit() に追加 ---
if(UseADXFilter)
{
 adx_handle = iADX(_Symbol, PERIOD_CURRENT, ADXPeriod);
 if(adx_handle == INVALID_HANDLE)
 {
    Print("Failed to create ADX handle");
    return INIT_FAILED;
 }
}

// --- OnCalculate() のシグナル判定部分を修正 ---
bool adxCondition = true;
if(UseADXFilter)
{
 CopyBuffer(adx_handle, 0, 0, rates_total, ADXBuffer);
 adxCondition = (ADXBuffer[i] >= ADXThreshold);
}

// Golden Cross(ADXフィルター付き)
if(FastMABuffer[i] > SlowMABuffer[i] &&
 FastMABuffer[i-1] <= SlowMABuffer[i-1] &&
 adxCondition)
{
 BuyBuffer[i] = low[i] - _Point * 20;
}

AIを使ったコードレビュー

レビューを依頼するプロンプト

review-prompt.txt text
以下のMQ5コードをレビューしてください。
以下の観点でチェックをお願いします:

1. バグや潜在的な問題
2. パフォーマンスの改善点
3. コードの可読性
4. エラーハンドリングの漏れ

(ここにコード全文)

AIがよく指摘するポイント

  • 配列の境界チェック漏れ: i-1へのアクセスでi=0の時の対策
  • ハンドルの解放忘れ: OnDeinit()でのIndicatorRelease()
  • バッファの初期化不足: ArraySetAsSeries()の設定
  • 不要な再計算: prev_calculatedを活用した最適化

AIで新機能を追加するアイデア

MAクロスインジケーターに追加できる機能例:

機能AIへの依頼内容
マルチタイムフレーム上位足のMA方向もチェックして順張りのみシグナル
損益シミュレーションシグナルに従った場合の仮想損益を表示
メール通知クロス発生時にメール送信
ダッシュボード複数通貨ペアのクロス状況を一覧表示

AIを活用する際の注意点

  1. 必ずコンパイルテストする - AIが生成したコードにはエラーが含まれることがある
  2. デモ口座でテストする - いきなりリアル口座で使わない
  3. コードの理解に努める - AIの説明を読んで、何が変更されたか把握する
  4. 段階的に改良する - 一度に多くの変更をせず、1機能ずつ追加してテスト

まとめ

AIは、MQ5コードの改良を大幅に効率化してくれます。プログラミングの知識が少なくても、 適切なプロンプトを書くことで高品質なコード改良が可能です。

まずは当サイトで配布しているインジケーターをベースに、AIで機能追加を試してみてください。

rakkosan

rakkosan

FXトレーダー・インジケーター開発者。MT5やTradingView向けのカスタムインジケーターを開発・販売しています。

noteで記事・インジケーターを公開中