MQL5エラーコード辞典|GetLastError・TRADE_RETCODE・コンパイルエラー一覧
MT5 / MQL5でEA、インジケーター、外部連携、バックテスト、開発作業を行っていると、ランタイムエラー、取引サーバーリターンコード、コンパイルエラー、WebRequest関連エラー、Strategy Tester関連エラーなどが表示されることがあります。
エラーを確認する時に重要なのは、コード番号やメッセージだけで原因を断定しないことです。エラーが出た場所、発生時刻、EA名、インジケーター名、銘柄名、時間足、setファイル、Expertsログ、Journalログ、MetaEditorのエラー欄を合わせて確認します。
この記事では、MQL5のGetLastError系ランタイムエラー、MqlTradeResult.retcodeで返るTRADE_RETCODE系リターンコード、MetaEditorのコンパイルエラー、WebRequest / HTTP / Webhook / Google Sheets / Discord通知関連エラー、Strategy Tester関連エラーを辞書形式で整理します。
注意:このページは、MT5 / MQL5のエラーコードやエラーメッセージを確認するための技術確認記事です。投資判断、売買タイミング、利益保証、勝率保証、損失回避保証、推奨ロット、推奨銘柄、特定ブローカーへの誘導を目的とした内容ではありません。
- MT5 / MQL5のエラーコードは種類を分けて確認する
- GetLastErrorとTRADE_RETCODEを混同しない
- エラーコードを見る前に確認する場所
- GetLastErrorで確認するMQL5ランタイムエラー一覧
- 取引サーバーリターンコード一覧|TRADE_RETCODE系
- MetaEditorのコンパイルエラー一覧
- WebRequest・Webhook・Google Sheets連携のエラー一覧
- バックテスト・ストラテジーテスター関連エラー一覧
- エラー別に最初に見るログ
- EA利用者向けの確認ポイント
- MQL5開発者向けの確認ポイント
- 問い合わせ前に整理する情報
- 送ってはいけない情報
- MT5 / MQL5エラー確認チェック表
- 次に読む技術講座
- 次に確認するページ
- FAQ
- 関連するMQL5技術辞典
- まとめ
MT5 / MQL5のエラーコードは種類を分けて確認する
MT5 / MQL5のエラーは、すべて同じ場所に表示されるわけではありません。まず、どの種類のエラーかを分けて確認します。
| 分類 | 主な確認場所 | 代表例 | 最初に確認すること |
|---|---|---|---|
| ランタイムエラー | Expertsログ、Printログ、GetLastError | ERR_INVALID_PARAMETER、ERR_FUNCTION_NOT_ALLOWED、ERR_INDICATOR_WRONG_HANDLE | 発生関数、直前の処理、引数、ハンドル、対象銘柄 |
| 取引サーバーリターンコード | OrderSend結果、MqlTradeResult.retcode、Expertsログ | TRADE_RETCODE_INVALID_VOLUME、TRADE_RETCODE_NO_MONEY、TRADE_RETCODE_INVALID_FILL | ロット、証拠金、取引時間、自動売買許可、銘柄条件 |
| コンパイルエラー | MetaEditorのエラー欄 | undeclared identifier、wrong parameters count、unknown symbol 0xFEFF | 対象ファイル、行番号、列番号、直前に変更した箇所 |
| 外部連携エラー | Expertsログ、Journalログ、外部サービス側 | WebRequest not allowed、HTTP 403、ERR_WEBREQUEST_TIMEOUT | WebRequest許可、URL、権限、HTTP応答、VPS側設定 |
| バックテスト関連エラー | Strategy Tester、Expertsログ、Journalログ | ヒストリカルデータ不足、銘柄不一致、取引が発生しない | EA配置、銘柄、期間、spread、setファイル、テスター条件 |
ランタイムエラー
ランタイムエラーは、MQL5プログラムの実行中に発生するエラーです。GetLastError()で直近のエラーコードを確認することがあります。
ランタイムエラーは、関数の引数不備、ハンドル不正、ファイル操作失敗、配列範囲外、WebRequest失敗、履歴データ不足など、さまざまな場面で発生します。
取引サーバーリターンコード
取引サーバーリターンコードは、OrderSendなどの注文処理に対してサーバー側から返される結果です。MqlTradeResult.retcodeに格納されるため、EAの注文処理や決済処理を確認する時に重要です。
TRADE_RETCODE系は、正常完了を示すものもあれば、注文条件不備、自動売買無効、価格変化、証拠金不足、取引時間外、ポジション制約を示すものもあります。
コンパイルエラー
コンパイルエラーは、MetaEditorでmq5やmqhをコンパイルした時に表示されます。
コンパイルエラーはMT5上の運用ログではなく、ソースコード作成・改修時のエラーです。行番号だけでなく、前後の構文、include、文字コード、直前に変更した箇所を確認します。
外部連携エラー
外部連携エラーは、Discord通知、Google Sheets連携、Webhook、API通信、外部認証などで発生することがあります。
外部連携エラーが出ていても、EA本体の判定や表示は動いている場合があります。売買条件、通知条件、WebRequest通信、外部サービス側の権限は分けて確認します。
バックテスト関連エラー
バックテスト関連エラーでは、EAファイル、テスト期間、銘柄、時間足、ヒストリカルデータ、spread条件、setファイル、外部連携制約を確認します。
バックテスト結果や最適化結果は将来の結果を保証するものではありません。結果だけでなく、検証条件とログを残してください。
GetLastErrorとTRADE_RETCODEを混同しない
MQL5のエラー確認では、GetLastErrorで確認する実行時エラーと、MqlTradeResult.retcodeで確認する取引サーバーリターンコードを分けて確認します。
GetLastErrorは、MQL5プログラム実行中の関数呼び出しや端末側処理に関するエラー確認で使います。一方、TRADE_RETCODE系は、OrderSendなどの取引リクエストに対して、取引サーバー側から返される結果コードです。
| 確認対象 | 主な意味 | 確認する場面 | 代表例 | 最初に見るログ |
|---|---|---|---|---|
| GetLastError | MQL5実行時・端末側・関数呼び出し側のエラー | CopyBuffer、FileOpen、WebRequest、Object操作、iCustomなど | ERR_INVALID_PARAMETER、ERR_INDICATOR_WRONG_HANDLE、ERR_CANNOT_OPEN_FILE | Expertsログ、直前の関数、GetLastError出力 |
| TRADE_RETCODE | 取引サーバー側の注文処理結果 | OrderSend、CTrade.Buy/Sell、PositionCloseなど | TRADE_RETCODE_DONE、TRADE_RETCODE_INVALID_VOLUME、TRADE_RETCODE_NO_MONEY | ORDER_RESULT、MqlTradeResult.retcode、Journalログ |
| MetaEditorコンパイルエラー | ソースコードの構文・型・include・文字コードエラー | mq5 / mqhのコンパイル時 | undeclared identifier、wrong parameters count、unknown symbol 0xFEFF | MetaEditorのエラー欄、対象行、直前変更箇所 |
エラーコードだけで原因を断定せず、発生した関数、対象銘柄、時間足、EA名、バージョン、Expertsログ、Journalログ、MetaEditorのエラー欄を合わせて確認してください。
エラーコードを見る前に確認する場所
| 確認場所 | 確認できる内容 | 主な対象エラー | 問い合わせ時に残す情報 |
|---|---|---|---|
| Expertsログ | EA・インジケーター側のログ | 初期化失敗、注文エラー、外部連携エラー、ファイル読み込みエラー | EA名、時刻、銘柄、時間足、ログ前後 |
| Journalログ | MT5端末側の操作・通信・注文ログ | 接続、注文、Strategy Tester、端末状態 | 発生時刻、端末状態、注文関連ログ |
| MetaEditorのエラー欄 | コンパイルエラー、警告、対象ファイル、行番号 | 構文エラー、include不足、型不一致、BOM混入 | ファイル名、行番号、エラー全文、直前の変更 |
| Strategy Testerログ | バックテスト中のEAログ、テスター状態 | テスト開始不可、取引なし、データ不足、初期化失敗 | EA名、set、銘柄、時間足、期間、spread |
| 外部サービス側レスポンス | HTTPステータス、権限エラー、送信先応答 | WebRequest、Webhook、GAS、API連携 | HTTPコード、発生時刻、送信先種別、マスク済みログ |
GetLastErrorで確認するMQL5ランタイムエラー一覧
ここでは、GetLastError()で確認するMQL5ランタイムエラーを、実務で確認しやすいカテゴリ別に整理します。コード番号や定数名は原因特定の入口であり、必ず発生箇所、ログ、直前の処理と合わせて確認してください。
共通・内部・パラメータ関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 0 / ERR_SUCCESS | 処理成功 | エラー確認後の正常状態 | ResetLastError後の値か、直前処理の結果かを確認 | Experts |
| 4001 / ERR_INTERNAL_ERROR | 内部エラー | 端末内部処理、関数呼び出し | 再現条件、直前の関数、端末状態を確認 | Experts / Journal |
| 4002 / ERR_WRONG_INTERNAL_PARAMETER | 内部呼び出しのパラメータ不備 | システム関数内部処理 | 渡している値、ハンドル、対象IDを確認 | Experts |
| 4003 / ERR_INVALID_PARAMETER | システム関数呼び出し時のパラメータ不備 | 各種MQL5関数呼び出し | 引数、型、範囲、空文字、NULLを確認 | Experts |
| 4004 / ERR_NOT_ENOUGH_MEMORY | メモリ不足 | 配列拡張、大量オブジェクト、長期テスト | 配列サイズ、履歴取得量、ログ量、端末メモリを確認 | Experts / Journal |
| 4006 / ERR_INVALID_ARRAY | 配列型・サイズ・状態が不正 | CopyBuffer、CopyRates、配列操作 | 配列の初期化、サイズ、AS_SERIES設定を確認 | Experts |
| 4007 / ERR_ARRAY_RESIZE_ERROR | 配列リサイズ失敗 | ArrayResize、大量データ保存 | 静的配列ではないか、必要サイズが大きすぎないか確認 | Experts |
| 4008 / ERR_STRING_RESIZE_ERROR | 文字列リサイズ失敗 | 長文ログ、JSON、HTTP応答処理 | 文字列長、レスポンス量、不要な結合処理を確認 | Experts |
| 4010 / ERR_INVALID_DATETIME | 日時値が不正 | 日時変換、期間指定、ログ時刻処理 | サーバー時間、日本時間変換、文字列日時を確認 | Experts |
| 4014 / ERR_FUNCTION_NOT_ALLOWED | その環境で呼び出し不可の関数 | Strategy Tester、インジケーター内処理、制限環境 | 関数の呼び出し場所、テスターか通常チャートかを確認 | Experts / Tester |
| 4019 / ERR_MATH_OVERFLOW | 計算時のオーバーフロー | 極端な数値、累乗、除算、配列集計 | 入力値、分母0、異常値、桁あふれを確認 | Experts |
| 4020 / ERR_SLEEP_ERROR | Sleep呼び出し後にテスト終了日時を超過 | バックテスト、待機処理 | Sleepの使用場所、テスター終了日時、待機設計を確認 | Tester / Experts |
| 4022 / ERR_PROGRAM_STOPPED | 外部要因でプログラム停止 | 最適化中断、ビジュアルテスト終了、EA削除 | 停止操作、テスト中断、OnDeinit理由を確認 | Journal / Tester |
チャート・オブジェクト関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 4101 / ERR_CHART_WRONG_ID | チャートID不正 | ChartSet、Object操作、別チャート操作 | 対象chart_id、チャート存在、閉じたチャート参照を確認 | Experts |
| 4102 / ERR_CHART_NO_REPLY | チャートが応答しない | 重い描画、時間足変更、テンプレート適用 | オブジェクト数、描画頻度、ChartRedraw頻度を確認 | Experts / Journal |
| 4103 / ERR_CHART_NOT_FOUND | チャートが見つからない | 別チャート操作、チャート遷移 | 対象チャートが開いているか確認 | Experts |
| 4108 / ERR_CHART_CANNOT_CREATE_TIMER | タイマー作成失敗 | EventSetTimer、OnTimer設計 | 既存タイマー、初期化順、OnDeinitでの解除を確認 | Experts |
| 4112 / ERR_CHART_TEMPLATE_FAILED | テンプレート適用失敗 | テンプレート読み込み、チャート復元 | テンプレート名、保存場所、対象チャートを確認 | Experts / Journal |
| 4114 / ERR_CHART_INDICATOR_CANNOT_ADD | チャートへインジケーター追加失敗 | iCustom、ChartIndicatorAdd | インジ名、パラメータ、handle、対象サブウィンドウを確認 | Experts |
| 4201 / ERR_OBJECT_ERROR | オブジェクト操作エラー | パネル、ライン、ラベル、ボタン表示 | オブジェクト名、作成順、削除済み参照を確認 | Experts |
| 4202 / ERR_OBJECT_NOT_FOUND | オブジェクトが見つからない | ObjectSet、ObjectDelete、ObjectGet | 名前の一致、チャートID、サブウィンドウを確認 | Experts |
マーケット・ヒストリー関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 4301 / ERR_MARKET_UNKNOWN_SYMBOL | 不明な銘柄 | SymbolInfo、CopyRates、別口座移行 | 銘柄名、サフィックス、Market Watch表示を確認 | Experts |
| 4302 / ERR_MARKET_NOT_SELECTED | 銘柄がMarket Watchで選択されていない | 別銘柄参照、マルチシンボルEA | Market Watchへ表示されているか確認 | Experts |
| 4303 / ERR_MARKET_WRONG_PROPERTY | 銘柄プロパティID不正 | SymbolInfoInteger / Double / String | 取得プロパティ種別と関数の組み合わせを確認 | Experts |
| 4304 / ERR_MARKET_LASTTIME_UNKNOWN | 最終tick時刻不明 | 未配信銘柄、休場、データ不足 | 銘柄のtick配信、取引時間、接続状態を確認 | Experts / Journal |
| 4401 / ERR_HISTORY_NOT_FOUND | 要求した履歴が見つからない | CopyRates、CopyTime、バックテスト | 履歴データ、期間、時間足、銘柄名を確認 | Experts / Tester |
| 4403 / ERR_HISTORY_TIMEOUT | 履歴取得タイムアウト | 長期データ取得、初回起動、VPS移行後 | 取得期間、銘柄、端末接続、再試行設計を確認 | Experts / Journal |
| 4404 / ERR_HISTORY_BARS_LIMIT | 端末設定のバー数制限 | 長期検証、インジ計算、履歴参照 | 最大バー数、取得範囲、必要バー数を確認 | Experts |
| 4407 / ERR_HISTORY_SMALL_BUFFER | 受け取り配列が小さい | Copy系関数、配列受け取り | 配列サイズ、戻り値、取得本数を確認 | Experts |
通知・端末・FTP関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 4510 / ERR_MAIL_SEND_FAILED | メール送信失敗 | メール通知EA | メール設定、送信許可、端末設定を確認 | Experts / Journal |
| 4515 / ERR_NOTIFICATION_SEND_FAILED | Push通知送信失敗 | SendNotification | MetaQuotes ID、通知設定、通信状態を確認 | Experts / Journal |
| 4516 / ERR_NOTIFICATION_WRONG_PARAMETER | 通知パラメータ不正 | 空文字、NULL、長すぎる通知 | 通知本文、文字数、空値を確認 | Experts |
| 4517 / ERR_NOTIFICATION_WRONG_SETTINGS | 通知設定不備 | Push通知未設定 | 端末オプション、通知許可、MetaQuotes IDを確認 | Journal |
| 4518 / ERR_NOTIFICATION_TOO_FREQUENT | 通知送信が多すぎる | 連続通知、複数EA稼働 | 通知間隔、重複送信、throttle設計を確認 | Experts |
| 4513 / ERR_TERMINAL_WRONG_PROPERTY | 端末プロパティID不正 | TerminalInfo系 | 取得関数とプロパティ種別を確認 | Experts |
取引・口座・プロパティ関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 4701 / ERR_ACCOUNT_WRONG_PROPERTY | 口座プロパティID不正 | AccountInfo系 | AccountInfoInteger / Double / Stringの使い分けを確認 | Experts |
| 4751 / ERR_TRADE_WRONG_PROPERTY | 取引プロパティID不正 | Order / Position / Dealプロパティ取得 | 対象がOrderかPositionかDealかを確認 | Experts |
| 4752 / ERR_TRADE_DISABLED | EAによる取引が禁止 | EA注文時 | 自動売買ボタン、EA個別許可、口座側制限を確認 | Experts / Journal |
| 4753 / ERR_TRADE_POSITION_NOT_FOUND | ポジションが見つからない | 決済、トレール、ポジション管理 | チケット、銘柄、Magic Number、既に決済済みか確認 | Experts |
| 4754 / ERR_TRADE_ORDER_NOT_FOUND | 注文が見つからない | 未決注文変更・削除 | 注文チケット、履歴移動、状態変化を確認 | Experts |
| 4755 / ERR_TRADE_DEAL_NOT_FOUND | 約定履歴が見つからない | 履歴集計、損益集計 | HistorySelect範囲、対象期間、Deal ticketを確認 | Experts |
| 4756 / ERR_TRADE_SEND_FAILED | 取引リクエスト送信失敗 | OrderSend | MqlTradeRequest、retcode、Journalログを確認 | Experts / Journal |
| 4758 / ERR_TRADE_CALC_FAILED | 利益または証拠金計算失敗 | OrderCalcMargin、OrderCalcProfit | 銘柄、価格、ロット、口座通貨、symbol選択を確認 | Experts |
インジケーター・バッファ関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 4601 / ERR_BUFFERS_NO_MEMORY | インジケーターバッファ用メモリ不足 | 多バッファインジ、長期履歴 | バッファ数、描画対象、履歴量を確認 | Experts |
| 4602 / ERR_BUFFERS_WRONG_INDEX | バッファ番号不正 | SetIndexBuffer、CopyBuffer | バッファ番号、宣言数、読み取り先を確認 | Experts |
| 4801 / ERR_INDICATOR_UNKNOWN_SYMBOL | インジケーター対象銘柄不明 | iCustom、別銘柄インジ参照 | 銘柄名、サフィックス、Market Watch表示を確認 | Experts |
| 4802 / ERR_INDICATOR_CANNOT_CREATE | インジケーター作成失敗 | iCustom、標準インジ作成 | インジ名、パラメータ、ファイル配置を確認 | Experts |
| 4806 / ERR_INDICATOR_DATA_NOT_FOUND | 要求データが見つからない | CopyBuffer、初回起動、履歴不足 | 必要バー数、BarsCalculated、履歴取得状態を確認 | Experts |
| 4807 / ERR_INDICATOR_WRONG_HANDLE | インジケーターハンドル不正 | CopyBuffer、IndicatorRelease後 | handle作成結果、INVALID_HANDLE、解放済み参照を確認 | Experts |
| 4808 / ERR_INDICATOR_WRONG_PARAMETERS | インジ作成時のパラメータ数不正 | iCustom、IndicatorCreate | Inputs数、型、順序、MQL4/5差異を確認 | Experts |
| 4812 / ERR_INDICATOR_WRONG_INDEX | 要求したバッファインデックス不正 | CopyBuffer、EAからサインインジ読み取り | バッファ番号、BUY/SELL別バッファ、値なし表現を確認 | Experts |
ファイル・ディレクトリ関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| 5001 / ERR_TOO_MANY_FILES | 同時に開けるファイル数超過 | CSV出力、ログ分割、複数EA | FileClose漏れ、同時出力数を確認 | Experts |
| ERR_WRONG_FILENAME | ファイル名不正 | CSV、ログ、設定ファイル | 禁止文字、パス、拡張子、空文字を確認 | Experts |
| ERR_CANNOT_OPEN_FILE | ファイルを開けない | FileOpen、CSV読み書き | Filesフォルダ、権限、パス、共有モードを確認 | Experts / Journal |
| ERR_INVALID_FILEHANDLE | ファイルハンドル不正 | FileRead、FileWrite、FileClose | FileOpen結果、INVALID_HANDLE、Close済みか確認 | Experts |
| ERR_FILE_NOT_EXIST | ファイルが存在しない | 設定ファイル、CSV、外部読込 | MQL5\Files、Common Files、ファイル名を確認 | Experts |
| ERR_DIRECTORY_NOT_EXIST | ディレクトリが存在しない | フォルダ分割保存、ログ保存 | フォルダ作成、相対パス、Common指定を確認 | Experts |
| ERR_FILE_WRITEERROR | ファイル書き込み失敗 | CSV保存、ログ保存、VPS | 権限、容量、ファイルロック、FileFlushを確認 | Experts / Journal |
文字列・配列関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| ERR_STRINGPOS_OUTOFRANGE | 文字列位置が範囲外 | StringSubstr、URL加工、CSV解析 | 文字列長、開始位置、検索結果-1を確認 | Experts |
| ERR_WRONG_STRING_PARAMETER | 文字列パラメータ不正 | String系関数 | 空文字、NULL、長さ、開始位置を確認 | Experts |
| ERR_INCOMPATIBLE_ARRAYS | 配列の互換性不一致 | ArrayCopy、型違い配列 | 配列型、次元、AS_SERIESを確認 | Experts |
| ERR_SMALL_ARRAY | 配列が小さすぎる | CopyBuffer、CopyRates、参照位置指定 | 戻り値、取得本数、添字を確認 | Experts |
| ERR_ZEROSIZE_ARRAY | サイズ0配列 | 初期化前配列、取得失敗後参照 | ArraySize、取得結果、空配列処理を確認 | Experts |
| ERR_NUMBER_ARRAYS_ONLY | 数値配列のみ許可 | 統計処理、配列関数 | 配列型、関数仕様を確認 | Experts |
WebRequest・ネットワーク関連エラー
| コード / 定数名 | 意味 | 出やすい場面 | 最初に確認すること | 送ってはいけない情報 |
|---|---|---|---|---|
| ERR_WEBREQUEST_INVALID_ADDRESS | URL形式不正 | Webhook、GAS URL、API通信 | URL形式、空白、改行、全角文字を確認 | Webhook URL、GAS URLの実値 |
| ERR_WEBREQUEST_CONNECT_FAILED | 接続失敗 | 外部通信、VPS、API接続 | ネットワーク、VPS通信、SSL、外部サービス状態を確認 | APIキー、認証トークン |
| ERR_WEBREQUEST_TIMEOUT | タイムアウト | 外部API、GAS、重い処理 | timeout、外部サービス応答、送信間隔を確認 | URL実値、token |
| ERR_WEBREQUEST_REQUEST_FAILED | HTTPリクエスト失敗 | Discord通知、Google Sheets連携 | HTTPステータス、payload、許可URL、Expertsログを確認 | Webhook URL、GAS URL、APIキー |
| ERR_NETSOCKET_CANNOT_CONNECT | ソケット接続失敗 | 独自TCP連携、外部Agent連携 | 接続先、ポート、ファイアウォール、VPS通信を確認 | 認証情報、接続先秘密情報 |
| ERR_NETSOCKET_HANDSHAKE_FAILED | ハンドシェイク失敗 | SSL/TLS、Socket通信 | 証明書、プロトコル、接続先仕様を確認 | 証明書秘密鍵、token |
取引サーバーリターンコード一覧|TRADE_RETCODE系
TRADE_RETCODE系は、注文や決済のリクエストに対して取引サーバーから返る結果です。正常系のコードも含まれるため、コードが出たからといってすべてがエラーとは限りません。
注文成功・処理完了を示すコード
| コード | 定数名 | 意味 | 出やすい場面 | EA利用者向け確認 | MQL5開発者向け確認 |
|---|---|---|---|---|---|
| 10008 | TRADE_RETCODE_PLACED | 注文が出された | 未決注文、注文配置 | 取引タブで注文状態を確認 | order ticket、request内容をログ化 |
| 10009 | TRADE_RETCODE_DONE | リクエスト完了 | 成行注文、決済、変更成功 | 約定・決済結果を履歴で確認 | deal / order、price、volume、commentを確認 |
| 10010 | TRADE_RETCODE_DONE_PARTIAL | 一部のみ完了 | 部分約定、大口注文 | 残数量と約定数量を確認 | volume、残注文、後続処理を確認 |
| 10025 | TRADE_RETCODE_NO_CHANGES | リクエストに変更なし | SL/TP変更、注文変更 | 変更前後の値が同じか確認 | Normalize後の価格、既存値との差分を確認 |
注文条件不備を示すコード
| コード | 定数名 | 意味 | 出やすい場面 | EA利用者向け確認 | MQL5開発者向け確認 |
|---|---|---|---|---|---|
| 10013 | TRADE_RETCODE_INVALID | リクエストが無効 | OrderSend全般 | EA設定、銘柄、注文種別を確認 | MqlTradeRequestの必須項目、action、typeを確認 |
| 10014 | TRADE_RETCODE_INVALID_VOLUME | ロット条件が無効 | 新規注文、一部決済 | 最小ロット、最大ロット、volume stepを確認 | NormalizeVolume、SYMBOL_VOLUME_*、丸め処理を確認 |
| 10015 | TRADE_RETCODE_INVALID_PRICE | 価格が無効 | 指値、逆指値、価格指定注文 | 注文価格、現在価格、銘柄桁数を確認 | Bid / Ask、NormalizeDouble、digitsを確認 |
| 10016 | TRADE_RETCODE_INVALID_STOPS | SL/TPなどのstop条件が無効 | 注文、SL/TP変更 | SL/TP距離、stop level、freeze levelを確認 | SYMBOL_TRADE_STOPS_LEVEL、価格距離、digitsを確認 |
| 10022 | TRADE_RETCODE_INVALID_EXPIRATION | 注文有効期限が無効 | 未決注文、有効期限付き注文 | 有効期限設定を確認 | type_time、expiration、サーバー時間を確認 |
| 10030 | TRADE_RETCODE_INVALID_FILL | 注文執行タイプが無効 | 成行注文、銘柄仕様違い | 口座・銘柄で許可される執行方式を確認 | type_filling、SYMBOL_FILLING_MODEを確認 |
| 10035 | TRADE_RETCODE_INVALID_ORDER | 注文タイプが不正または禁止 | 未決注文、銘柄制限 | 注文タイプが使える銘柄か確認 | ORDER_TYPE、SYMBOL_ORDER_MODEを確認 |
ロット・証拠金・価格に関するコード
| コード | 定数名 | 意味 | 出やすい場面 | EA利用者向け確認 | MQL5開発者向け確認 |
|---|---|---|---|---|---|
| 10004 | TRADE_RETCODE_REQUOTE | リクオート | 価格変動が大きい時 | 発生時刻、spread、価格変化を確認 | deviation、再試行条件、Bid / Ask更新を確認 |
| 10019 | TRADE_RETCODE_NO_MONEY | 資金不足を示す可能性 | 新規注文 | 有効証拠金、ロット、銘柄条件を確認 | OrderCalcMargin、margin mode、volumeを確認 |
| 10020 | TRADE_RETCODE_PRICE_CHANGED | 価格が変化 | 成行注文、急変時 | 約定時刻、spread、価格変化を確認 | 再取得価格、deviation、リトライ設計を確認 |
| 10021 | TRADE_RETCODE_PRICE_OFF | 処理可能なクォートがない | 休場、低流動性、接続不安定 | 銘柄配信、取引時間、接続状態を確認 | SymbolInfoTick、last tick、Market Watchを確認 |
| 10034 | TRADE_RETCODE_LIMIT_VOLUME | 銘柄の注文・ポジション数量上限 | 複数ポジション、大口注文 | 保有数量、未決注文、銘柄上限を確認 | SYMBOL_VOLUME_LIMIT、合計volumeを確認 |
| 10038 | TRADE_RETCODE_INVALID_CLOSE_VOLUME | 決済数量が保有数量を超過 | 一部決済、複数決済 | 現在ポジション数量、決済数量を確認 | Position volume、volume step、丸め処理を確認 |
自動売買許可・取引権限に関するコード
| コード | 定数名 | 意味 | 出やすい場面 | EA利用者向け確認 | MQL5開発者向け確認 |
|---|---|---|---|---|---|
| 10017 | TRADE_RETCODE_TRADE_DISABLED | 取引が無効 | 注文送信時 | 銘柄・口座の取引可否を確認 | SYMBOL_TRADE_MODE、AccountInfoを確認 |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | サーバー側で自動売買無効 | EA注文時 | 口座・サーバー側制限を確認 | サーバー制限時のログ分岐を確認 |
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_AT | クライアント端末側で自動売買無効 | EA注文時 | MT5上部の自動売買ボタン、EA個別許可を確認 | TerminalInfoInteger、MQLInfoIntegerの許可状態を確認 |
| 10032 | TRADE_RETCODE_ONLY_REAL | リアル口座のみ許可される操作 | 口座種別制限 | デモ / リアルの違いを確認 | AccountInfo、処理分岐、ログ説明を確認 |
| 10042 | TRADE_RETCODE_LONG_ONLY | ロングのみ許可 | 売り注文、銘柄制限 | 銘柄の取引ルールを確認 | symbol trade mode、注文方向制限を確認 |
| 10043 | TRADE_RETCODE_SHORT_ONLY | ショートのみ許可 | 買い注文、銘柄制限 | 銘柄の取引ルールを確認 | 注文方向制限の判定を確認 |
| 10044 | TRADE_RETCODE_CLOSE_ONLY | 決済のみ許可 | 新規注文停止中の銘柄 | 新規注文可否、銘柄状態を確認 | 新規注文と決済処理の分岐を確認 |
サーバー・市場状態に関するコード
| コード | 定数名 | 意味 | 出やすい場面 | EA利用者向け確認 | MQL5開発者向け確認 |
|---|---|---|---|---|---|
| 10006 | TRADE_RETCODE_REJECT | リクエスト却下 | 注文条件・サーバー判断 | Journalログ、注文条件、サーバー応答を確認 | retcode、comment、request内容をログ化 |
| 10011 | TRADE_RETCODE_ERROR | 処理エラー | 注文処理全般 | 再現条件、発生時刻、Journalログを確認 | request / result / commentを記録 |
| 10012 | TRADE_RETCODE_TIMEOUT | タイムアウトでキャンセル | 接続不安定、サーバー応答遅延 | 接続状態、VPS、発生時刻を確認 | 再試行設計、OrderSendAsync設計を確認 |
| 10018 | TRADE_RETCODE_MARKET_CLOSED | 市場が閉まっている | 取引時間外 | 銘柄の取引時間、サーバー時間を確認 | 取引時間判定、Session情報を確認 |
| 10024 | TRADE_RETCODE_TOO_MANY_REQUESTS | リクエスト頻度が高すぎる | 連続注文、連続変更 | 短時間に同じ操作が連続していないか確認 | throttle、処理間隔、重複送信防止を確認 |
| 10031 | TRADE_RETCODE_CONNECTION | 取引サーバーへ未接続 | 接続断、VPS、回線不安定 | MT5接続状態、VPS通信、Journalログを確認 | 接続状態チェックと送信前ガードを確認 |
ポジション・決済制約に関するコード
| コード | 定数名 | 意味 | 出やすい場面 | EA利用者向け確認 | MQL5開発者向け確認 |
|---|---|---|---|---|---|
| 10029 | TRADE_RETCODE_FROZEN | 注文またはポジションが凍結 | 変更・決済制限 | freeze level、銘柄状態を確認 | SYMBOL_TRADE_FREEZE_LEVEL、変更距離を確認 |
| 10036 | TRADE_RETCODE_POSITION_CLOSED | 指定ポジションは既に決済済み | 決済処理、複数EA、遅延処理 | 取引履歴、現在ポジションを確認 | PositionSelect、ticket更新、履歴移動を確認 |
| 10039 | TRADE_RETCODE_CLOSE_ORDER_EXIST | 指定ポジションに既存の決済注文がある | ヘッジ口座、一部決済、反対注文 | 未決注文と対象ポジションを確認 | 既存close order、volume合計を確認 |
| 10040 | TRADE_RETCODE_LIMIT_POSITIONS | 保有ポジション数上限 | 複数EA、複数銘柄、口座制限 | 保有数、未決注文数、口座制限を確認 | Netting / Hedging差、上限到達時の分岐を確認 |
| 10045 | TRADE_RETCODE_FIFO_CLOSE | FIFOルールによる決済制限 | 特定口座での決済 | 口座ルール、決済順を確認 | ACCOUNT_FIFO_CLOSE、決済対象選択を確認 |
| 10046 | TRADE_RETCODE_HEDGE_PROHIBITED | 反対ポジションが禁止 | ヘッジ制限口座 | 同一銘柄の反対方向注文可否を確認 | ACCOUNT_MARGIN_MODE、既存ポジション方向を確認 |
MetaEditorのコンパイルエラー一覧
MetaEditorのコンパイルエラーは、数値コードよりも表示メッセージ、対象ファイル、行番号、列番号を見て確認します。表示行だけでなく、直前の行や前後の括弧不整合が原因になることがあります。
| 表示メッセージ | 意味 | 出やすい場面 | 最初に確認すること | 依頼時に送る情報 |
|---|---|---|---|---|
| undeclared identifier | 未定義の変数・関数・定数 | 変数名ミス、include不足、削除済み関数参照 | スペル、宣言位置、スコープ、include | 対象ファイル、行番号、前後のコード |
| wrong parameters count | 関数呼び出しの引数数が不一致 | MQL4からMQL5移行、関数定義変更 | 関数定義、引数数、引数型、オーバーロード | 呼び出し行、関数定義、関連include |
| cannot convert enum | enum型の変換不一致 | 時間足、注文種別、プロパティ指定 | 型、MQL5定数、キャスト、関数引数 | 該当行、変数型、使用定数 |
| semicolon expected | セミコロン不足 | 行末、変数宣言、関数呼び出し | 直前行、括弧、文字列の閉じ忘れ | エラー行と直前数行 |
| unexpected token | 想定外の記号や構文 | 括弧崩れ、全角記号、貼り付けミス | if / for / 関数ブロック、引用符、全角文字 | 直前に変更した範囲 |
| unbalanced parentheses | 括弧対応不整合 | 関数、if文、for文、配列添字 | 波括弧、丸括弧、角括弧の対応 | 関数全体または変更ブロック |
| include file not found | includeファイル不足 | mqh参照、別PC移行、フォルダ不足 | Includeフォルダ、相対パス、関連mqh | mq5本体と関連mqh一式 |
| unknown symbol 0xFEFF | BOMまたは不可視文字混入 | ファイル先頭、コピー貼り付け | UTF-8 BOMなし保存、不可視文字除去 | 該当ファイル、1行目、保存形式 |
| array out of range | 配列範囲外参照 | CopyBuffer結果不足、bar参照、ループ | ArraySize、戻り値、添字、bars数 | ログ、対象配列、該当ループ |
| zero divide | 0除算 | 平均計算、比率計算、価格差計算 | 分母が0になる条件、初期値、データ不足 | 計算式、入力値、発生ログ |
WebRequest・Webhook・Google Sheets連携のエラー一覧
| 表示 / HTTPコード | 意味 | 出やすい場面 | 確認すること | 送ってはいけない情報 |
|---|---|---|---|---|
| WebRequest not allowed | MT5でURL許可がない | Discord、GAS、API通信 | MT5オプションのWebRequest許可URL | Webhook URL、GAS URLの実値 |
| ERR_WEBREQUEST_INVALID_ADDRESS | URL形式不正 | Webhook、GAS URL | URL形式、空白、改行、全角文字 | URL実値 |
| ERR_WEBREQUEST_CONNECT_FAILED | 接続失敗 | VPS、外部API、SSL | ネットワーク、VPS通信、外部サービス状態 | APIキー、token |
| ERR_WEBREQUEST_TIMEOUT | タイムアウト | 外部API応答遅延、GAS処理遅延 | timeout、外部処理時間、再試行設計 | URL実値、認証情報 |
| ERR_WEBREQUEST_REQUEST_FAILED | HTTPリクエスト失敗 | Webhook、Sheets、API通信 | HTTPステータス、payload、Expertsログ | Webhook URL、GAS URL、APIキー |
| HTTP 400 | リクエスト形式不正 | Webhook payload、JSON | JSON形式、必須項目、文字コード | token、URL実値 |
| HTTP 401 | 認証エラー | API通信、外部認証 | 認証方式、token、期限、権限 | APIキー、認証トークン |
| HTTP 403 | 権限不足 | GAS、API、Sheets | 共有権限、公開範囲、実行権限 | GAS URL、APIキー |
| HTTP 404 | URL不正または接続先なし | Webhook削除、GASデプロイ差し替え | URL、deployment、接続先存在 | URL実値 |
| HTTP 429 | リクエスト過多 | 通知連打、複数EA通知 | 送信間隔、通知抑制、throttle | Webhook URL |
| HTTP 500 | 外部サーバー側エラー | GAS、API、Webhook側障害 | 外部側ログ、発生時刻、再試行 | 認証情報 |
WebRequest確認の補足:WebRequestを使う場合は、MT5の「オプション」→「エキスパートアドバイザ」タブで、通信先URLを許可リストへ追加する必要があります。また、WebRequestはインジケーターからは呼び出せず、Strategy Testerでも実行できません。EA本体の判定、通知処理、外部通信処理は分けて確認してください。
バックテスト・ストラテジーテスター関連エラー一覧
| 表示・症状 | 意味 | 出やすい場面 | 最初に確認すること | 関連ログ |
|---|---|---|---|---|
| テストが開始できない | EA配置、設定、銘柄、期間に問題がある可能性 | Strategy Tester開始時 | EAコンパイル、symbol、期間、モデル、setを確認 | Tester / Journal |
| ヒストリカルデータ不足 | テストに必要な過去データが不足 | 長期BT、初回BT | ヒストリー取得、期間、時間足、データ欠損を確認 | Tester / Journal |
| 銘柄が見つからない | symbol名やサフィックス不一致 | 他社口座、別PC、VPS | Market Watch、チャート左上、サフィックスを確認 | Tester / Experts |
| 取引が発生しない | 条件未成立または取引制限 | BT結果、検証初期 | EAログ、spread、取引時間、初期設定、フィルターを確認 | Experts / Tester |
| 外部連携がテスターで動かない | Tester制約またはWebRequest設定の影響 | 通知EA、Sheets連携EA | Tester時分岐、代替ログ、WebRequest許可を確認 | Experts / Tester |
| 最適化で結果が出ない | 条件未成立、探索範囲、設定不備 | Optimization | パラメータ範囲、step、取引数、set、期間を確認 | Tester |
| バックテストが重い | ログ量、描画、外部連携、tick処理が重い可能性 | 長期BT、最適化 | ログ出力頻度、Object操作、Print量、OnTick処理を確認 | Tester / Experts |
| BTとリアルの結果が違う | 価格配信、spread、約定、外部連携、時間基準が違う可能性 | 検証後の実運用比較 | テスト条件、サーバー時間、spread、取引制限、ログbasisを確認 | Tester / Experts / Journal |
エラー別に最初に見るログ
| エラー種別 | 最初に見るログ | 追加で見る場所 | 整理する情報 |
|---|---|---|---|
| EA起動エラー | Expertsログ | チャート右上、Inputs | EA名、version、set、初期化ログ |
| 注文エラー | Expertsログ | Journalログ、取引タブ | retcode、symbol、lot、price、Magic Number |
| 外部連携エラー | Expertsログ | WebRequest設定、外部サービス側 | HTTPコード、発生時刻、送信先種別 |
| コンパイルエラー | MetaEditorのエラー欄 | 対象mq5 / mqh、include | ファイル名、行番号、エラー全文 |
| バックテストエラー | Testerログ | Experts、Journal | EA名、set、symbol、期間、spread |
| インジケーター取得エラー | Expertsログ | Data Window、インジ設定、チャート表示 | iCustom handle、CopyBuffer戻り値、buffer index、shift |
| ファイル操作エラー | Expertsログ | MQL5\Files、Common Files、Tester Files | FileOpen戻り値、ファイル名、保存先、FILE_COMMON指定 |
| チャート表示エラー | Expertsログ | Object List、チャート表示、Journal | object name、object type、subwindow、z-order、OnChartEvent |
EA利用者向けの確認ポイント
EA利用者がMQL5コードを直接確認しない場合でも、エラー調査で整理できる情報があります。
| 確認項目 | 利用者が確認できる内容 | 開発者へ伝えるとよい情報 |
|---|---|---|
| EA名・インジ名 | 設置しているファイル名と表示名 | 対象ファイルを特定するため |
| バージョン | EAログや商品名に表示される版 | 古い版・別版との混同を防ぐため |
| 発生日時 | エラーが出た日時 | Expertsログ、Journalログ、取引履歴と照合するため |
| 銘柄・時間足 | チャート左上のsymbol、M1/M5/M15など | 銘柄仕様、履歴データ、時間足条件を確認するため |
| エラー表示 | コード番号、定数名、メッセージ全文 | 原因調査の入口として使うため |
| Expertsログ | EA・インジ側の出力ログ | 直前処理、エラーコード、retcode、関数名を確認するため |
| Journalログ | MT5端末側のログ | 注文、接続、端末状態、テスター状態を確認するため |
| スクリーンショット | チャート、Experts、Journal、設定画面 | 状態を視覚的に確認するため |
MQL5開発者向けの確認ポイント
MQL5開発者は、エラーコードを出すだけでなく、どの責務で失敗したかをログで分けると調査しやすくなります。
| 責務 | 確認する内容 | 推奨ログ例 |
|---|---|---|
| signal | 売買条件・インジサイン・時間足basis | SIGNAL_CONTEXT、BAR_BASIS、COPYBUFFER_READ |
| execution | OrderSend、CTrade、retcode、request/result | ORDER_SEND、ORDER_RESULT、TRADE_RESULT |
| risk | ロット、証拠金、最大ポジション数、スプレッド | LOT_CHECK、MARGIN_CHECK、SPREAD_CHECK |
| exit | 決済、SL/TP変更、トレール、部分決済 | EXIT_CHECK、POSITION_CLOSE、SLTP_MODIFY |
| external control | WebRequest、外部API、CSV、GAS、Webhook | WEBREQUEST_RESULT、HTTP_STATUS、EXT_CONTROL |
| notification | Discord、Push通知、メール通知 | NOTIFY_SEND、NOTIFY_THROTTLE、HTTP_RESPONSE |
| ui / object | ObjectCreate、ボタン、ラベル、OnChartEvent | OBJECT_CREATE、BUTTON_CLICK、EVENT_ROUTE |
特に注文エラーでは、signalが成立したか、EA側が発注を止めたのか、OrderSendを実行したのか、取引サーバーが拒否したのかを分けて記録します。
問い合わせ前に整理する情報
| 情報 | 必要性 | 注意点 |
|---|---|---|
| EA名 / インジ名 | 対象特定 | ファイル名だけでなく表示名もあるとよい |
| バージョン | 差分確認 | 可能ならログ上のversionも確認 |
| 発生日時 | ログ追跡 | PC時刻とサーバー時刻がずれる場合がある |
| 銘柄名 | symbol差分確認 | サフィックスも含めて記録する |
| 時間足 | 再現条件 | チャート時間足とEA内設定が異なる場合がある |
| setファイル | 設定確認 | 個人情報やtokenが含まれないか確認 |
| Expertsログ | EA側エラー | エラー前後を含める |
| Journalログ | MT5端末側エラー | 注文、接続、Tester関連に有効 |
| スクリーンショット | 状態確認 | 口座番号、URL、APIキーを隠す |
| 再現手順 | 原因確認 | 何を押したか、どの設定で発生したかを順番に書く |
開発依頼前の資料整理は、次のページも参考にしてください。
送ってはいけない情報
エラー確認では、ログやスクリーンショットが重要です。ただし、以下の情報はそのまま送らないでください。
- 口座番号の全桁
- 投資家パスワード
- マスターパスワード
- Webhook URLの実値
- GAS URLの実値
- APIキー
- 認証トークン
- 個人情報
- 未加工の口座履歴画像
- 第三者の個人情報が入ったログ
- 顧客情報や販売先情報
- 実運用成績の詳細データ
ログを送る場合は、必要な箇所を残しつつ、口座番号、URL、APIキー、トークン、個人情報をマスクしてください。
MT5 / MQL5エラー確認チェック表
- □ エラーが出た場所を確認した
- □ エラーコードまたは定数名を控えた
- □ エラーメッセージ全文を控えた
- □ Expertsログを確認した
- □ Journalログを確認した
- □ MetaEditorのエラー欄を確認した
- □ 発生時刻を記録した
- □ EA名・インジ名・バージョンを記録した
- □ 銘柄名、時間足、口座種別を記録した
- □ 使用したsetファイルを保存した
- □ 直前に変更した設定を整理した
- □ スクリーンショットを保存した
- □ Webhook URLやAPIキーをマスクした
- □ 口座番号や個人情報を隠した
- □ 同じエラーが再現するか確認した
- □ GetLastError系かTRADE_RETCODE系かを分けて確認した
- □ Order / Position / Deal / Historyのどこで発生したかを確認した
次に読む技術講座
この講座とあわせて確認すると、MT5・MQL5開発、検証、不具合調査の流れを整理しやすくなります。
| 講座 | 確認できること |
|---|---|
| 技術講座一覧 | MT5・MQL5・EA開発に関する技術講座を順番に確認できます。 |
| MQL5開発入門 | MQL5開発全体の基本構造、EA・インジケーター開発の入口を確認できます。 |
| MQL5関数辞書 | 関連関数の役割を確認できます。 |
| MQL5注文・ポジション・履歴管理完全ガイド | 注文・ポジション・履歴関連の確認へ進めます。 |
| MQL5デバッグ・ログファースト開発完全ガイド | ログファーストで原因を追う方法を確認できます。 |
| MQL5 WebRequest・JSON・外部API実装完全ガイド | WebRequest・HTTPステータス系の確認へ進めます。 |
次に確認するページ
| ページ | 確認できること |
|---|---|
| EAのログを問い合わせ前に確認する方法 | Expertsログ、Journalログ、スクリーンショット、再現手順の整理方法を確認できます。 |
| MT5開発依頼前に用意する資料まとめ | 開発依頼前に整理する資料、ログ、設定ファイル、再現情報を確認できます。 |
FAQ
この辞典だけでMQL5の仕様をすべて判断できますか?
いいえ。この辞典は、MQL5のエラーコードやエラーメッセージを実務上確認しやすく整理した記事です。最終的な仕様確認は、公式リファレンス、MetaEditorのコンパイル結果、Expertsログ、Journalログ、実際の動作結果を合わせて確認してください。
公式リファレンスとこの記事は何が違いますか?
公式リファレンスは、エラーコードや定数の仕様確認に向いています。この記事では、EA開発や不具合調査で見落としやすい「出る場面」「最初に確認すること」「関連ログ」「問い合わせ前に整理する情報」を中心に補足しています。
エラーコードだけで原因を断定できますか?
断定できない場合があります。エラーコードは原因確認の入口です。実際には、発生関数、対象銘柄、時間足、入力値、Expertsログ、Journalログ、MetaEditorのエラー欄、取引サーバー応答を合わせて確認する必要があります。
EA利用者でも確認すべき項目はありますか?
あります。EA名、バージョン、発生日時、銘柄、時間足、Expertsログ、Journalログ、スクリーンショット、setファイル、エラー前後の操作を整理しておくと、原因確認が早くなります。
開発依頼前にどの情報を整理すればよいですか?
EA名、バージョン、対象銘柄、時間足、発生日時、エラーコード、エラーメッセージ、Expertsログ、Journalログ、MetaEditorエラー欄、setファイル、再現手順、スクリーンショットを整理してください。Webhook URL、APIキー、認証トークン、口座番号などは必ずマスクしてください。
ExpertsログとJournalログのどちらを確認すべきですか?
両方確認するのが基本です。ExpertsログではEAやインジケーター内部の処理、GetLastError、retcode、判定ログを確認できます。Journalログでは端末側、注文送信、接続状態、Strategy Tester、サーバー応答に関する補足情報を確認できます。
WebRequest関連エラーでは何を確認すべきですか?
WebRequest許可URL、送信先URLの形式、HTTPステータス、payload、timeout、外部サービス側の権限、VPS通信状態を確認します。ただし、Webhook URL、GAS URL、APIキー、認証トークンの実値は公開ログや問い合わせ文に含めないでください。
TRADE_RETCODE_INVALID_FILLが出た場合は何を確認すべきですか?
銘柄が対応しているfilling modeと、EA側で指定しているtype_fillingを確認します。SymbolInfoIntegerでSYMBOL_FILLING_MODEを確認し、ORDER_FILLING_FOK、ORDER_FILLING_IOC、ORDER_FILLING_RETURNのどれが使えるかを確認してください。
unknown symbol 0xFEFFとは何ですか?
UTF-8 BOMや不可視文字がソースコードに混入している時に出ることがあります。特にファイル先頭やコピペ直後に発生しやすいため、UTF-8 BOMなしで保存し直す、不可視文字を削除する、該当ファイルの先頭行を確認する、といった対応が必要です。
この記事にない項目はどのように確認すればよいですか?
まず公式リファレンス、MetaEditorのコンパイル結果、Expertsログ、Journalログ、取引タブ、履歴タブ、Strategy Testerログを確認してください。EA固有の仕様が関係する場合は、対象ファイル、バージョン、設定値、再現手順、ログを整理して確認すると原因を追いやすくなります。
開発依頼・不具合調査前の確認:エラーが出た場合は、コード番号だけで判断せず、GetLastError系かTRADE_RETCODE系か、コンパイルエラーか、WebRequest/HTTP系か、Strategy Tester関連かを先に分けてください。そのうえで、Expertsログ、Journalログ、MetaEditorエラー欄、発生時刻、EA名、銘柄、時間足、setファイル、再現手順を整理してください。
関連するMQL5技術辞典
MQL5のエラーを確認する時は、エラーコードだけでなく、どの関数・取引処理・時系列取得・ファイル操作・外部連携で発生しているかを分けて確認することが重要です。
関連するMQL5技術辞典もあわせて確認してください。
| 技術辞典 | 確認できる内容 | リンク |
|---|---|---|
| MQL5関数辞典 | EA・インジケーター開発で使う主要関数を、イベント関数、注文関数、ポジション関数、時系列取得、ファイル操作、WebRequest、標準ライブラリなどに分けて確認できます。 | MQL5関数辞典 |
| MQL5注文関数・取引構造体辞典 | OrderSend、OrderCheck、MqlTradeRequest、MqlTradeResult、TRADE_RETCODEなど、注文処理と取引結果確認に関する内容を確認できます。 | MQL5注文関数・取引構造体辞典 |
| MQL5ポジション・注文・約定・履歴用語辞典 | Order、Position、Deal、History、ticket、magic、commentなど、取引管理で混同しやすい用語を確認できます。 | MQL5ポジション・注文・約定・履歴用語辞典 |
| MQL5インジケーター関数辞典 | iCustom、CopyBuffer、SetIndexBuffer、OnCalculate、IndicatorRelease、buffer index、shiftなどを確認できます。 | MQL5インジケーター関数辞典 |
| MQL5時系列・価格取得関数辞典 | CopyRates、CopyClose、iClose、iTime、SymbolInfoDouble、TimeCurrentなど、価格・ローソク足・時刻取得に関する関数を確認できます。 | MQL5時系列・価格取得関数辞典 |
| MQL5ファイル操作関数辞典 | FileOpen、FileRead、FileWrite、FileClose、FILE_COMMON、CSV出力、ログ保存に関する内容を確認できます。 | MQL5ファイル操作関数辞典 |
| MQL5チャートオブジェクト辞典 | ObjectCreate、ObjectSetInteger、ObjectSetString、OBJ_LABEL、OBJ_BUTTON、OnChartEventなど、チャート表示やパネルUIに関する内容を確認できます。 | MQL5チャートオブジェクト辞典 |
| MQL5列挙型・定数辞典 | ENUM_TIMEFRAMES、ENUM_ORDER_TYPE、ORDER_FILLING、POSITION_TYPE、SymbolInfo系定数などを確認できます。 | MQL5列挙型・定数辞典 |
| MQL5標準ライブラリ辞典 | CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoなど、標準ライブラリの主要クラスを確認できます。 | MQL5標準ライブラリ辞典 |
確認ポイント:エラー確認では、GetLastErrorだけで原因を断定せず、関数の戻り値、TRADE_RETCODE、Expertsログ、Journalログ、対象symbol、timeframe、ticket、magic、buffer番号、HTTPステータスなどを合わせて確認してください。
まとめ
MQL5のエラー確認では、コード番号だけではなく、エラーの種類と発生場所を分けることが重要です。
GetLastError系ランタイムエラー、TRADE_RETCODE系取引リターンコード、MetaEditorコンパイルエラー、WebRequest/HTTP系エラー、Strategy Tester関連エラーは、それぞれ確認場所と原因の切り分け方が異なります。
不具合調査や開発依頼を行う場合は、Expertsログ、Journalログ、MetaEditorエラー欄、発生時刻、EA名、バージョン、銘柄、時間足、setファイル、再現手順を整理してください。APIキー、認証トークン、Webhook URL、口座番号などの機密情報は、必ずマスクして扱ってください。

