AI EA スクール
0記事中 0記事 読了
カリキュラム 付録 付録 付録C よくあるエラーと対処一覧
C

付録C よくあるエラーと対処一覧

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

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

  • コンパイル・稼働・バックテストの3場面で、よく出るエラーの意味と対処が分かる
  • エラー文を見て「自分で直せるもの」と「ChatGPTに聞くもの」を切り分けられる
  • ChatGPTに聞くときに、何を貼り付ければいいかが分かる

使い方

エラーは大きく3つの場面で起こります。

  1. コンパイルエラー … MetaEditorで[F7]を押したとき(第4章)
  2. MT4でEAが動かない … チャートに乗せたのに取引しない、注文が失敗する(第7章)
  3. バックテストが動かない … ストラテジーテスターで結果が出ない(第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)

2. 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)」があれば必ず含める。番号だけでほぼ原因が分かります

3. バックテストが動かない(ストラテジーテスター)

「スタート」を押しても結果が出ない、取引が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のコードも一緒に貼ると原因を見つけてもらいやすい

表にないエラーが出たとき

エラー文をそのままChatGPTに貼り、次のように聞いてください。

MT4のEAで以下のエラー(またはログ)が出ました。
初心者向けに、意味と、確認すべき手順を順番に教えてください。

【場面】: 【コンパイル時 / チャートに乗せたとき / バックテスト時】
【エラー文】: 【ここに貼り付け】

「MT4」「MQL4」という言葉を必ず入れてください。入れないとMT5の解決策が返ってくることがあります。