【MQL4定数】エラーコード定数​(ERR_○○)

【辞書】MQLリファレンス

エラーコード定数​(ERR_○○)

エラーコード定数​(ERR_○○)は、プログラム実行時のエラー内容を知るための定数です。

例えば、注文が通らなかった場合、ERR_INVALID_TRADE_VOLUMEなどのエラー定数が使用されます。

エラーコードは、システムが自動的に_LastError変数に格納するものなので、プログラムに記述する必要はありませんが、デバッグするときに非常に便利なので、覚えておくと良いでしょう。

エラーコード定数は、以下の関数で使います。

  • GetLastError関数:最近のエラーコードを返す関数
  • ErrorDescription関数:エラーコードの内容を返す関数

エラーコード定数​(ERR_○○)

定数数値説明
ERR_NO_ERROR0エラーはありません
No error returned
ERR_NO_RESULT1エラーはありませんが、結果が不明です
No error returned, but the result is unknown
ERR_COMMON_ERROR2一般的なエラー
Common error
ERR_INVALID_TRADE_PARAMETERS3無効な取引パラメータ
Invalid trade parameters
ERR_SERVER_BUSY4トレードサーバーがビジー状態です
Trade server is busy
ERR_OLD_VERSION5クライアントターミナルのバージョンが古い
Old version of the client terminal
ERR_NO_CONNECTION6トレードサーバーに接続していません
No connection with trade server
ERR_NOT_ENOUGH_RIGHTS7権限が十分ではありません
Not enough rights
ERR_TOO_FREQUENT_REQUESTS8要求が頻繁過ぎます
Too frequent requests
ERR_MALFUNCTIONAL_TRADE9異常な取引操作です
Malfunctional trade operation
ERR_ACCOUNT_DISABLED64許可されていないアカウントです
Account disabled
ERR_INVALID_ACCOUNT65無効なアカウントです
Invalid account
ERR_TRADE_TIMEOUT128トレードタイムアウト
Trade timeout
ERR_INVALID_PRICE129無効な価格です
Invalid price
ERR_INVALID_STOPS130無効なストップ設定です
Invalid stops
ERR_INVALID_TRADE_VOLUME131無効なトレード量(lot数)です
Invalid trade volume
ERR_MARKET_CLOSED132市場が閉じています
Market is closed
ERR_TRADE_DISABLED133トレード無効設定になっています
Trade is disabled
ERR_NOT_ENOUGH_MONEY134証拠金が不足しています
Not enough money
ERR_PRICE_CHANGED135価格が変更されました
Price changed
ERR_OFF_QUOTES136レートが提示されていません
Off quotes
ERR_BROKER_BUSY137ブローカーがビジー状態です
Broker is busy
ERR_REQUOTE138レート再提示
Requote
ERR_ORDER_LOCKED139注文がロックされています
Order is locked
ERR_LONG_POSITIONS_ONLY_ALLOWED140ロングエントリーのみ許可されています
Buy orders only allowed
ERR_TOO_MANY_REQUESTS141要求が多過ぎます
Too many requests
ERR_TRADE_MODIFY_DENIED145変更注文が市場提示価格に近すぎる為、拒否されました。
Modification denied because order is too close to market
ERR_TRADE_CONTEXT_BUSY146トレードコンテキストがビジーです
Trade context is busy
ERR_TRADE_EXPIRATION_DENIED147有効期限設定はブローカーによって拒否されました
Expirations are denied by broker
ERR_TRADE_TOO_MANY_ORDERS148保留中の注文量がブローカーによって設定された上限に達しています
The amount of open and pending orders has reached the limit set by the broker
ERR_TRADE_HEDGE_PROHIBITED149両建ては無効になっています
An attempt to open an order opposite to the existing one when hedging is disabled
ERR_TRADE_PROHIBITED_BY_FIFO150FIFOルールに違反したポジション決済をしようとしています
An attempt to close an order contravening the FIFO rule
ERR_NO_MQLERROR4000エラーはありません
No error returned
ERR_WRONG_FUNCTION_POINTER4001不正な関数ポインタ
Wrong function pointer
ERR_ARRAY_INDEX_OUT_OF_RANGE4002配列インデックスの範囲外指定。
Array index is out of range.
ERR_NO_MEMORY_FOR_CALL_STACK4003関数呼び出しの為のスタックメモリがありません
No memory for function call stack
ERR_RECURSIVE_STACK_OVERFLOW4004スタックオーバーフロー
Recursive stack overflow
ERR_NOT_ENOUGH_STACK_FOR_PARAM4005引数の為のスタックが不十分
Not enough stack for parameter
ERR_NO_MEMORY_FOR_PARAM_STRING4006文字列引数の為のメモリ不足
No memory for parameter string
ERR_NO_MEMORY_FOR_TEMP_STRING4007文字列の為のメモリ不足
No memory for temp string
ERR_NOT_INITIALIZED_STRING4008文字列は初期化されません
Not initialized string
ERR_NOT_INITIALIZED_ARRAYSTRING4009配列文字列は初期化されません
Not initialized string in array
ERR_NO_MEMORY_FOR_ARRAYSTRING4010配列文字列の為のメモリ不足
No memory for array string
ERR_TOO_LONG_STRING4011文字列が長過ぎです
Too long string
ERR_REMAINDER_FROM_ZERO_DIVIDE4012ゼロ除算(余剰)をしています
Remainder from zero divide
ERR_ZERO_DIVIDE4013ゼロ除算をしています
Zero divide
ERR_UNKNOWN_COMMAND4014不明なコマンド
Unknown command
ERR_WRONG_JUMP4015不正なジャンプ
Wrong jump (never generated error).
ERR_NOT_INITIALIZED_ARRAY4016配列は初期化されません
Not initialized array
ERR_DLL_CALLS_NOT_ALLOWED4017DLL呼び出しが許可されていません。許可するには、EAプロパティのチェックボックスで設定します
DLL calls are not allowed
ERR_CANNOT_LOAD_LIBRARY4018ライブラリをロードできません
Cannot load library
ERR_CANNOT_CALL_FUNCTION4019関数を呼び出せません
Cannot call function
ERR_EXTERNAL_CALLS_NOT_ALLOWED4020外部関数の呼び出しが許可されていません。許可するには、EAプロパティのチェックボックスで設定します
Expert function calls are not allowed
ERR_NO_MEMORY_FOR_RETURNED_STR4021関数の文字列型の戻り値の為のメモリが足りません
Not enough memory for temp string returned from function
ERR_SYSTEM_BUSY4022システムビジー
System is busy (never generated error)
ERR_DLLFUNC_CRITICALERROR4023DLL呼び出しの致命的なエラー
DLL-function call critical error
ERR_INTERNAL_ERROR4024内部エラー
Internal error
ERR_OUT_OF_MEMORY4025メモリ不足
Out of memory
ERR_INVALID_POINTER4026無効なポインタ
Invalid pointer
ERR_FORMAT_TOO_MANY_FORMATTERS4027フォーマット関数で引数が多過ぎます
Too many formatters in the format function
ERR_FORMAT_TOO_MANY_PARAMETERS4028パラメータカウントが上限を超えています
Parameters count exceeds formatters count
ERR_ARRAY_INVALID4029無効な配列
Invalid array
ERR_CHART_NOREPLY4030チャートから返信がありません
No reply from chart
ERR_INVALID_FUNCTION_PARAMSCNT4050無効な関数の引数数
Invalid function parameters count
ERR_INVALID_FUNCTION_PARAMVALUE4051無効な関数の引数値
Invalid function parameter value
ERR_STRING_FUNCTION_INTERNAL4052文字列関数の内部エラー
String function internal error
ERR_SOME_ARRAY_ERROR4053配列エラー
Some array error
ERR_INCORRECT_SERIESARRAY_USING4054不正な時系列配列使用
Incorrect series array using
ERR_CUSTOM_INDICATOR_ERROR4055カスタムインジケータエラー
Custom indicator error
ERR_INCOMPATIBLE_ARRAYS4056互換性の無い配列
Arrays are incompatible
ERR_GLOBAL_VARIABLES_PROCESSING4057グローバル変数処理エラー
Global variables processing error
ERR_GLOBAL_VARIABLE_NOT_FOUND4058グローバル変数が見つかりません
Global variable not found
ERR_FUNC_NOT_ALLOWED_IN_TESTING4059関数がテストモードで許可されていません
Function is not allowed in testing mode
ERR_FUNCTION_NOT_CONFIRMED4060関数が呼び出し許可されていません
Function is not allowed for call
ERR_SEND_MAIL_ERROR4061メール送信エラー
Send mail error
ERR_STRING_PARAMETER_EXPECTED4062文字列引数が必要
String parameter expected
ERR_INTEGER_PARAMETER_EXPECTED4063整数引数が必要
Integer parameter expected
ERR_DOUBLE_PARAMETER_EXPECTED4064double引数が必要
Double parameter expected
ERR_ARRAY_AS_PARAMETER_EXPECTED4065配列引数が必要
Array as parameter expected
ERR_HISTORY_WILL_UPDATED4066要求したヒストリーデータが更新中
Requested history data is in updating state
ERR_TRADE_ERROR4067内部トレードエラー
Internal trade error
ERR_RESOURCE_NOT_FOUND4068リソースが見つかりません
Resource not found
ERR_RESOURCE_NOT_SUPPORTED4069リソースがサポートされていません
Resource not supported
ERR_RESOURCE_DUPLICATED4070リソースが重複しています
Duplicate resource
ERR_INDICATOR_CANNOT_INIT4071カスタムインジケータを初期化できません
Custom indicator cannot initialize
ERR_INDICATOR_CANNOT_LOAD4072カスタムインジータをロードできません
Cannot load custom indicator
ERR_NO_HISTORY_DATA4073ヒストリーデータがありません
No history data
ERR_NO_MEMORY_FOR_HISTORY4074ヒストリーデータの為のメモリがありません
No memory for history data
ERR_NO_MEMORY_FOR_INDICATOR4075インジケータ計算の為のメモリがありません
Not enough memory for indicator calculation
ERR_END_OF_FILE4099ファイルの終わり
End of file
ERR_SOME_FILE_ERROR4100ファイルエラー
Some file error
ERR_WRONG_FILE_NAME4101不正なファイル名
Wrong file name
ERR_TOO_MANY_OPENED_FILES4102ファイルを開き過ぎています
Too many opened files
ERR_CANNOT_OPEN_FILE4103ファイルが開けません
Cannot open file
ERR_INCOMPATIBLE_FILEACCESS4104互換性の無いファイルアクセス
Incompatible access to a file
ERR_NO_ORDER_SELECTED4105オーダー選択されていません
No order selected
ERR_UNKNOWN_SYMBOL4106不明なシンボル
Unknown symbol
ERR_INVALID_PRICE_PARAM4107無効な価格
Invalid price
ERR_INVALID_TICKET4108無効なチケット
Invalid ticket
ERR_TRADE_NOT_ALLOWED4109トレードが許可されていません。許可するには、EAプロパティのチェックボックスで設定します
Trade is not allowed. Enable checkbox “Allow live trading” in the Expert Advisor properties
ERR_LONGS_NOT_ALLOWED4110買い注文は許可されていません。許可するには、EAプロパティで設定します
Longs are not allowed. Check the Expert Advisor properties
ERR_SHORTS_NOT_ALLOWED4111売り注文は許可されていません。許可するには、EAプロパティで設定します
Shorts are not allowed. Check the Expert Advisor properties
ERR_TRADE_EXPERT_DISABLED_BY_SERVER4112EA・スクリプトによる自動売買はトレードサーバーで許可されていません
Automated trading by Expert Advisors/Scripts disabled by trade server
ERR_OBJECT_ALREADY_EXISTS4200オブジェクトが既に存在しています
Object already exists
ERR_UNKNOWN_OBJECT_PROPERTY4201不明なオブジェクトプロパティ
Unknown object property
ERR_OBJECT_DOES_NOT_EXIST4202オブジェクトが存在していません
Object does not exist
ERR_UNKNOWN_OBJECT_TYPE4203不明なオブジェクトタイプ
Unknown object type
ERR_NO_OBJECT_NAME4204オブジェクト名がありません
No object name
ERR_OBJECT_COORDINATES_ERROR4205オブジェクト調整エラー
Object coordinates error
ERR_NO_SPECIFIED_SUBWINDOW4206サブウインドウを指定出来ません
No specified subwindow
ERR_SOME_OBJECT_ERROR4207グラフィカルオブジェクトエラー
Graphical object error
ERR_CHART_PROP_INVALID4210不正なチャートプロパティ
Unknown chart property
ERR_CHART_NOT_FOUND4211チャートが見つかりません
Chart not found
ERR_CHARTWINDOW_NOT_FOUND4212チャートサブウインドウが見つかりません
Chart subwindow not found
ERR_CHARTINDICATOR_NOT_FOUND4213チャートインジケータが見つかりません
Chart indicator not found
ERR_SYMBOL_SELECT4220シンボル選択エラー
Symbol select error
ERR_NOTIFICATION_ERROR4250通知エラー
Notification error
ERR_NOTIFICATION_PARAMETER4251通知パラメータエラー
Notification parameter error
ERR_NOTIFICATION_SETTINGS4252通知無効
Notifications disabled
ERR_NOTIFICATION_TOO_FREQUENT4253通知を頻繁に送り過ぎ
Notification send too frequent
ERR_FTP_NOSERVER4260FTPサーバーが指定されていません
FTP server is not specified
ERR_FTP_NOLOGIN4261FTPログインが指定されていません
ERR_FTP_CONNECT_FAILED4262FTP接続に失敗しました
FTP login is not specified
ERR_FTP_CLOSED4263FTP接続が閉じられました
FTP connection closed
ERR_FTP_CHANGEDIR4264サーバー上でFTPパスが見つかりません
FTP path not found on server
ERR_FTP_FILE_ERROR4265FTPサーバーで送信するディレクトリ(MQL4\Files)にファイルがありません
File not found in the MQL4\Files directory to send on FTP server
ERR_FTP_ERROR4266FTPデータ送信中のエラー
Common error during FTP data transmission
ERR_FILE_TOO_MANY_OPENED5001ファイルを開き過ぎ
Too many opened files
ERR_FILE_WRONG_FILENAME5002不正なファイル名
Wrong file name
ERR_FILE_TOO_LONG_FILENAME5003ファイル名が長すぎます
Too long file name
ERR_FILE_CANNOT_OPEN5004ファイルを開けません
Cannot open file
ERR_FILE_BUFFER_ALLOCATION_ERROR5005テキストファイルのバッファ割り当てエラー
Text file buffer allocation error
ERR_FILE_CANNOT_DELETE5006ファイルを削除できません
Cannot delete file
ERR_FILE_INVALID_HANDLE5007無効なファイルハンドル(ファイルがオープン・クローズされていない)
Invalid file handle (file closed or was not opened)
ERR_FILE_WRONG_HANDLE5008不正なファイルハンドル(ハンドルインデックスがハンドルテーブル外)
Wrong file handle (handle index is out of handle table)
ERR_FILE_NOT_TOWRITE5009FILE_WRITEフラグ付きでオープンする必要があります
File must be opened with FILE_WRITE flag
ERR_FILE_NOT_TOREAD5010FILE_READフラグ付きでオープンする必要があります
File must be opened with FILE_READ flag
ERR_FILE_NOT_BIN5011FILE_BINフラグ付きでオープンする必要があります
File must be opened with FILE_BIN flag
ERR_FILE_NOT_TXT5012FILE_TXTフラグ付きでオープンする必要があります
File must be opened with FILE_TXT flag
ERR_FILE_NOT_TXTORCSV5013FILE_TXT又はFILE_CSVフラグ付きでオープンする必要があります
File must be opened with FILE_TXT or FILE_CSV flag
ERR_FILE_NOT_CSV5014FILE_CSVフラグ付きでオープンする必要があります
File must be opened with FILE_CSV flag
ERR_FILE_READ_ERROR5015ファイル読み込みエラー
File read error
ERR_FILE_WRITE_ERROR5016ファイル書き込みエラー
File write error
ERR_FILE_BIN_STRINGSIZE5017バイナリファイルの為に文字列サイズを指定する必要があります
String size must be specified for binary file
ERR_FILE_INCOMPATIBLE5018互換性の無いファイル(.txt:文字列ファイル, .bin:他ファイル)
Incompatible file (for string arrays-TXT, for others-BIN)
ERR_FILE_IS_DIRECTORY5019ファイルではありません。ディレクトリです。
File is directory not file
ERR_FILE_NOT_EXIST5020ファイルが存在しません
File does not exist
ERR_FILE_CANNOT_REWRITE5021ファイルを書き換える事は出来ません
File cannot be rewritten
ERR_FILE_WRONG_DIRECTORYNAME5022不正なディレクトリ名
Wrong directory name
ERR_FILE_DIRECTORY_NOT_EXIST5023ディレクトリが存在しません
Directory does not exist
ERR_FILE_NOT_DIRECTORY5024指定されたファイルはディレクトリではありません
Specified file is not directory
ERR_FILE_CANNOT_DELETE_DIRECTORY5025ディレクトリを削除する事は出来ません
Cannot delete directory
ERR_FILE_CANNOT_CLEAN_DIRECTORY5026ディレクトリ内のデータを削除する事は出来ません
Cannot clean directory
ERR_FILE_ARRAYRESIZE_ERROR5027配列サイズ変更エラー
Array resize error
ERR_FILE_STRINGRESIZE_ERROR5028文字列サイズ変更エラー
String resize error
ERR_FILE_STRUCT_WITH_OBJECTS5029構造体に文字列または動的配列が含まれています
Structure contains strings or dynamic arrays
ERR_WEBREQUEST_INVALID_ADDRESS5200無効なURL
Invalid URL
ERR_WEBREQUEST_CONNECT_FAILED5201指定されたURLへの接続に失敗しました
Failed to connect to specified URL
ERR_WEBREQUEST_TIMEOUT5202タイムアウト
Timeout exceeded
ERR_WEBREQUEST_REQUEST_FAILED5203HTTPリクエスト失敗
HTTP request failed
ERR_USER_ERROR_FIRST65536ユーザー定義エラーは、このコードから始まります
User defined errors start with this code

