MT4 MT5 交易时可能收到的错误码列表

By 迈达斯之手 at 2019-02-01 • 1人收藏 • 1087人看过
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
2019-03-06   #1

不明觉厉   哈哈

登录后方可回帖

Loading...