_LastErrorは、mql4プログラムを実行している際に発生した直近のエラーのエラーコードを取得するために使用するint型の変数です。
_LastErrorに格納されているエラーコードは、ResetLastError()関数を使用することによってリセットすることができます。
- ResetLastError()関数の詳細については「こちら」を参照してください。
直近に発生したエラーのエラーコードを取得するためには、GetLastError()関数を使用することもできます。
- GetLastError()関数の詳細については「こちら」を参照してください。
なお、トレードに関するエラーのエラーコードと内容は、以下のとおりです。
ERR_NO_ERROR | エラーなし | |
ERR_NO_RESULT | エラーは返されていないが、結果は不明 | |
ERR_COMMON_ERROR | 共通エラー | |
ERR_INVALID_PARAMETERS | 取引に関する関数に無効なパラメーターが渡されている | |
ERR_SERVER_BUSY | 取引サーバーがビジー状態 | |
ERR_OLD_VERSION | MT4のバージョンが古い | |
ERR_NO_CONNECTION | 取引サーバーに接続されていない | |
ERR_NOT_ENOUGH_RIGHTS | 十分な権限がない | |
ERR_TOO_FREQUENT_REQUESTS | 要求が頻繁すぎる | |
ERR_MALFUNCTIONAL_TRADE | トレード操作の誤動作 | |
ERR_ACCOUNT_DISABLED | アカウントが無効化されている | |
ERR_INVALID_ACCOUNT | 無効なアカウント | |
ERR_TRADE_TIMEOUT | トレードの時間切れ | |
ERR_INVALID_PRICE | 無効な価格 | |
ERR_INVALID_STOPS | 無効なストップ値 | |
ERR_INVALID_TRADE_VOLUME | 無効なロットサイズ | |
ERR_MARKET_CLOSED | 市場が閉じている | |
ERR_TRADE_DISABLED | トレードが禁止されている | |
ERR_NOT_ENOUGH_MONEY | 十分な資金がない | |
ERR_PRICE_CHANGED | 価格が変化した | |
ERR_OFF_QUOTES | ブローカーがレートを提示していなかったり、約定を拒否したことにより注文が通らずに売買不成立 | |
ERR_BROKER_BUSY | ブローカーがビジー状態 | |
ERR_REQUOTE | レートの再提示 | |
ERR_ORDER_LOCKED | 注文が処理中でロックされている | |
ERR_LONG_POSITIONS_ONLY_ALLOWED | 買いに関する操作のみ許可されている | |
ERR_TOO_MANY_REQUESTS | 要求が多すぎる | |
ERR_TRADE_MODIFY_DENIED | 注文の修正価格が市場価格に近すぎるため、注文の修正が拒否された | |
ERR_TRADE_CONTEXT_BUSY | トレード環境がビジー状態 | |
ERR_TRADE_EXPIRATION_DENIED | ブローカーによって注文の有効期限の設定が拒否された | |
ERR_TOO_MANY_ORDERS | 保有ポジションと待機注文の総数がブローカーが設定している制限値に達している | |
ERR_TRADE_HEDGE_PROHIBITED | 相殺が禁止されている時に保有ポジションを閉じることなしに保有ポジションと反対のポジションを持つことはできない | |
ERR_TRADE_PROHIBITED_BY_FIFO | 先入れ先出し法に反してポジションを閉じようとしている |