エラーコード定数​(ERR_○○)の使い方

エラーが起こったとき、システムが自動的に_LastError変数に、適切なエラーコード定数を格納します。

_LastError変数の値を取得するために、GetLastError関数を使います。

GetLastError関数を使うことで、エラーコードの番号を知ることができます。

エラーコードの番号を知ることができれば、エラーの内容をErrorDescription関数を使って表示させることができるので、デバッグするときにとても役立ちます。

例えば、以下のように使用します。

#property strict

//ライブラリをインクルード
#include <stdlib.mqh>

//+------------------------------------------------------------------+
//| スクリプトスタート
//+------------------------------------------------------------------+
void OnStart()
{
    int ea_ticket_res;

    // エラーになるようにLot:0で発注
    ea_ticket_res = OrderSend(  // オーダー送信
        Symbol(),               // 通貨ペア
        OP_BUY,                 // オーダータイプ[OP_BUY / OP_SELL]
        0.00000,                // ロット[0.01単位]
        Ask,                    // オーダープライスレート
        20,                     // スリップ上限    (int)[分解能 0.1pips]
        0,                      // ストップレート
        0,                      // リミットレート
        "エラーテスト",          // オーダーコメント
        999,                    // マジックナンバー(管理用)
        0,                      // オーダーリミット時間
        clrRed                  // オーダーアイコンカラー
    );

    //オーダーエラー
    if ( ea_ticket_res == -1 ) { 

        int error_code;
        string error_detail;

        // エラーコード取得
        error_code = GetLastError(); 

        // エラー内容取得
        error_detail = ErrorDescription(error_code);

        if ( error_code != ERR_NO_ERROR ) {
            printf( "エラーコード:%d 内容:%s" , error_code , error_detail);
        }
    }
}

上記のプログラムを実行することで、以下のような結果を得ることができます。

「エラーコード: 4051 詳細:invalid function parameter value」