AIへのプロンプト、日本語と英語どっちがいい?実際に比べてみた
「MQL4は英語ベースのコードだから、プロンプトも英語で書いた方が精度が上がるんじゃないか?」
AIでEAを作り始めた人なら、一度はこの疑問を持ったはずです。結論から言うと、最新のGPT-4やClaudeを使うなら日本語でも十分な精度が出ます。 ただし、ちょっとしたコツを守るかどうかで品質に差が出ます。
この記事では、同じ売買ロジックを日本語・英語のプロンプトで実際に生成させ、コードの品質を比較した結果をお伝えします。
「英語の方が精度が高い」という噂は本当か?
検索すると「AIには英語でプロンプトを書くべき」という情報が出てきます。これは事実ではありますが、2024〜2025年以降の最新モデルではほぼ当てはまりません。
以前のモデル(GPT-3.5以前)は英語での学習データが圧倒的に多かったため、英語プロンプトの方が安定していました。しかし現在のGPT-4やClaude 3以降では、日本語の理解精度は英語と同等レベルに達しています。
では、MQL4のコード生成においてはどうか?実際に検証してみました。
検証方法
比較するロジック
シンプルなRSIの逆張りロジックを使います。
- 買い条件:RSI(14)が30を下回ったら成行き買いエントリー
- 売り条件:RSI(14)が70を上回ったら成行き売りエントリー
- 決済:反対のシグナルが出たら決済
使用したAI
- ChatGPT(GPT-4o)
- Claude(claude-sonnet-4-6)
評価基準
| 評価項目 | 内容 |
|---|---|
| コンパイル成功 | MT4 MetaEditorでエラーなしにコンパイルできるか |
| ロジックの正確性 | 指定した売買条件が正しく実装されているか |
| コードの読みやすさ | 変数名・コメントが適切か |
| コードの品質 | 不要な処理がなく、シンプルに書かれているか |
日本語プロンプトの場合
使用したプロンプト
MT4で動くMQL4のEAを作ってください。
【売買ロジック】
- RSI(14)が30を下回ったら買いエントリー(成行き)
- RSI(14)が70を上回ったら売りエントリー(成行き)
- 買いポジションは、RSIが70を上回ったら決済
- 売りポジションは、RSIが30を下回ったら決済
- 同時に保有するポジションは1つまで
【仕様】
- ロット数は外部パラメーターで変更できるようにする(デフォルト: 0.1)
- RSIの期間も外部パラメーターで変更できるようにする(デフォルト: 14)
- EAのプロパティにCopyright、Author、Versionを入れる
コンパイルできる完全なMQL4コードを出力してください。
生成されたコードの特徴
日本語プロンプトから生成されたコードには以下の特徴が見られました。
良かった点
- コンパイルエラーなし(両AIとも)
- コメントが日本語で入り、コードを読みやすい
- 変数名も
rsiValue、lotSizeなど英語で適切に命名
気になった点
- ChatGPTの出力では
Close[0]を使った先読みバグが発生(後述) - Claudeは
iRSI()関数の引数を正確に使用していた
[画像:日本語プロンプトで生成されたMQL4コードをMetaEditorに貼り付けてコンパイルしているスクリーンショット]
英語プロンプトの場合
使用したプロンプト
Please create an EA (Expert Advisor) for MetaTrader 4 in MQL4.
[Trading Logic]
- Buy entry (market order) when RSI(14) falls below 30
- Sell entry (market order) when RSI(14) rises above 70
- Close buy position when RSI rises above 70
- Close sell position when RSI falls below 30
- Maximum 1 position at a time
[Specifications]
- Lot size should be an external input parameter (default: 0.1)
- RSI period should be an external input parameter (default: 14)
- Include Copyright, Author, and Version in EA properties
Please output the complete, compilable MQL4 code.
生成されたコードの特徴
良かった点
- コンパイルエラーなし(両AIとも)
- 関数名・変数名の英語命名が自然(
OnTick、CheckSignalなど) - MQL4の慣習に沿ったコード構造
気になった点
- コメントが英語になるため、日本語話者には読みにくい
- ロジックの正確性は日本語プロンプトと同等
比較結果:大きな差はない、ただしコツがある
評価まとめ
| 評価項目 | 日本語プロンプト | 英語プロンプト |
|---|---|---|
| コンパイル成功率 | ◎(両AI) | ◎(両AI) |
| ロジックの正確性 | ◎ | ◎ |
| コードの読みやすさ | ◎(日本語コメント) | △(英語コメント) |
| 変数・関数名の自然さ | ◎ | ◎ |
| MQL4特有の関数の精度 | △(たまにバグ) | ◎(やや安定) |
結論:品質に大きな差はありません。 ただし、OrderSend()やiRSI()などMQL4特有の関数の引数については、英語プロンプトの方がわずかに正確な傾向がありました。
💡 INFO
iRSI()関数の正しい引数はiRSI(symbol, timeframe, period, applied_price, shift)の5つです。日本語プロンプトだとたまに引数の数が違うコードが出ることがあります。英語でUse iRSI() with correct 5 parametersと補足するだけで精度が上がります。
結論:ハイブリッドが最強
おすすめの書き方
日本語でロジックを説明し、技術的な指定だけ英語で補足するハイブリッド方式が最もバランスが良いです。
MT4で動くMQL4のEAを作ってください。
【売買ロジック】
- RSI(14)が30を下回ったら買いエントリー
- RSI(14)が70を上回ったら売りエントリー
- 同時保有は1ポジションまで
【技術仕様】
- Use iRSI() with correct 5 parameters for MT4
- Use OrderSend() with correct 9 parameters for MT4 Build 600+
- シグナル判定はバー確定後(Close[1]を使用)
- ロット数・RSI期間はextern変数で指定(デフォルト: Lots=0.1, RSIPeriod=14)
日本語コメント付きの完全なMQL4コードを出力してください。
このポイントを押さえるだけで、コンパイルエラーと先読みバグの大半は防げます。
コピペ用プロンプトテンプレート
以下のテンプレートを自分のロジックに合わせて書き換えてください。
MT4で動くMQL4のEAを作ってください。
【売買ロジック】
(ここに自分のロジックを日本語で書く)
【必須技術仕様】
- Use iRSI() / iMACD() / iBands() with correct parameters for MT4
- Use OrderSend() with correct 9 parameters for MT4 Build 600+
- シグナル判定は必ずClose[1](確定バー)を使用すること。Close[0]は使わない
- ポジション管理はOrdersTotal()で既存注文を確認してから発注
- ロット数はextern変数で指定(デフォルト: 0.1)
- マジックナンバーを設定してEA管理を明確にする
日本語コメント付きの完全なMQL4コードを出力してください。
コードは省略せず全文を出力してください。
✅ TIP 「コードは省略せず全文を出力してください」は必ず入れましょう。長いコードは途中で省略されることがあります。
AIごとの違い
ChatGPT(GPT-4o)
- 汎用的で安定。様々なスタイルのプロンプトに対応
- 長いコードでも一度に出力できる
- MQL4の細かい関数仕様(引数の数など)がたまに古い情報を出すことがある
- 「修正して」を繰り返すと堂々巡りになりやすい
Claude(Sonnet / Opus)
- 長文コード生成に強い。コード全体の構造を把握した修正が得意
- 日本語の指示理解が非常に高精度
- エラーの原因を論理的に説明してくれるのでデバッグに向いている
- コードが複雑になった時の「ゼロから書き直し」指示が効きやすい
使い分けの提案
| 作業 | おすすめ |
|---|---|
| 最初のEA生成 | どちらでもOK |
| コンパイルエラーの修正 | Claude(説明が詳しい) |
| 機能追加・改造 | ChatGPT(応答が速い) |
| 複雑なロジックのリファクタ | Claude(全体把握が得意) |
| 堂々巡りになったら | 反対のAIに切り替える |
💡 INFO ChatGPTで解決しない時はClaudeに、Claudeで解決しない時はChatGPTに切り替えてみてください。同じ問題でも「別の視点からの回答」が突破口になることがよくあります。
まとめ:言語より「具体性」が全て
- 日本語でも英語でもコード品質に大きな差はない
- MQL4特有の関数名や引数の指定は英語で明記した方が精度が上がる
- ロジックの説明は日本語、技術仕様は英語のハイブリッドが最強
- どのAIを使っても「あいまいな指示」が一番ダメ。「RSI系のEAを作って」ではなく「RSI(14)が30を下回ったら買い、70を上回ったら売り」と数値と条件で指定する
プロンプトの書き方に慣れてきたら、次はエラーが出た時の対処法も覚えておきましょう。
関連記事
本記事で紹介するEA・手法は教育目的で作成されたものです。実際の取引で利益を保証するものではありません。EAの運用は必ずデモ口座で十分にテストした上で、自己責任で行ってください。FX取引にはリスクが伴います。
次のステップ
まずデモで動作確認 → OKなら本番運用、が安全です。
デモ口座でEAを回す手順関連記事
if (signal && riskOk) { executeEA(); }
for (const tf of [M5, M15, H1]) {
score += checkTrend(tf);
}
return score >= threshold;
【完全初心者向け】TradingViewの使い方入門 ― まずは裁量トレードを体験しよう
トレード未経験者向けにTradingViewの基本操作を画像付きで解説。チャートの見方、移動平均線の設定、ペーパートレードのやり方まで、ゼロから始める手順をまとめました。
if (signal && riskOk) { executeEA(); }
for (const tf of [M5, M15, H1]) {
score += checkTrend(tf);
}
return score >= threshold;
裁量手法をAIに伝えるための「言語化シート」— 穴埋めでプロンプト完成
裁量トレードの経験をAIが理解できる条件文に変換するための穴埋めシートを提供。シートを埋めるだけでMT4のEAを作るプロンプトが完成します。
if (signal && riskOk) { executeEA(); }
for (const tf of [M5, M15, H1]) {
score += checkTrend(tf);
}
return score >= threshold;
MQL4エラーをAIで直すデバッグプロンプト集【コピペ用テンプレ付き】
AIが生成したMQL4コードのエラーをパターン別に分類し、AIに修正させるためのプロンプトテンプレートをまとめました。コンパイルエラーから動作不良まで対応。
if (signal && riskOk) { executeEA(); }
for (const tf of [M5, M15, H1]) {
score += checkTrend(tf);
}
return score >= threshold;
EA開発のAIツール選び — チャット型とCLI型、何が違うのか
ChatGPT・Codex・Claude CodeをEA開発の観点で整理。チャット型はどれも大差なし、本格開発にはCLI型が有利な理由を解説。
