交易服务器返回代码
通过使用OrderSend()函数,所有执行交易操作的请求都以MqlTradeRequest交易请求结构发送。函数执行结果代替MqlTradeResult结构,retcode域包括交易服务器返回代码,所有代码都在ENUM_TRADE_RETURN_CODES项目中描述。
ENUM_TRADE_RETURN_CODES
代码 |
常量 |
描述 |
---|---|---|
10004 |
TRADE_RETCODE_REQUOTE |
报价请求 |
10006 |
TRADE_RETCODE_REJECT |
拒绝请求 |
10007 |
TRADE_RETCODE_CANCEL |
交易者取消请求 |
10008 |
TRADE_RETCODE_PLACED |
安置命令 |
10009 |
TRADE_RETCODE_DONE |
完成要求 |
10010 |
TRADE_RETCODE_DONE_PARTIAL |
请求部分完成 |
10011 |
TRADE_RETCODE_ERROR |
请求处理错误 |
10012 |
TRADE_RETCODE_TIMEOUT |
超时取消请求 |
10013 |
TRADE_RETCODE_INVALID |
无效请求 |
10014 |
TRADE_RETCODE_INVALID_VOLUME |
请求中无效成交量 |
10015 |
TRADE_RETCODE_INVALID_PRICE |
请求中的无效价格 |
10016 |
TRADE_RETCODE_INVALID_STOPS |
请求中的无效访问 |
10017 |
TRADE_RETCODE_TRADE_DISABLED |
关闭交易 |
10018 |
TRADE_RETCODE_MARKET_CLOSED |
收市 |
10019 |
TRADE_RETCODE_NO_MONEY |
没有足够的钱实现请求 |
10020 |
TRADE_RETCODE_PRICE_CHANGED |
改变价格 |
10021 |
TRADE_RETCODE_PRICE_OFF |
没有报价处理请求 |
10022 |
TRADE_RETCODE_INVALID_EXPIRATION |
请求中的无效命令截止日期 |
10023 |
TRADE_RETCODE_ORDER_CHANGED |
改变命令状态 |
10024 |
TRADE_RETCODE_TOO_MANY_REQUESTS |
太频繁的请求 |
10025 |
TRADE_RETCODE_NO_CHANGES |
不改变请求 |
10026 |
TRADE_RETCODE_SERVER_DISABLES_AT |
服务器无效自动交易 |
10027 |
TRADE_RETCODE_CLIENT_DISABLES_AT |
客户端无效自动交易 |
10028 |
TRADE_RETCODE_LOCKED |
处理锁住请求 |
10029 |
TRADE_RETCODE_FROZEN |
命令或安置冻结 |
10030 |
TRADE_RETCODE_INVALID_FILL |
无效命令填满字节 |
10031 |
TRADE_RETCODE_CONNECTION |
与服务器无连接 |
10032 |
TRADE_RETCODE_ONLY_REAL |
只在流水账允许操作 |
10033 |
TRADE_RETCODE_LIMIT_ORDERS |
待办订单数量达到限制 |
10034 |
TRADE_RETCODE_LIMIT_VOLUME |
订单成交量和交易品种位置达到限制 |
10035 |
TRADE_RETCODE_INVALID_ORDER |
错误或禁止的 订单类型 |
10036 |
TRADE_RETCODE_POSITION_CLOSED |
指定 POSITION_IDENTIFIER的持仓已经被关闭 |
10038 |
TRADE_RETCODE_INVALID_CLOSE_VOLUME |
平仓交易量超出当前持仓交易量 |
10039 |
TRADE_RETCODE_CLOSE_ORDER_EXIST |
指定持仓已存在平仓订单。这可能在锁仓系统工作时出现:
|
10040 |
TRADE_RETCODE_LIMIT_POSITIONS |
同时存在于账户中的持仓数量可以通过服务器的设置来限定。达到限定数以后,当再尝试下单时服务器会返回TRADE_RETCODE_LIMIT_POSITIONS错误。限定操作的差异取决于账户持仓类型:
|
10041 |
TRADE_RETCODE_REJECT_CANCEL |
挂单激活请求被拒绝,订单被取消 |
10042 |
TRADE_RETCODE_LONG_ONLY |
因为交易品种(POSITION_TYPE_BUY)设置了"只允许买入持仓"的规则,所以请求被拒绝 |
10043 |
TRADE_RETCODE_SHORT_ONLY |
因为交易品种 (POSITION_TYPE_SELL)设置了"只允许卖出持仓"的规则,所以请求被拒绝 |
10044 |
TRADE_RETCODE_CLOSE_ONLY |
因为交易品种设置了"只允许平仓"的规则,所以请求被拒绝 |
10045 |
TRADE_RETCODE_FIFO_CLOSE |
请求被拒绝,因为已为交易账户设置了“仅允许通过FIFO规则平仓”标识(ACCOUNT_FIFO_CLOSE=true) |
10046 |
TRADE_RETCODE_HEDGE_PROHIBITED |
请求被拒绝,因为该交易账户设置了“禁用单个交易品种的反向持仓”规则。例如,如果该账户是Buy持仓,那么用户就不能建立Sell持仓或下单卖出挂单。该规则仅适用于使用锁仓账户系统的账户 (ACCOUNT_MARGIN_MODE=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)。 |