この記事でできるようになること
- コンパイル・稼働・バックテストの3場面で、よく出るエラーの意味と対処が分かる
- エラー文を見て「自分で直せるもの」と「ChatGPTに聞くもの」を切り分けられる
- ChatGPTに聞くときに、何を貼り付ければいいかが分かる
使い方
エラーは大きく3つの場面で起こります。
- コンパイルエラー … MetaEditorで[F7]を押したとき(第4章)
- MT4でEAが動かない … チャートに乗せたのに取引しない、注文が失敗する(第7章)
- バックテストが動かない … ストラテジーテスターで結果が出ない(第5章)
まず「どの場面か」を確認して、該当する表を見てください。表にない場合や、対処しても直らない場合は、各表の下にある「ChatGPTに聞くときのポイント」を参考に質問します。
エラー文は英語で表示されます。意味が分からなくても、そのままコピーしてChatGPTに貼ればほとんど解決できます。暗記する必要はありません。
1. コンパイルエラー(MetaEditor)
MetaEditor下部の「エラー」タブに赤い行が出たときです。「error」は直さないと.ex4ができません。「warning」は動きますが、気になるなら直します。
| エラー文の例 | 意味 | 対処 |
|---|---|---|
'xxx' - undeclared identifier |
「xxx」という変数や関数が定義されていない。ChatGPTがコードの一部を省略した、または名前を書き間違えたときに出る | エラー行を含めて、付録Bの「2. コンパイルエラーを直してもらうプロンプト」で修正を依頼する。「省略せずに完全なコードを」と念押しする |
';' - semicolon expected |
行末のセミコロン(;)が抜けている | エラーで示された行の直前の行末に ; を足す。分からなければChatGPTに貼る |
'}' - unexpected end of program または '{' - unbalanced parentheses |
波かっこ { } の数が合っていない。コードのコピーが途中で切れたときによく出る | ChatGPTの回答を最後までスクロールし、コードブロック全体をコピーし直す。それでも出るならChatGPTに貼る |
'OrderSend' - wrong parameters count / 'PositionOpen' - undeclared identifier / 'CTrade' - undeclared identifier |
MQL5(MT5用)の書き方が混ざっている | 「MT4のMQL4で書き直してください。MQL5の文法は使わないでください」と伝えて、完全なコードを出し直してもらう |
possible loss of data due to type conversion(warning) |
数値の型変換で精度が落ちる可能性がある、という警告 | 警告なので動く。気になる場合はエラー行と一緒にChatGPTに「この警告を消したい」と伝える |
return value of 'OrderSelect' should be checked(warning) |
関数の結果を確認していない、という警告(#property strict を使うと出やすい) |
警告なので動く。直したい場合はChatGPTに貼る |
'iMA' - wrong parameters count |
関数に渡す値の数が違う。MQL5の書き方が混ざっているか、ChatGPTの単純ミス | エラー行と一緒にChatGPTに貼る。「MQL4の iMA の書き方で」と添える |
ChatGPTに聞くときのポイント
- 「エラー」タブの行を全部コピーする(右クリック→「すべてコピー」要確認)
- 1つ直すと別のエラーが出ることがあるので、直るまで繰り返す
- 3回直しても直らないときは「最初から書き直してください」と頼む(4-3)
ここに画面写真を入れてくださいMetaEditorの「エラー」タブに赤いerror行と黄色いwarning行が出ている状態
8-3-01.png2. MT4でEAが動かない(チャートに乗せたあと)
チャートに乗せたのに取引しない、または「エキスパート」タブに注文失敗のログが出るときです。
| 症状・エラー文の例 | 意味 | 対処 |
|---|---|---|
| チャート右上が困り顔(×印)のまま | EA単位かMT4全体の自動売買がOFF | ①ツールバーの「自動売買」が緑か ②EAを右クリック→「設定」→「全般」タブの「自動売買を許可する」にチェックがあるか、の両方を確認する要確認 |
| ナビゲーターに自作EAが出てこない | .ex4 ができていない、または保存場所が違う | MetaEditorでコンパイルが「0 error」になっているか確認。ファイルが「MQL4」→「Experts」に保存されているか確認し、ナビゲーターで右クリック→「更新」 |
| ニコちゃんマークなのに取引しない(ログにもエラーなし) | エントリー条件がまだ来ていない。時間帯フィルターで取引時間外の可能性も | バックテストの取引頻度と比べて待つ。時間帯フィルターを入れた場合はサーバー時間(MT4の時計)で範囲内か確認 |
OrderSend error 130(invalid stops) |
損切り・利確の値が業者のルールに合っていない(近すぎる、または方向が逆) | 損切り・利確のpipsを少し広げてみる。直らなければ「error 130が出る」とChatGPTに伝えて、ストップレベルの確認処理を入れてもらう |
OrderSend error 131(invalid trade volume) |
ロット数が口座のルールに合わない(最小ロット未満、刻みが違う) | Lotsを0.01などその口座の最小ロットに合わせる。口座の最小ロットは「気配値表示」で通貨ペアを右クリック→「仕様」で確認できる要確認 |
OrderSend error 134(not enough money) |
証拠金が足りない | ロット数を下げる。デモ口座なら残高を増やして作り直すこともできる |
OrderSend error 136(off quotes)/ error 138(requote) |
相場が急変していて、その値段では約定できなかった | 一時的なもの。頻発する場合は、Slippage(許容スリッページ)を少し大きくするか、時間帯フィルターで指標発表時を避ける |
error 4109(trade is not allowed) |
自動売買が許可されていない | 困り顔のときと同じ。「自動売買」ボタンとEA設定の「自動売買を許可する」の両方を確認 |
| 右下に「回線不通」/「無効な口座」 | サーバーに接続できていない | 「ファイル」→「取引口座にログイン」でID・パスワード・サーバー名を入れ直す。デモとリアルのサーバー名の違いに注意 |
| MT4を閉じたら取引が止まった | EAはMT4が起動している間だけ動く | PCをつけっぱなしにする(スリープ無効)か、VPSを検討する(7-1) |
ChatGPTに聞くときのポイント
- 付録Bの「6. うまく動かないときのプロンプト」を使う
- 「エキスパート」タブのログを、右クリック→「すべてコピー」で貼る要確認
- 「エラー番号(例: 130)」があれば必ず含める。番号だけでほぼ原因が分かります
ここに画面写真を入れてください「エキスパート」タブに OrderSend error 130 のログが出ている状態
8-3-02.png3. バックテストが動かない(ストラテジーテスター)
「スタート」を押しても結果が出ない、取引が0回、などのときです。
| 症状・エラー文の例 | 意味 | 対処 |
|---|---|---|
| 「スタート」を押してもすぐ終わる/グラフが出ない | 指定した期間のヒストリカルデータがない | 5-1の手順でヒストリーセンターからデータをダウンロードする。期間を短くして試すのも有効 |
TestGenerator: unmatched data error |
ダウンロードしたデータの整合性が取れていない(時間足ごとのデータがずれている) | ヒストリーセンターで対象の通貨ペアの全時間足をダウンロードし直す。または期間を少しずらす。「操作履歴」タブに詳細が出る要確認 |
| モデリング品質が「n/a」または低い(25%など) | データが足りず、テストの信頼度が低い | 5-1に戻って1分足(M1)を含めてデータをダウンロードする。モデルが「全ティック」になっているか確認 |
| 取引回数が0回 | 条件が一度も満たされなかった、または設定ミス | ①通貨ペア・時間足がEAの想定と合っているか ②パラメータ(期間やロット)が極端でないか ③スプレッドを極端に大きくしていないか、を確認 |
| テスターのEA一覧に自作EAが出ない | コンパイルされていない、または保存場所が違う | 「1. コンパイルエラー」の表と同じ。「0 error」を確認し、Expertsフォルダに保存されているか確認 |
not enough moneyが「操作履歴」に大量に出る |
初期証拠金に対してロットが大きすぎる | テスター設定の初期証拠金を増やすか、EAのLotsを小さくする |
| テストが極端に遅い/止まったように見える | 全ティックモデルで長期間をテストしている | 正常。進行バーが動いていれば待つ。最初は1年程度の短い期間で試すとよい |
ChatGPTに聞くときのポイント
- ストラテジーテスターの「操作履歴」タブのログをコピーして貼る要確認
- テスト設定(通貨ペア、時間足、期間、モデル、スプレッド、初期証拠金)を一緒に書く
- 「取引が0回」の場合は、EAのコードも一緒に貼ると原因を見つけてもらいやすい
ここに画面写真を入れてくださいストラテジーテスターの「操作履歴」タブにエラーが出ている状態
8-3-03.png表にないエラーが出たとき
エラー文をそのままChatGPTに貼り、次のように聞いてください。
MT4のEAで以下のエラー(またはログ)が出ました。
初心者向けに、意味と、確認すべき手順を順番に教えてください。
【場面】: 【コンパイル時 / チャートに乗せたとき / バックテスト時】
【エラー文】: 【ここに貼り付け】
「MT4」「MQL4」という言葉を必ず入れてください。入れないとMT5の解決策が返ってくることがあります。