如果账户订阅了信号,则限制访问 MQL5 交易和历史函数。
在账户中检测到信号订阅时(无论当前终端是否启用复制),禁止调用任何MQL5 交易函数,包括接收开启订单和仓位、接收历史记录以及执行交易操作。日志中会记录相应的警告:
'XXX':检测到信号订阅,禁用 MQL5 和 Python 中的交易和历史访问函数
这些限制也适用于Python 交易函数:positions_total, positions_get, orders_total, orders_get, history_orders_total, history_orders_get, history_deals_total, history_deals_get, order_check, 和 order_send。
如果取消了账户上的信号订阅,或连接到另一个没有订阅信号的账户,则会解除限制并记录以下信息:
'XXX':未检测到信号订阅,已启用 MQL5 和 Python 中的交易和历史访问功能
如果账户上的限制处于活动状态,MQL5 函数将返回以下响应代码:
- OrderSend 和 OrderSendAsync 返回 RET_REQUEST_AT_DISABLED_CLIENT
- OrdersTotal 和 PositionsTotal 返回 0
- PositionGetSymbol、PositionSelect、PositionSelectByTicket 和 PositionGetTicket 返回 ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
- OrderGetTicket 和 OrderSelect 返回 ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
- HistorySelect 返回 ERR_MQLAPI_TRADE_DEAL_NOT_FOUND