GetLastError()関数は、定義済み変数である「_LastError」に格納されている直近に発生したエラーのエラーコードを取得するために使用します。
- _LastErrorの詳細については「こちら」を参照してください。
GetLastError()関数は、以下のように定義されています。
int GetLastError();
GetLastError()関数には引数がないので、()内には何も記述しません。
戻り値
mql4プログラムが実行されている間に発生した直近のエラーのエラーコードを返します。
なお、トレードに関するエラーコードと内容は、以下のとおりです。
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 | 先入れ先出し法に反してポジションを閉じようとしている |
注意点
GetLastError()関数を実行すると、定義済み変数である「_LastError」に格納されている値はリセットされます。