ChatGPTでMT5インジケーターを改良する方法
ChatGPTやClaudeなどのAIは、MQ5コードの理解・改良に非常に強力なツールです。 プログラミング経験が浅くても、AIと対話しながらインジケーターやEAを改良できます。
この記事では、実際のMQ5コードを題材に、AIを使った改良の流れを解説します。
AIにコード改良を依頼するコツ
効果的なプロンプトの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を活用する際の注意点
- 必ずコンパイルテストする - AIが生成したコードにはエラーが含まれることがある
- デモ口座でテストする - いきなりリアル口座で使わない
- コードの理解に努める - AIの説明を読んで、何が変更されたか把握する
- 段階的に改良する - 一度に多くの変更をせず、1機能ずつ追加してテスト
まとめ
AIは、MQ5コードの改良を大幅に効率化してくれます。プログラミングの知識が少なくても、 適切なプロンプトを書くことで高品質なコード改良が可能です。
まずは当サイトで配布しているインジケーターをベースに、AIで機能追加を試してみてください。