【MQL4プログラミング勉強】GetLastError()関数とは?

ザフナーラボブログ

GetLastError()関数は、定義済み変数である「_LastError」に格納されている直近に発生したエラーのエラーコードを取得するために使用します。

GetLastError()関数は、以下のように定義されています。

int GetLastError();

GetLastError()関数には引数がないので、()内には何も記述しません。

戻り値

mql4プログラムが実行されている間に発生した直近のエラーのエラーコードを返します。

なお、トレードに関するエラーコードと内容は、以下のとおりです。

定 数
内 容
0
ERR_NO_ERROR エラーなし
1
ERR_NO_RESULT エラーは返されていないが、結果は不明
2
ERR_COMMON_ERROR 共通エラー
3
ERR_INVALID_PARAMETERS 取引に関する関数に無効なパラメーターが渡されている
4
ERR_SERVER_BUSY 取引サーバーがビジー状態
5
ERR_OLD_VERSION MT4のバージョンが古い
6
ERR_NO_CONNECTION 取引サーバーに接続されていない
7
ERR_NOT_ENOUGH_RIGHTS 十分な権限がない
8
ERR_TOO_FREQUENT_REQUESTS 要求が頻繁すぎる
9
ERR_MALFUNCTIONAL_TRADE トレード操作の誤動作
64
ERR_ACCOUNT_DISABLED アカウントが無効化されている
65
ERR_INVALID_ACCOUNT 無効なアカウント
128
ERR_TRADE_TIMEOUT トレードの時間切れ
129
ERR_INVALID_PRICE 無効な価格
130
ERR_INVALID_STOPS 無効なストップ値
131
ERR_INVALID_TRADE_VOLUME 無効なロットサイズ
132
ERR_MARKET_CLOSED 市場が閉じている
133
ERR_TRADE_DISABLED トレードが禁止されている
134
ERR_NOT_ENOUGH_MONEY 十分な資金がない
135
ERR_PRICE_CHANGED 価格が変化した
136
ERR_OFF_QUOTES ブローカーがレートを提示していなかったり、約定を拒否したことにより注文が通らずに売買不成立
137
ERR_BROKER_BUSY ブローカーがビジー状態
138
ERR_REQUOTE レートの再提示
139
ERR_ORDER_LOCKED 注文が処理中でロックされている
140
ERR_LONG_POSITIONS_ONLY_ALLOWED 買いに関する操作のみ許可されている
141
ERR_TOO_MANY_REQUESTS 要求が多すぎる
145
ERR_TRADE_MODIFY_DENIED 注文の修正価格が市場価格に近すぎるため、注文の修正が拒否された
146
ERR_TRADE_CONTEXT_BUSY トレード環境がビジー状態
147
ERR_TRADE_EXPIRATION_DENIED ブローカーによって注文の有効期限の設定が拒否された
148
ERR_TOO_MANY_ORDERS 保有ポジションと待機注文の総数がブローカーが設定している制限値に達している
149
ERR_TRADE_HEDGE_PROHIBITED 相殺が禁止されている時に保有ポジションを閉じることなしに保有ポジションと反対のポジションを持つことはできない
150
ERR_TRADE_PROHIBITED_BY_FIFO 先入れ先出し法に反してポジションを閉じようとしている

注意点

GetLastError()関数を実行すると、定義済み変数である「_LastError」に格納されている値はリセットされます。