
MT4・MT5 の EA やインジケーターで出るエラーを、番号やメッセージから調べられる辞典です。取引エラー・実行時エラー・コンパイルエラーの435種類を収録し、よく出る160種類は原因と対処法をコード例つきで解説しています。
よく検索されるエラー
- MT4エラー130損切り・利確(ストップ)の価格が不正
- MT4エラー131ロット数(取引数量)が不正
- MT4エラー134証拠金が不足している
- MT4エラー138リクオート(価格の再提示)
- MT4エラー146取引スレッドが使用中(ほかのEAが注文中)
- MT4エラー4109EAの自動売買が許可されていない
- MT4エラー4106通貨ペア(シンボル)名が見つからない
- MT5エラー10030注文の執行タイプ(フィリングモード)が銘柄に対応していない
- MT5エラー10016損切り・利確(ストップ)の価格が不正
- MT5エラー4756注文リクエストの送信に失敗した
- MT5エラー4806インジケーターのデータがまだない
- MT5エラー10027MT5側で自動売買(アルゴリズム取引)が無効になっている
- 「undeclared identifier」宣言されていない名前(変数・関数)を使っている
- 「wrong parameters count」関数に渡した引数の数が合わない
- 「array out of range」配列の範囲外アクセスでプログラムが停止した
- 「zero divide」0 での割り算でプログラムが停止した
MT4 取引エラー0〜150
OrderSend()・OrderModify()・OrderClose() などの取引が失敗したとき、GetLastError() で返る番号です。エキスパートタブに「OrderSend error 130」のように表示されます。
| 番号 | 定数名・メッセージ | 意味 |
|---|---|---|
| 0 | ERR_NO_ERRORno error | エラーなし(正常終了) |
| 1 | ERR_NO_RESULTno error, trade conditions not changed | 変更内容がない(同じ値で OrderModify した) 解説 → |
| 2 | ERR_COMMON_ERRORcommon error | 一般的なエラー(原因を特定できない失敗) 解説 → |
| 3 | ERR_INVALID_TRADE_PARAMETERSinvalid trade parameters | 取引関数に渡した引数が不正 解説 → |
| 4 | ERR_SERVER_BUSYtrade server is busy | 取引サーバーが混雑している 解説 → |
| 5 | ERR_OLD_VERSIONold version of the client terminal | MT4本体のバージョンが古い(アップデートが必要) |
| 6 | ERR_NO_CONNECTIONno connection with trade server | 取引サーバーに接続していない 解説 → |
| 7 | ERR_NOT_ENOUGH_RIGHTSnot enough rights | 取引する権限がない(投資家パスワードでのログインなど) |
| 8 | ERR_TOO_FREQUENT_REQUESTStoo frequent requests | 注文の送信間隔が短すぎる 解説 → |
| 9 | ERR_MALFUNCTIONAL_TRADEmalfunctional trade operation (never returned error) | 取引処理の異常(通常は返らない) |
| 64 | ERR_ACCOUNT_DISABLEDaccount disabled | 口座が無効化されている 解説 → |
| 65 | ERR_INVALID_ACCOUNTinvalid account | 口座番号が無効 |
| 128 | ERR_TRADE_TIMEOUTtrade timeout | 注文処理がタイムアウトした 解説 → |
| 129 | ERR_INVALID_PRICEinvalid price | 注文価格が不正 解説 → |
| 130 | ERR_INVALID_STOPSinvalid stops | 損切り・利確(ストップ)の価格が不正 解説 → |
| 131 | ERR_INVALID_TRADE_VOLUMEinvalid trade volume | ロット数(取引数量)が不正 解説 → |
| 132 | ERR_MARKET_CLOSEDmarket is closed | 市場が閉まっている 解説 → |
| 133 | ERR_TRADE_DISABLEDtrade is disabled | この銘柄・口座では取引が禁止されている 解説 → |
| 134 | ERR_NOT_ENOUGH_MONEYnot enough money | 証拠金が不足している 解説 → |
| 135 | ERR_PRICE_CHANGEDprice changed | 価格が変わった 解説 → |
| 136 | ERR_OFF_QUOTESoff quotes | 有効な価格(レート)がない 解説 → |
| 137 | ERR_BROKER_BUSYbroker is busy (never returned error) | ブローカーが混雑している |
| 138 | ERR_REQUOTErequote | リクオート(価格の再提示) 解説 → |
| 139 | ERR_ORDER_LOCKEDorder is locked | 注文が処理中でロックされている |
| 140 | ERR_LONG_POSITIONS_ONLY_ALLOWEDlong positions only allowed | 買いポジションしか許可されていない |
| 141 | ERR_TOO_MANY_REQUESTStoo many requests | リクエスト数が多すぎる 解説 → |
| 145 | ERR_TRADE_MODIFY_DENIEDmodification denied because order is too close to market | 現在値に近すぎて変更が拒否された(フリーズレベル) 解説 → |
| 146 | ERR_TRADE_CONTEXT_BUSYtrade context is busy | 取引スレッドが使用中(ほかのEAが注文中) 解説 → |
| 147 | ERR_TRADE_EXPIRATION_DENIEDexpirations are denied by broker | 待機注文の有効期限の指定がブローカーで禁止されている 解説 → |
| 148 | ERR_TRADE_TOO_MANY_ORDERSamount of open and pending orders has reached the limit | 保有ポジションと待機注文の数が上限に達した 解説 → |
| 149 | ERR_TRADE_HEDGE_PROHIBITEDhedging is prohibited | 両建てが禁止されている 解説 → |
| 150 | ERR_TRADE_PROHIBITED_BY_FIFOprohibited by FIFO rules | FIFOルールで禁止されている(古いポジションから決済が必要) 解説 → |
MT4 実行時エラー4000〜5029
取引以外の関数(配列・ファイル・オブジェクト・インジケーターなど)が失敗したときに GetLastError() で返る番号です。
| 番号 | 定数名・メッセージ | 意味 |
|---|---|---|
| 4000 | ERR_NO_MQLERRORno error (never generated code) | エラーなし |
| 4001 | ERR_WRONG_FUNCTION_POINTERwrong function pointer | 関数ポインタが不正 |
| 4002 | ERR_ARRAY_INDEX_OUT_OF_RANGEarray index is out of range | 配列の範囲外にアクセスした 解説 → |
| 4003 | ERR_NO_MEMORY_FOR_CALL_STACKno memory for function call stack | 関数呼び出しスタックのメモリ不足 |
| 4004 | ERR_RECURSIVE_STACK_OVERFLOWrecursive stack overflow | 再帰呼び出しでスタックがあふれた |
| 4005 | ERR_NOT_ENOUGH_STACK_FOR_PARAMnot enough stack for parameter | 引数を渡すためのスタックが足りない |
| 4006 | ERR_NO_MEMORY_FOR_PARAM_STRINGno memory for parameter string | 文字列引数のメモリ不足 |
| 4007 | ERR_NO_MEMORY_FOR_TEMP_STRINGno memory for temp string | 一時文字列のメモリ不足 |
| 4008 | ERR_NOT_INITIALIZED_STRINGnon-initialized string | 初期化されていない文字列を使った |
| 4009 | ERR_NOT_INITIALIZED_ARRAYSTRINGnon-initialized string in array | 配列内の初期化されていない文字列を使った |
| 4010 | ERR_NO_MEMORY_FOR_ARRAYSTRINGno memory for array' string | 文字列配列のメモリ不足 |
| 4011 | ERR_TOO_LONG_STRINGtoo long string | 文字列が長すぎる |
| 4012 | ERR_REMAINDER_FROM_ZERO_DIVIDEremainder from zero divide | 0で割った余り(%)を計算した |
| 4013 | ERR_ZERO_DIVIDEzero divide | 0で割り算した 解説 → |
| 4014 | ERR_UNKNOWN_COMMANDunknown command | 不明なコマンド |
| 4015 | ERR_WRONG_JUMPwrong jump (never generated error) | 不正なジャンプ |
| 4016 | ERR_NOT_INITIALIZED_ARRAYnon-initialized array | 初期化されていない配列を使った |
| 4017 | ERR_DLL_CALLS_NOT_ALLOWEDdll calls are not allowed | DLLの使用が許可されていない 解説 → |
| 4018 | ERR_CANNOT_LOAD_LIBRARYcannot load library | ライブラリ(DLL・ex4)を読み込めない 解説 → |
| 4019 | ERR_CANNOT_CALL_FUNCTIONcannot call function | ライブラリの関数を呼び出せない |
| 4020 | ERR_EXTERNAL_CALLS_NOT_ALLOWEDexpert function calls are not allowed | 外部のEX4ライブラリ呼び出しが許可されていない |
| 4021 | ERR_NO_MEMORY_FOR_RETURNED_STRnot enough memory for temp string returned from function | 戻り値の文字列のメモリ不足 |
| 4022 | ERR_SYSTEM_BUSYsystem is busy (never generated error) | システムが混雑している |
| 4023 | ERR_DLLFUNC_CRITICALERRORdll-function call critical error | DLL関数の呼び出しで致命的なエラー |
| 4024 | ERR_INTERNAL_ERRORinternal error | 内部エラー |
| 4025 | ERR_OUT_OF_MEMORYout of memory | メモリ不足 |
| 4026 | ERR_INVALID_POINTERinvalid pointer | ポインタが不正 |
| 4027 | ERR_FORMAT_TOO_MANY_FORMATTERStoo many formatters in the format function | 書式指定子が多すぎる(StringFormat など) |
| 4028 | ERR_FORMAT_TOO_MANY_PARAMETERSparameters count is more than formatters count | 引数の数が書式指定子より多い |
| 4029 | ERR_ARRAY_INVALIDinvalid array | 配列が不正 |
| 4030 | ERR_CHART_NOREPLYno reply from chart | チャートから応答がない |
| 4050 | ERR_INVALID_FUNCTION_PARAMSCNTinvalid function parameters count | 関数の引数の数が不正 |
| 4051 | ERR_INVALID_FUNCTION_PARAMVALUEinvalid function parameter value | 関数に渡した引数の値が不正 解説 → |
| 4052 | ERR_STRING_FUNCTION_INTERNALstring function internal error | 文字列関数の内部エラー |
| 4053 | ERR_SOME_ARRAY_ERRORsome array error | 配列関連のエラー |
| 4054 | ERR_INCORRECT_SERIESARRAY_USINGincorrect series array usage | 時系列配列の使い方が不正 解説 → |
| 4055 | ERR_CUSTOM_INDICATOR_ERRORcustom indicator error | カスタムインジケーターのエラー |
| 4056 | ERR_INCOMPATIBLE_ARRAYSarrays are incompatible | 配列の型やサイズが合わない |
| 4057 | ERR_GLOBAL_VARIABLES_PROCESSINGglobal variables processing error | グローバル変数の処理エラー |
| 4058 | ERR_GLOBAL_VARIABLE_NOT_FOUNDglobal variable not found | ターミナルのグローバル変数が見つからない 解説 → |
| 4059 | ERR_FUNC_NOT_ALLOWED_IN_TESTINGfunction is not allowed in testing mode | バックテストでは使えない関数を呼んだ 解説 → |
| 4060 | ERR_FUNCTION_NOT_CONFIRMEDfunction is not confirmed | 関数の使用が許可されていない(WebRequest の URL 未登録など) 解説 → |
| 4061 | ERR_SEND_MAIL_ERRORsend mail error | メールを送信できなかった 解説 → |
| 4062 | ERR_STRING_PARAMETER_EXPECTEDstring parameter expected | 文字列型の引数が必要 |
| 4063 | ERR_INTEGER_PARAMETER_EXPECTEDinteger parameter expected | 整数型の引数が必要 |
| 4064 | ERR_DOUBLE_PARAMETER_EXPECTEDdouble parameter expected | 実数型の引数が必要 |
| 4065 | ERR_ARRAY_AS_PARAMETER_EXPECTEDarray as parameter expected | 配列の引数が必要 |
| 4066 | ERR_HISTORY_WILL_UPDATEDrequested history data is in update state | 要求した過去データを更新中 解説 → |
| 4067 | ERR_TRADE_ERRORinternal trade error | 取引関数の内部エラー |
| 4068 | ERR_RESOURCE_NOT_FOUNDresource not found | リソースが見つからない |
| 4069 | ERR_RESOURCE_NOT_SUPPORTEDresource not supported | リソースの形式に対応していない |
| 4070 | ERR_RESOURCE_DUPLICATEDduplicate resource | リソースが重複している |
| 4071 | ERR_INDICATOR_CANNOT_INITcannot initialize custom indicator | カスタムインジケーターを初期化できない 解説 → |
| 4072 | ERR_INDICATOR_CANNOT_LOADcannot load custom indicator | カスタムインジケーターを読み込めない 解説 → |
| 4073 | ERR_NO_HISTORY_DATAno history data | 過去データ(ヒストリー)がない 解説 → |
| 4074 | ERR_NO_MEMORY_FOR_HISTORYnot enough memory for history data | 過去データ用のメモリ不足 |
| 4075 | ERR_NO_MEMORY_FOR_INDICATORnot enough memory for indicator | インジケーター計算用のメモリ不足 |
| 4099 | ERR_END_OF_FILEend of file | ファイルの終わりに達した 解説 → |
| 4100 | ERR_SOME_FILE_ERRORsome file error | ファイル関連のエラー |
| 4101 | ERR_WRONG_FILE_NAMEwrong file name | ファイル名が不正 |
| 4102 | ERR_TOO_MANY_OPENED_FILEStoo many opened files | 開いているファイルが多すぎる |
| 4103 | ERR_CANNOT_OPEN_FILEcannot open file | ファイルを開けない 解説 → |
| 4104 | ERR_INCOMPATIBLE_FILEACCESSincompatible access to a file | ファイルのアクセスモードが合わない |
| 4105 | ERR_NO_ORDER_SELECTEDno order selected | 注文(ポジション)が選択されていない 解説 → |
| 4106 | ERR_UNKNOWN_SYMBOLunknown symbol | 通貨ペア(シンボル)名が見つからない 解説 → |
| 4107 | ERR_INVALID_PRICE_PARAMinvalid price parameter for trade function | 取引関数の価格の引数が不正 解説 → |
| 4108 | ERR_INVALID_TICKETinvalid ticket | チケット番号が不正 解説 → |
| 4109 | ERR_TRADE_NOT_ALLOWEDtrade is not allowed in the expert properties | EAの自動売買が許可されていない 解説 → |
| 4110 | ERR_LONGS_NOT_ALLOWEDlongs are not allowed in the expert properties | EAの設定で買い注文が許可されていない 解説 → |
| 4111 | ERR_SHORTS_NOT_ALLOWEDshorts are not allowed in the expert properties | EAの設定で売り注文が許可されていない 解説 → |
| 4200 | ERR_OBJECT_ALREADY_EXISTSobject already exists | 同じ名前のオブジェクトがすでにある 解説 → |
| 4201 | ERR_UNKNOWN_OBJECT_PROPERTYunknown object property | 存在しないオブジェクトプロパティを指定した |
| 4202 | ERR_OBJECT_DOES_NOT_EXISTobject does not exist | オブジェクトが存在しない 解説 → |
| 4203 | ERR_UNKNOWN_OBJECT_TYPEunknown object type | 存在しないオブジェクトの種類を指定した |
| 4204 | ERR_NO_OBJECT_NAMEno object name | オブジェクト名が空 |
| 4205 | ERR_OBJECT_COORDINATES_ERRORobject coordinates error | オブジェクトの座標が不正 |
| 4206 | ERR_NO_SPECIFIED_SUBWINDOWno specified subwindow | 指定したサブウィンドウがない |
| 4207 | ERR_SOME_OBJECT_ERRORgraphical object error | オブジェクト関連のエラー |
| 4210 | ERR_CHART_PROP_INVALIDunknown chart property | 存在しないチャートプロパティを指定した |
| 4211 | ERR_CHART_NOT_FOUNDchart not found | チャートが見つからない |
| 4212 | ERR_CHARTWINDOW_NOT_FOUNDchart subwindow not found | チャートのサブウィンドウが見つからない |
| 4213 | ERR_CHARTINDICATOR_NOT_FOUNDchart indicator not found | チャート上のインジケーターが見つからない |
| 4220 | ERR_SYMBOL_SELECTsymbol select error | 通貨ペアを気配値表示に追加できない |
| 4250 | ERR_NOTIFICATION_ERRORnotification error | プッシュ通知を送信できなかった 解説 → |
| 4251 | ERR_NOTIFICATION_PARAMETERnotification parameter error | 通知の引数が不正(空文字・長すぎる文字列) |
| 4252 | ERR_NOTIFICATION_SETTINGSnotifications disabled | プッシュ通知が無効(MetaQuotes ID 未設定) |
| 4253 | ERR_NOTIFICATION_TOO_FREQUENTnotification send too frequent | プッシュ通知の送信回数が多すぎる |
| 4260 | ERR_FTP_NOSERVERftp server is not specified | FTPサーバーが設定されていない |
| 4261 | ERR_FTP_NOLOGINftp login is not specified | FTPのログインIDが設定されていない |
| 4262 | ERR_FTP_CONNECT_FAILEDftp connect failed | FTPサーバーに接続できない |
| 4263 | ERR_FTP_CLOSEDftp connect closed | FTP接続が切断された |
| 4264 | ERR_FTP_CHANGEDIRftp change path error | FTPサーバーのフォルダを移動できない |
| 4265 | ERR_FTP_FILE_ERRORftp file error | FTPで送るファイルが見つからない |
| 4266 | ERR_FTP_ERRORftp error | FTPのエラー |
| 5001 | ERR_FILE_TOO_MANY_OPENEDtoo many opened files | 同時に開いているファイルが多すぎる(FileClose 忘れ) |
| 5002 | ERR_FILE_WRONG_FILENAMEwrong file name | ファイル名が不正 |
| 5003 | ERR_FILE_TOO_LONG_FILENAMEtoo long file name | ファイル名が長すぎる |
| 5004 | ERR_FILE_CANNOT_OPENcannot open file | ファイルを開けない 解説 → |
| 5005 | ERR_FILE_BUFFER_ALLOCATION_ERRORtext file buffer allocation error | テキストファイル用バッファの確保に失敗 |
| 5006 | ERR_FILE_CANNOT_DELETEcannot delete file | ファイルを削除できない |
| 5007 | ERR_FILE_INVALID_HANDLEinvalid file handle (file closed or was not opened) | ファイルハンドルが無効(閉じた・開いていない) |
| 5008 | ERR_FILE_WRONG_HANDLEwrong file handle (handle index is out of handle table) | ファイルハンドルが不正 |
| 5009 | ERR_FILE_NOT_TOWRITEfile must be opened with FILE_WRITE flag | FILE_WRITE で開いていないファイルに書き込んだ |
| 5010 | ERR_FILE_NOT_TOREADfile must be opened with FILE_READ flag | FILE_READ で開いていないファイルを読み込んだ |
| 5011 | ERR_FILE_NOT_BINfile must be opened with FILE_BIN flag | FILE_BIN で開く必要がある |
| 5012 | ERR_FILE_NOT_TXTfile must be opened with FILE_TXT flag | FILE_TXT で開く必要がある |
| 5013 | ERR_FILE_NOT_TXTORCSVfile must be opened with FILE_TXT or FILE_CSV flag | FILE_TXT か FILE_CSV で開く必要がある |
| 5014 | ERR_FILE_NOT_CSVfile must be opened with FILE_CSV flag | FILE_CSV で開く必要がある |
| 5015 | ERR_FILE_READ_ERRORfile read error | ファイルの読み込みエラー |
| 5016 | ERR_FILE_WRITE_ERRORfile write error | ファイルの書き込みエラー |
| 5017 | ERR_FILE_BIN_STRINGSIZEstring size must be specified for binary file | バイナリファイルでは文字列の長さの指定が必要 |
| 5018 | ERR_FILE_INCOMPATIBLEincompatible file (for string arrays-TXT, for others-BIN) | ファイルの形式が合わない |
| 5019 | ERR_FILE_IS_DIRECTORYfile is directory, not file | ファイルではなくフォルダを指定した |
| 5020 | ERR_FILE_NOT_EXISTfile does not exist | ファイルが存在しない |
| 5021 | ERR_FILE_CANNOT_REWRITEfile cannot be rewritten | ファイルを上書きできない |
| 5022 | ERR_FILE_WRONG_DIRECTORYNAMEwrong directory name | フォルダ名が不正 |
| 5023 | ERR_FILE_DIRECTORY_NOT_EXISTdirectory does not exist | フォルダが存在しない |
| 5024 | ERR_FILE_NOT_DIRECTORYspecified file is not directory | 指定したものがフォルダではない |
| 5025 | ERR_FILE_CANNOT_DELETE_DIRECTORYcannot delete directory | フォルダを削除できない |
| 5026 | ERR_FILE_CANNOT_CLEAN_DIRECTORYcannot clean directory | フォルダの中身を削除できない |
| 5027 | ERR_FILE_ARRAYRESIZE_ERRORarray resize error | 配列のサイズ変更に失敗 |
| 5028 | ERR_FILE_STRINGRESIZE_ERRORstring resize error | 文字列のサイズ変更に失敗 |
| 5029 | ERR_FILE_STRUCT_WITH_OBJECTSstructure contains strings or dynamic arrays | 構造体に文字列や動的配列が含まれている |
MT5 取引サーバーのリターンコード10004〜10046
OrderSend() の結果 MqlTradeResult.retcode(CTrade なら ResultRetcode())に入る番号です。10008・10009 は成功、それ以外は失敗の理由を表します。
| 番号 | 定数名・メッセージ | 意味 |
|---|---|---|
| 10004 | TRADE_RETCODE_REQUOTErequote | リクオート(価格の再提示) 解説 → |
| 10006 | TRADE_RETCODE_REJECTrejected | 注文が拒否された 解説 → |
| 10007 | TRADE_RETCODE_CANCELcanceled | トレーダーによって注文がキャンセルされた |
| 10008 | TRADE_RETCODE_PLACEDplaced | 注文が受け付けられた(成功) 解説 → |
| 10009 | TRADE_RETCODE_DONEdone | 注文が完了した(成功) 解説 → |
| 10010 | TRADE_RETCODE_DONE_PARTIALdone partially | 注文の一部だけが約定した |
| 10011 | TRADE_RETCODE_ERRORcommon error | 注文処理のエラー(原因不明) 解説 → |
| 10012 | TRADE_RETCODE_TIMEOUTtimeout | 注文処理がタイムアウトした(約定していないか必ず確認) |
| 10013 | TRADE_RETCODE_INVALIDinvalid request | 注文リクエストの内容が不正 解説 → |
| 10014 | TRADE_RETCODE_INVALID_VOLUMEinvalid volume | ロット数(取引数量)が不正 解説 → |
| 10015 | TRADE_RETCODE_INVALID_PRICEinvalid price | 注文価格が不正 解説 → |
| 10016 | TRADE_RETCODE_INVALID_STOPSinvalid stops | 損切り・利確(ストップ)の価格が不正 解説 → |
| 10017 | TRADE_RETCODE_TRADE_DISABLEDtrade disabled | 取引が無効になっている 解説 → |
| 10018 | TRADE_RETCODE_MARKET_CLOSEDmarket closed | 市場が閉まっている 解説 → |
| 10019 | TRADE_RETCODE_NO_MONEYnot enough money | 証拠金が不足している 解説 → |
| 10020 | TRADE_RETCODE_PRICE_CHANGEDprice changed | 価格が変わった |
| 10021 | TRADE_RETCODE_PRICE_OFFoff quotes | 有効な価格(レート)がない 解説 → |
| 10022 | TRADE_RETCODE_INVALID_EXPIRATIONinvalid expiration | 待機注文の有効期限が不正 |
| 10023 | TRADE_RETCODE_ORDER_CHANGEDorder changed | 注文の状態が変わった |
| 10024 | TRADE_RETCODE_TOO_MANY_REQUESTStoo many requests | リクエストが多すぎる 解説 → |
| 10025 | TRADE_RETCODE_NO_CHANGESno changes | 変更内容がない 解説 → |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_ATauto trading disabled by server | サーバー側で自動売買が無効にされている 解説 → |
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_ATauto trading disabled by client | MT5側で自動売買(アルゴリズム取引)が無効になっている 解説 → |
| 10028 | TRADE_RETCODE_LOCKEDlocked | 注文が処理中でロックされている |
| 10029 | TRADE_RETCODE_FROZENfrozen | 注文・ポジションが凍結されている(フリーズレベル) 解説 → |
| 10030 | TRADE_RETCODE_INVALID_FILLinvalid fill | 注文の執行タイプ(フィリングモード)が銘柄に対応していない 解説 → |
| 10031 | TRADE_RETCODE_CONNECTIONno connection | 取引サーバーに接続していない 解説 → |
| 10032 | TRADE_RETCODE_ONLY_REALonly real | リアル口座でしか使えない操作 |
| 10033 | TRADE_RETCODE_LIMIT_ORDERSlimit orders | 待機注文の数が上限に達した 解説 → |
| 10034 | TRADE_RETCODE_LIMIT_VOLUMElimit volume | その銘柄で持てる数量の上限に達した 解説 → |
| 10035 | TRADE_RETCODE_INVALID_ORDERinvalid order | 注文の種類が不正・禁止されている |
| 10036 | TRADE_RETCODE_POSITION_CLOSEDposition closed | 指定したポジションはすでに決済されている 解説 → |
| 10038 | TRADE_RETCODE_INVALID_CLOSE_VOLUME | 決済する数量がポジションの数量を超えている 解説 → |
| 10039 | TRADE_RETCODE_CLOSE_ORDER_EXISTclose order already exists | このポジションの決済注文がすでにある |
| 10040 | TRADE_RETCODE_LIMIT_POSITIONSlimit positions | 保有できるポジション数の上限に達した 解説 → |
| 10041 | TRADE_RETCODE_REJECT_CANCEL | 待機注文の発動が拒否され、注文が取り消された |
| 10042 | TRADE_RETCODE_LONG_ONLY | この銘柄は買いのみ許可されている |
| 10043 | TRADE_RETCODE_SHORT_ONLY | この銘柄は売りのみ許可されている |
| 10044 | TRADE_RETCODE_CLOSE_ONLY | この銘柄は決済のみ許可されている 解説 → |
| 10045 | TRADE_RETCODE_FIFO_CLOSE | FIFOルールにより古いポジションから決済する必要がある 解説 → |
| 10046 | TRADE_RETCODE_HEDGE_PROHIBITED | 両建てが禁止されている 解説 → |
MT5 実行時エラー4001〜
MQL5 の関数が失敗したときに GetLastError() で返る番号です。注文の失敗は 4756 になり、詳しい理由はリターンコード(10004〜)で確認します。
| 番号 | 定数名・メッセージ | 意味 |
|---|---|---|
| 0 | ERR_SUCCESS | エラーなし(正常終了) |
| 4001 | ERR_INTERNAL_ERROR | 予期しない内部エラー |
| 4002 | ERR_WRONG_INTERNAL_PARAMETER | 内部関数の引数が不正 |
| 4003 | ERR_INVALID_PARAMETER | 関数に渡した引数が不正 解説 → |
| 4004 | ERR_NOT_ENOUGH_MEMORY | メモリ不足 |
| 4005 | ERR_STRUCT_WITHOBJECTS_ORCLASS | 構造体に文字列・動的配列・クラスが含まれている |
| 4006 | ERR_INVALID_ARRAY | 配列の型・サイズが不正 解説 → |
| 4007 | ERR_ARRAY_RESIZE_ERROR | 配列のサイズを変更できない 解説 → |
| 4008 | ERR_STRING_RESIZE_ERROR | 文字列のサイズを変更できない |
| 4009 | ERR_NOTINITIALIZED_STRING | 初期化されていない文字列 |
| 4010 | ERR_INVALID_DATETIME | 日時の値が不正 |
| 4011 | ERR_ARRAY_BAD_SIZE | 配列の要素数が上限(2GB)を超えた |
| 4012 | ERR_INVALID_POINTER | ポインタが不正 |
| 4013 | ERR_INVALID_POINTER_TYPE | ポインタの型が不正 |
| 4014 | ERR_FUNCTION_NOT_ALLOWED | この場面では使えない関数を呼んだ 解説 → |
| 4015 | ERR_RESOURCE_NAME_DUPLICATED | リソース名が重複している |
| 4016 | ERR_RESOURCE_NOT_FOUND | リソースが見つからない |
| 4017 | ERR_RESOURCE_UNSUPPORTED_TYPE | リソースの形式に対応していない |
| 4018 | ERR_RESOURCE_NAME_IS_TOO_LONG | リソース名が長すぎる |
| 4019 | ERR_MATH_OVERFLOW | 数学関数でオーバーフローした |
| 4020 | ERR_SLEEP_ERROR | Sleep() の途中でテストが終了した |
| 4022 | ERR_PROGRAM_STOPPED | プログラムが停止された |
| 4101 | ERR_CHART_WRONG_ID | チャートIDが不正 |
| 4102 | ERR_CHART_NO_REPLY | チャートが応答しない |
| 4103 | ERR_CHART_NOT_FOUND | チャートが見つからない |
| 4104 | ERR_CHART_NO_EXPERT | チャートにイベントを処理するEAがない |
| 4105 | ERR_CHART_CANNOT_OPEN | チャートを開けない |
| 4106 | ERR_CHART_CANNOT_CHANGE | チャートの銘柄・時間足を変更できない |
| 4107 | ERR_CHART_WRONG_PARAMETER | チャート関数の引数が不正 |
| 4108 | ERR_CHART_CANNOT_CREATE_TIMER | タイマーを作成できない |
| 4109 | ERR_CHART_WRONG_PROPERTY | チャートのプロパティ指定が不正 |
| 4110 | ERR_CHART_SCREENSHOT_FAILED | スクリーンショットを作成できない |
| 4111 | ERR_CHART_NAVIGATE_FAILED | チャートの移動に失敗した |
| 4112 | ERR_CHART_TEMPLATE_FAILED | テンプレートを適用できない |
| 4113 | ERR_CHART_WINDOW_NOT_FOUND | 指定したサブウィンドウが見つからない |
| 4114 | ERR_CHART_INDICATOR_CANNOT_ADD | インジケーターをチャートに追加できない |
| 4115 | ERR_CHART_INDICATOR_CANNOT_DEL | インジケーターをチャートから削除できない |
| 4116 | ERR_CHART_INDICATOR_NOT_FOUND | チャート上にインジケーターが見つからない |
| 4201 | ERR_OBJECT_ERROR | オブジェクトの操作に失敗した 解説 → |
| 4202 | ERR_OBJECT_NOT_FOUND | オブジェクトが見つからない 解説 → |
| 4203 | ERR_OBJECT_WRONG_PROPERTY | オブジェクトのプロパティ指定が不正 |
| 4204 | ERR_OBJECT_GETDATE_FAILED | 指定した値に対応する日時を取得できない |
| 4205 | ERR_OBJECT_GETVALUE_FAILED | 指定した日時に対応する値を取得できない |
| 4301 | ERR_MARKET_UNKNOWN_SYMBOL | 銘柄(シンボル)名が見つからない 解説 → |
| 4302 | ERR_MARKET_NOT_SELECTED | 銘柄が気配値表示に追加されていない 解説 → |
| 4303 | ERR_MARKET_WRONG_PROPERTY | 銘柄プロパティの指定が不正 |
| 4304 | ERR_MARKET_LASTTIME_UNKNOWN | 最終ティックの時刻が不明(まだティックがない) |
| 4305 | ERR_MARKET_SELECT_ERROR | 気配値表示への銘柄の追加・削除に失敗した |
| 4401 | ERR_HISTORY_NOT_FOUND | 要求した過去データ(ヒストリー)が見つからない 解説 → |
| 4402 | ERR_HISTORY_WRONG_PROPERTY | ヒストリーのプロパティ指定が不正 |
| 4403 | ERR_HISTORY_TIMEOUT | ヒストリーの取得がタイムアウトした |
| 4404 | ERR_HISTORY_BARS_LIMIT | 要求したバー数が「チャートの最大バー数」の設定を超えている |
| 4405 | ERR_HISTORY_LOAD_ERRORS | ヒストリーの読み込み中にエラーが発生した |
| 4407 | ERR_HISTORY_SMALL_BUFFER | 受け取り用の配列が小さすぎる |
| 4501 | ERR_GLOBALVARIABLE_NOT_FOUND | ターミナルのグローバル変数が見つからない 解説 → |
| 4502 | ERR_GLOBALVARIABLE_EXISTS | 同じ名前のグローバル変数がすでにある |
| 4503 | ERR_GLOBALVARIABLE_NOT_MODIFIED | グローバル変数が変更されていない |
| 4504 | ERR_GLOBALVARIABLE_CANNOTREAD | グローバル変数のファイルを読み込めない |
| 4505 | ERR_GLOBALVARIABLE_CANNOTWRITE | グローバル変数のファイルに書き込めない |
| 4515 | ERR_NOTIFICATION_SEND_FAILED | プッシュ通知を送信できなかった |
| 4516 | ERR_NOTIFICATION_WRONG_PARAMETER | 通知の引数が不正(空文字・長すぎる) |
| 4517 | ERR_NOTIFICATION_WRONG_SETTINGS | 通知の設定が不正(MetaQuotes ID 未設定) |
| 4518 | ERR_NOTIFICATION_TOO_FREQUENT | 通知の送信回数が多すぎる |
| 4519 | ERR_FTP_NOSERVER | FTPサーバーが設定されていない |
| 4520 | ERR_FTP_NOLOGIN | FTPのログインIDが設定されていない |
| 4521 | ERR_FTP_FILE_ERROR | FTPで送るファイルが見つからない |
| 4522 | ERR_FTP_CONNECT_FAILED | FTPサーバーに接続できない |
| 4523 | ERR_FTP_CHANGEDIR | FTPサーバーのフォルダが見つからない |
| 4601 | ERR_BUFFERS_NO_MEMORY | インジケーターバッファ用のメモリが足りない |
| 4602 | ERR_BUFFERS_WRONG_INDEX | インジケーターバッファの番号が不正 |
| 4603 | ERR_CUSTOM_WRONG_PROPERTY | カスタムインジケーターのプロパティ指定が不正 |
| 4701 | ERR_ACCOUNT_WRONG_PROPERTY | 口座プロパティの指定が不正 |
| 4751 | ERR_TRADE_WRONG_PROPERTY | 取引プロパティの指定が不正 |
| 4752 | ERR_TRADE_DISABLED | EAの取引が禁止されている 解説 → |
| 4753 | ERR_TRADE_POSITION_NOT_FOUND | ポジションが見つからない 解説 → |
| 4754 | ERR_TRADE_ORDER_NOT_FOUND | 注文(待機注文)が見つからない |
| 4755 | ERR_TRADE_DEAL_NOT_FOUND | 約定(ディール)が見つからない(HistorySelect 忘れなど) |
| 4756 | ERR_TRADE_SEND_FAILED | 注文リクエストの送信に失敗した 解説 → |
| 4758 | ERR_TRADE_CALC_FAILED | 証拠金や損益の計算に失敗した |
| 4801 | ERR_INDICATOR_UNKNOWN_SYMBOL | インジケーターに指定した銘柄が見つからない |
| 4802 | ERR_INDICATOR_CANNOT_CREATE | インジケーターを作成できない(ハンドルを取得できない) 解説 → |
| 4803 | ERR_INDICATOR_NO_MEMORY | インジケーターを追加するメモリが足りない |
| 4804 | ERR_INDICATOR_CANNOT_APPLY | インジケーターを別のインジケーターに適用できない |
| 4805 | ERR_INDICATOR_CANNOT_ADD | インジケーターを追加できない |
| 4806 | ERR_INDICATOR_DATA_NOT_FOUND | インジケーターのデータがまだない 解説 → |
| 4807 | ERR_INDICATOR_WRONG_HANDLE | インジケーターのハンドルが不正 解説 → |
| 4808 | ERR_INDICATOR_WRONG_PARAMETERS | インジケーターのパラメータの数が不正 |
| 4809 | ERR_INDICATOR_PARAMETERS_MISSING | インジケーターのパラメータがない |
| 4810 | ERR_INDICATOR_CUSTOM_NAME | カスタムインジケーター名が最初のパラメータになっていない |
| 4811 | ERR_INDICATOR_PARAMETER_TYPE | インジケーターのパラメータの型が不正 |
| 4812 | ERR_INDICATOR_WRONG_INDEX | インジケーターバッファの番号が不正(バッファ数を超えている) |
| 4901 | ERR_BOOKS_CANNOT_ADD | 板情報(DOM)を追加できない |
| 4902 | ERR_BOOKS_CANNOT_DELETE | 板情報(DOM)を削除できない |
| 4903 | ERR_BOOKS_CANNOT_GET | 板情報(DOM)を取得できない |
| 4904 | ERR_BOOKS_CANNOT_SUBSCRIBE | 板情報(DOM)の購読に失敗した |
| 5001 | ERR_TOO_MANY_FILES | 同時に開いているファイルが多すぎる(FileClose 忘れ) |
| 5002 | ERR_WRONG_FILENAME | ファイル名が不正 |
| 5003 | ERR_TOO_LONG_FILENAME | ファイル名が長すぎる |
| 5004 | ERR_CANNOT_OPEN_FILE | ファイルを開けない 解説 → |
| 5005 | ERR_FILE_CACHEBUFFER_ERROR | ファイル読み込み用のメモリが足りない |
| 5006 | ERR_CANNOT_DELETE_FILE | ファイルを削除できない |
| 5007 | ERR_INVALID_FILEHANDLE | ファイルハンドルが無効(閉じた・開いていない) |
| 5008 | ERR_WRONG_FILEHANDLE | ファイルハンドルが不正 |
| 5009 | ERR_FILE_NOTTOWRITE | FILE_WRITE で開いていないファイルに書き込んだ |
| 5010 | ERR_FILE_NOTTOREAD | FILE_READ で開いていないファイルを読み込んだ |
| 5011 | ERR_FILE_NOTBIN | FILE_BIN で開く必要がある |
| 5012 | ERR_FILE_NOTTXT | FILE_TXT で開く必要がある |
| 5013 | ERR_FILE_NOTTXTORCSV | FILE_TXT か FILE_CSV で開く必要がある |
| 5014 | ERR_FILE_NOTCSV | FILE_CSV で開く必要がある |
| 5015 | ERR_FILE_READERROR | ファイルの読み込みエラー |
| 5016 | ERR_FILE_BINSTRINGSIZE | バイナリファイルでは文字列の長さの指定が必要 |
| 5017 | ERR_INCOMPATIBLE_FILE | ファイルの形式が合わない |
| 5018 | ERR_FILE_IS_DIRECTORY | ファイルではなくフォルダを指定した |
| 5019 | ERR_FILE_NOT_EXIST | ファイルが存在しない |
| 5020 | ERR_FILE_CANNOT_REWRITE | ファイルを上書きできない |
| 5021 | ERR_WRONG_DIRECTORYNAME | フォルダ名が不正 |
| 5022 | ERR_DIRECTORY_NOT_EXIST | フォルダが存在しない |
| 5023 | ERR_FILE_ISNOT_DIRECTORY | 指定したものがフォルダではない |
| 5024 | ERR_CANNOT_DELETE_DIRECTORY | フォルダを削除できない |
| 5025 | ERR_CANNOT_CLEAN_DIRECTORY | フォルダの中身を削除できない |
| 5026 | ERR_FILE_WRITEERROR | ファイルの書き込みエラー |
| 5027 | ERR_FILE_ENDOFFILE | ファイルの終わりに達した |
| 5030 | ERR_NO_STRING_DATE | 文字列に日付がない |
| 5031 | ERR_WRONG_STRING_DATE | 文字列の日付が不正 |
| 5032 | ERR_WRONG_STRING_TIME | 文字列の時刻が不正 |
| 5033 | ERR_STRING_TIME_ERROR | 文字列を日時に変換できない |
| 5034 | ERR_STRING_OUT_OF_MEMORY | 文字列用のメモリが足りない |
| 5035 | ERR_STRING_SMALL_LEN | 文字列の長さが足りない |
| 5036 | ERR_STRING_TOO_BIGNUMBER | ulong に変換できない大きな数値 |
| 5037 | ERR_WRONG_FORMATSTRING | 書式文字列が不正 |
| 5038 | ERR_TOO_MANY_FORMATTERS | 書式指定子が引数より多い |
| 5039 | ERR_TOO_MANY_PARAMETERS | 引数が書式指定子より多い |
| 5040 | ERR_WRONG_STRING_PARAMETER | 文字列型の引数が不正 |
| 5041 | ERR_STRINGPOS_OUTOFRANGE | 文字列の位置が範囲外 |
| 5042 | ERR_STRING_ZEROADDED | 文字列の末尾に 0 が追加された |
| 5043 | ERR_STRING_UNKNOWNTYPE | 文字列に変換できない型 |
| 5044 | ERR_WRONG_STRING_OBJECT | 文字列オブジェクトが壊れている |
| 5050 | ERR_INCOMPATIBLE_ARRAYS | 配列の型が合わない |
| 5051 | ERR_SMALL_ASSERIES_ARRAY | コピー元の時系列配列が小さすぎる |
| 5052 | ERR_SMALL_ARRAY | 配列が小さすぎる |
| 5053 | ERR_ZEROSIZE_ARRAY | 配列の要素数が 0 |
| 5054 | ERR_NUMBER_ARRAYS_ONLY | 数値型の配列が必要 |
| 5055 | ERR_ONEDIM_ARRAYS_ONLY | 1次元配列が必要 |
| 5056 | ERR_SERIES_ARRAY | 時系列配列は使えない |
| 5057 | ERR_DOUBLE_ARRAY_ONLY | double 型の配列が必要 |
| 5058 | ERR_FLOAT_ARRAY_ONLY | float 型の配列が必要 |
| 5059 | ERR_LONG_ARRAY_ONLY | long 型の配列が必要 |
| 5060 | ERR_INT_ARRAY_ONLY | int 型の配列が必要 |
| 5061 | ERR_SHORT_ARRAY_ONLY | short 型の配列が必要 |
| 5062 | ERR_CHAR_ARRAY_ONLY | char 型の配列が必要 |
| 5063 | ERR_STRING_ARRAY_ONLY | string 型の配列が必要 |
| 5200 | ERR_WEBREQUEST_INVALID_ADDRESS | WebRequest の URL が不正 |
| 5201 | ERR_WEBREQUEST_CONNECT_FAILED | WebRequest で接続できない |
| 5202 | ERR_WEBREQUEST_TIMEOUT | WebRequest がタイムアウトした |
| 5203 | ERR_WEBREQUEST_REQUEST_FAILED | WebRequest の HTTP リクエストが失敗した 解説 → |
| 5270 | ERR_NETSOCKET_INVALIDHANDLE | ソケットハンドルが不正 |
| 5271 | ERR_NETSOCKET_TOO_MANY_OPENED | 開いているソケットが多すぎる |
| 5272 | ERR_NETSOCKET_CANNOT_CONNECT | ソケットで接続できない |
| 5273 | ERR_NETSOCKET_IO_ERROR | ソケットの送受信エラー |
| 5274 | ERR_NETSOCKET_HANDSHAKE_FAILED | TLSハンドシェイクに失敗した |
| 5275 | ERR_NETSOCKET_NO_CERTIFICATE | 証明書の情報がない |
| 5300 | ERR_NOT_CUSTOM_SYMBOL | カスタム銘柄ではない |
| 5301 | ERR_CUSTOM_SYMBOL_WRONG_NAME | カスタム銘柄名が不正 |
| 5302 | ERR_CUSTOM_SYMBOL_NAME_LONG | カスタム銘柄名が長すぎる |
| 5303 | ERR_CUSTOM_SYMBOL_PATH_LONG | カスタム銘柄のパスが長すぎる |
| 5304 | ERR_CUSTOM_SYMBOL_EXIST | 同じ名前のカスタム銘柄がすでにある |
| 5305 | ERR_CUSTOM_SYMBOL_ERROR | カスタム銘柄の作成・削除・変更に失敗した |
| 5306 | ERR_CUSTOM_SYMBOL_SELECTED | 気配値表示にあるカスタム銘柄は削除できない |
| 5307 | ERR_CUSTOM_SYMBOL_PROPERTY_WRONG | カスタム銘柄のプロパティが不正 |
| 5308 | ERR_CUSTOM_SYMBOL_PARAMETER_ERROR | カスタム銘柄のプロパティ設定の引数が不正 |
| 5309 | ERR_CUSTOM_SYMBOL_PARAMETER_LONG | カスタム銘柄の文字列プロパティが長すぎる |
| 5310 | ERR_CUSTOM_TICKS_WRONG_ORDER | ティックの時刻が順番どおりに並んでいない |
| 5400 | ERR_CALENDAR_MORE_DATA | 経済指標カレンダーのデータが配列に入りきらない |
| 5401 | ERR_CALENDAR_TIMEOUT | 経済指標カレンダーの取得がタイムアウトした |
| 5402 | ERR_CALENDAR_NO_DATA | 経済指標カレンダーのデータがない |
| 65536 | ERR_USER_ERROR_FIRST | ユーザー定義エラーの開始番号(SetUserError で設定) |
コンパイルエラー・警告MetaEditor
MetaEditor でコンパイルしたとき「エラー」タブに出るメッセージです。番号は MetaEditor が表示するエラー番号で、MT4 と MT5 で表示の形が少し違います。
実行中のログメッセージエキスパートタブ
EA・インジケーターの実行中に「エキスパート」タブや「操作履歴」タブに出る、番号のないメッセージです。
| メッセージ | 意味 |
|---|---|
array out of range | 配列の範囲外アクセスでプログラムが停止した 解説 → |
zero divide | 0 での割り算でプログラムが停止した 解説 → |
invalid pointer access | 無効なポインタにアクセスしてプログラムが停止した 解説 → |
cannot load custom indicator | iCustom で指定したインジケーターを読み込めない 解説 → |
EAが動かない(自動売買されない) | EAをチャートに入れても注文しない 解説 → |
initialization failed | EA・インジケーターの初期化(OnInit)に失敗した 解説 → |
DLL loading is not allowed | DLLの使用が許可されていない 解説 → |
uninit reason | EA・インジケーターが停止した理由(uninit reason の番号) 解説 → |
TestGenerator: unmatched data error | バックテストの過去データに不整合がある(MT4) 解説 → |
該当するエラーが見つかりませんでした。番号だけ、または英語メッセージの一部(例:stops、fill)で探してみてください。
エラー番号の調べ方
EA・インジケーターの実行中に出るエラー
MT4 は「ターミナル」、MT5 は「ツールボックス」の「エキスパート」タブと「操作履歴」タブにメッセージが出ます。「OrderSend error 130」の 130 がエラー番号です。
自分でコードを書くときは、失敗した関数の直後に GetLastError() を呼ぶと番号を取得できます。MT5 の注文は OrderSend() の結果の retcode(CTrade なら ResultRetcode())も確認します。関数を呼ぶ前に ResetLastError() を呼んでおくと、前の処理の番号が残っているのと区別できます。
コンパイルエラー
MetaEditor の下部「エラー」タブに ファイル名(行,列) : error 256: undeclared identifier 'Ask' のように表示されます。行をダブルクリックするとエラーの場所に移動できます。エラーがたくさん出たときは、いちばん上のエラーから直すと、ほかのエラーもまとめて消えることがよくあります。
よくある質問
MT4・MT5 のエラー番号はどこで確認できますか?
EA やインジケーターのエラーは、ターミナル下部の「ツールボックス」(MT4 は「ターミナル」)にある「エキスパート」タブと「操作履歴」タブに表示されます。コンパイルエラーは MetaEditor の「エラー」タブに表示されます。表示された番号やメッセージをこの辞典の検索欄に入力すると、意味と対処法を確認できます。
MT5 のエラー4756 と 10030 などのリターンコードは何が違いますか?
4756(ERR_TRADE_SEND_FAILED)は「注文の送信に失敗した」ことだけを表す実行時エラーです。失敗の本当の理由は MqlTradeResult.retcode(CTrade なら ResultRetcode())に入る 10004〜10046 のリターンコードで分かります。4756 が出たら retcode を確認してください。
MT4 のエラー130 と MT5 のエラー10016 は同じ意味ですか?
どちらも損切り・利確(ストップ)の価格が不正という意味で、原因と対処法はほぼ同じです。現在値からストップレベル以上離し、買いと売りで向きを間違えないようにし、NormalizeDouble() で桁数を合わせます。
コンパイルの警告(warning)は直さないといけませんか?
警告があってもコンパイルは成功し、EA は動きます。ただし「possible loss of data」や「return value should be checked」などの警告は、計算の誤りや注文失敗の見逃しにつながることがあるため、できるだけ直しておくのがおすすめです。
エラー番号・定数名・英語メッセージは MT4 / MT5 に付属するヘッダーファイルと、MetaEditor(2026年9月時点)で実際にコンパイルして確認した内容に基づいています。












