MT4 MT5 交易时可能收到的错误码列表
By
迈达斯之手
at 2019-02-01 • 1人收藏 • 1263人看过
void printError(int errcode) { #ifdef __MQL5__ switch(errcode){ case TRADE_RETCODE_REQUOTE: Print("Requote"); break; case TRADE_RETCODE_REJECT: Print("Request rejected"); break; case TRADE_RETCODE_CANCEL: Print("Request canceled by trader"); break; case TRADE_RETCODE_PLACED: Print("Order placed"); break; case TRADE_RETCODE_DONE: Print("Request completed"); break; case TRADE_RETCODE_DONE_PARTIAL: Print("Only part of the request was completed"); break; case TRADE_RETCODE_ERROR: Print("Request processing error"); break; case TRADE_RETCODE_TIMEOUT: Print("Request canceled by timeout"); break; case TRADE_RETCODE_INVALID: Print("Invalid request"); break; case TRADE_RETCODE_INVALID_VOLUME: Print("Invalid volume in the request"); break; case TRADE_RETCODE_INVALID_PRICE: Print("Invalid price in the request"); break; case TRADE_RETCODE_INVALID_STOPS: Print("Invalid stops in the request"); break; case TRADE_RETCODE_TRADE_DISABLED: Print("Trade is disabled"); break; case TRADE_RETCODE_MARKET_CLOSED: Print("Market is closed"); break; case TRADE_RETCODE_NO_MONEY: Print("There is not enough money to complete the request"); break; case TRADE_RETCODE_PRICE_CHANGED: Print("Prices changed"); break; case TRADE_RETCODE_PRICE_OFF: Print("There are no quotes to process the request"); break; case TRADE_RETCODE_INVALID_EXPIRATION: Print("Invalid order expiration date in the request"); break; case TRADE_RETCODE_ORDER_CHANGED: Print("Order state changed"); break; case TRADE_RETCODE_TOO_MANY_REQUESTS: Print("Too frequent requests"); break; case TRADE_RETCODE_NO_CHANGES: Print("No changes in request"); break; case TRADE_RETCODE_SERVER_DISABLES_AT: Print("Autotrading disabled by server"); break; case TRADE_RETCODE_CLIENT_DISABLES_AT: Print("Autotrading disabled by client terminal"); break; case TRADE_RETCODE_LOCKED: Print("Request locked for processing"); break; case TRADE_RETCODE_FROZEN: Print("Order or position frozen"); break; case TRADE_RETCODE_INVALID_FILL: Print("Invalid order filling type"); break; case TRADE_RETCODE_CONNECTION: Print("No connection with the trade server"); break; case TRADE_RETCODE_ONLY_REAL: Print("Operation is allowed only for live accounts"); break; case TRADE_RETCODE_LIMIT_ORDERS: Print("The number of pending orders has reached the limit"); break; case TRADE_RETCODE_LIMIT_VOLUME: Print("The volume of orders and positions for the symbol has reached the limit"); break; case TRADE_RETCODE_INVALID_ORDER: Print("Incorrect or prohibited order type"); break; case TRADE_RETCODE_POSITION_CLOSED: Print("Position with the specified POSITION_IDENTIFIER has already been closed"); break; case TRADE_RETCODE_INVALID_CLOSE_VOLUME: Print("A close volume exceeds the current position volume"); break; case TRADE_RETCODE_CLOSE_ORDER_EXIST: Print("A close order already exists for a specified position"); break; case TRADE_RETCODE_LIMIT_POSITIONS: Print("The number of open positions simultaneously present on an account can be limited by the server settings"); break; case TRADE_RETCODE_REJECT_CANCEL: Print("The pending order activation request is rejected, the order is canceled"); break; case TRADE_RETCODE_LONG_ONLY: Print("Only long positions are allowed"); break; case TRADE_RETCODE_SHORT_ONLY: Print("Only short positions are allowed"); break; case TRADE_RETCODE_CLOSE_ONLY: Print("Only position closing is allowed"); break; default: Print("unknown errcode"); break; } #else switch(errcode){ case ERR_NO_ERROR: Print("No error returned."); break; case ERR_NO_RESULT: Print("No error returned, but the result is unknown."); break; case ERR_COMMON_ERROR: Print("Common error."); break; case ERR_INVALID_TRADE_PARAMETERS: Print("Invalid trade parameters."); break; case ERR_SERVER_BUSY: Print("Trade server is busy."); break; case ERR_OLD_VERSION: Print("Old version of the client terminal."); break; case ERR_NO_CONNECTION: Print("No connection with trade server."); break; case ERR_NOT_ENOUGH_RIGHTS: Print("Not enough rights."); break; case ERR_TOO_FREQUENT_REQUESTS: Print("Too frequent requests."); break; case ERR_MALFUNCTIONAL_TRADE: Print("Malfunctional trade operation."); break; case ERR_ACCOUNT_DISABLED: Print("Account disabled."); break; case ERR_INVALID_ACCOUNT: Print("Invalid account."); break; case ERR_TRADE_TIMEOUT: Print("Trade timeout."); break; case ERR_INVALID_PRICE: Print("Invalid price."); break; case ERR_INVALID_STOPS: Print("Invalid stops."); break; case ERR_INVALID_TRADE_VOLUME: Print("Invalid trade volume."); break; case ERR_MARKET_CLOSED: Print("Market is closed."); break; case ERR_TRADE_DISABLED: Print("Trade is disabled."); break; case ERR_NOT_ENOUGH_MONEY: Print("Not enough money."); break; case ERR_PRICE_CHANGED: Print("Price changed."); break; case ERR_OFF_QUOTES: Print("Off quotes."); break; case ERR_BROKER_BUSY: Print("Broker is busy."); break; case ERR_REQUOTE: Print("Requote."); break; case ERR_ORDER_LOCKED: Print("Order is locked."); break; case ERR_LONG_POSITIONS_ONLY_ALLOWED: Print("Long positions only allowed."); break; case ERR_TOO_MANY_REQUESTS: Print("Too many requests."); break; case ERR_TRADE_MODIFY_DENIED: Print("Modification denied because an order is too close to market."); break; case ERR_TRADE_CONTEXT_BUSY: Print("Trade context is busy."); break; case ERR_TRADE_EXPIRATION_DENIED: Print("Expirations are denied by broker."); break; case ERR_TRADE_TOO_MANY_ORDERS: Print("The amount of opened and pending orders has reached the limit set by a broker."); break; default: Print("unknown errcode"); break; } #endif }
直接复制就可以用,兼容mt4 mt5,传入交易errcode会在ea日志里打印出对应的解释,请尊重他人劳动,转载请注明出处
1 个回复 | 最后更新于 2019-03-06
登录后方可回帖
不明觉厉 哈哈