Question: 为什么我的待处理订单在MT5中会被自动取消(删除)?
为什么MetaTrader 5会自动取消(删除)待处理订单
MetaTrader 5(MT5)仅在基于规则的特定情况下自动删除待处理订单。这些规则来自平台本身 (订单类型和有效性设置)、交易服务器在激活时的接受标准,以及经纪商对交易工具的政策(例如每日有效期、 合约到期或临时交易限制)。以下是基于MT5文档和主要经纪商执行政策,明确列出挂单消失并进入历史的全部原因。
有效期显示“停止”:订单过期(设计使然)
MT5中所有待处理订单均设有有效时间模式(有效期)。若有效期到期,平台将自动取消该订单并将其移至“历史”记录,状态显示为“已过期”。MT5支持有效直至取消(ORDER_TIME_GTC)、有效至指定日期(ORDER_TIME_DAY)和有效至指定时间/日期(ORDER_TIME_SPECIFIED / ORDER_TIME_SPECIFIED_DAY)。对于“特定日期”,
订单有效至服务器时间指定日期的23:59:59;若该时间点落在交易时段之外,则到期时间调整为最近的交易时段。这些行为在MQL5参考中明确定义。
当交易日变更时,待处理订单将被删除(若经纪商使用“每日排除止损”模式,则保留止损/止盈水平)。此行为由服务器端符号的 GTC 模式控制。
平台尝试激活订单,但市场操作不被允许
当价格达到激活水平时,MT5 将挂单转换为市场操作。如果该交易无法执行,MT5 将取消待处理订单并将其移至历史记录,标注为“拒绝”。MT5 自身帮助文档已明确说明,且经纪商政策亦有体现。常见的“激活时间拒绝”情况包括以下几种。
激活时可用保证金不足
如果激活订单时可用保证金不足,服务器将拒绝相应的市场交易,待处理订单将被取消。通常,您会在日志/历史记录中看到类似“资金不足”的提示;Pepperstone的执行政策及MT5帮助文档对此有详细说明。
交易限制(适用于符号或账户)
经纪商(或交易所对于交易所交易的符号)可能临时启用以下模式:“仅平仓”、“仅做多” “仅做空”或仅FIFO。如果待执行订单被触发且违反当前规则,交易服务器将返回特定代码,如TRADE_RETCODE_CLOSE_ONLY、 LONG_ONLY 或 SHORT_ONLY,触发请求被拒绝,因此待处理订单被取消。MT5列出了这些服务器返回代码,包括通用代码“待处理订单激活请求被拒绝;订单已取消”(TRADE_RETCODE_REJECT_CANCEL)。
典型场景:
- 在新闻发布前或到期/续期时,某一工具变为仅限平仓状态;不允许进行买入/卖出操作。
- 市场在特殊事件期间实施仅做多或仅做空限制;无法开启相反方向的待处理订单。
每种情况的结果相同:尝试激活时自动取消。
激活时参数无效(止损/价格/交易量)
MT5 在实际市场交易时验证止损/止盈距离(“止损级别”)、冻结窗口、价格步长和交易量步长。如果预期交易不符合这些参数(无效止损、无效价格或无效成交量),服务器将拒绝激活,从而取消待处理订单。MT5 显示这些消息为 TRADE_RETCODE_INVALID_STOPS / INVALID_PRICE / INVALID_VOLUME,终端帮助中显示“
无效止损”作为最终拒绝,当参数不符合符号规则时。
经纪商定义的滑点冲突/限制
部分经纪商在待处理订单被触发时会应用额外的规则一致性要求。例如,Exness记录了标记为“取消/缺口”或“止损被触发”,在此类情况下,订单不会执行,而是根据滑点规则被取消(例如,因为关联的止盈价格在缺口后与触发价格不合理)。
工具生命周期事件导致待处理订单被取消
期货/差价合约符号的合约到期与展期
当基于期货合约的差价合约(CFD)达到其到期/失效日期时,经纪商通常会取消该到期合约的待处理订单。经纪商的政策会直接说明这一点;例如,WM Markets解释称,到期差价合约的待处理订单将无需提前通知即被取消,而Pepperstone则指出,基于日期的有效性 日期有效性在期货差价合约达到到期日后失效。
在符号级别设置每日有效期
除了订单有效期外,某些符号在服务器上设置为在交易日结束时删除未执行订单(可选择保留止损)。这是平台级行为,由模式SYMBOL_ORDERS_DAILY和SYMBOL_ORDERS_DAILY_EXCLUDING_STOPS描述。
MT5中自动取消发生时显示的内容
MT5 对订单状态有明确说明:
- 过期:有效期已到,平台自动取消订单。
- 被拒绝:待处理订单 被激活,但市场操作无法执行;服务器拒绝了该订单,订单被取消。
这些状态显示在 历史 中;这是 MT5 帮助页面上的直接说明。
自动取消路径的详细说明
为了确保操作完全清晰,以下是MT5在精确顺序中遵循的步骤:
订单根据自身设置过期
- ORDER_TIME_SPECIFIED / SPECIFIED_DAY: 在指定时间(SPECIFIED_DAY 当天的 23:59:59)被删除;如果该时间不在交易时段,则在下一交易时段删除。
- ORDER_TIME_DAY: 在交易日结束时删除,适用于相应配置的符号。
- ORDER_TIME_GTC: 平台上没有自动过期(但经纪商政策、过期规则或以下限制可能导致删除)。
订单正在尝试执行;MT5必须将其转换为市场交易
- 当前保证金不足 → 激活被拒绝 → 订单取消。MT5帮助文档及经纪商政策均确认此结果。
- 符号/账户限制(仅限平仓、仅限做多、仅限做空、仅限FIFO)→ 激活被拒绝 → 订单取消,并返回相应交易代码。li>
- 激活参数无效(距离规则、价格步长、体积精度)→ 激活被拒绝 → 订单被取消,并显示 INVALID_STOPS/PRICE/VOLUME。
- 经纪商的滑点规则阻止了订单的正常执行(例如,止盈/止损逻辑因价格缺口而中断)→ 订单被删除,根据经纪商的文档流程“取消/缺口”或“止损被触发”。
工具生命周期导致订单失效
- 期货/差价合约到期在当前合约中 → 经纪商取消该合约中剩余的待处理订单。
- 设置为每日有效期的符号 → 在交易日结束时删除。
不太明显的陷阱,但仍会导致自动删除
- MT5中的服务器端“GTD”:选择特定的未来日期意味着,如果该订单未在该日期/时间触发,系统将自动删除该订单。经纪商在其政策中明确记载了这一点。
- MT5服务器端的GTD:选择特定的未来日期意味着,如果订单未在该日期/时间激活,系统将自动删除该订单。经纪商在其政策中明确记载了这一点。
配置和策略的实际影响
- 选择正确的有效期:当您确实希望订单保持有效时,请使用GTC;仅当您希望订单在当天结束时或特定时间自动过期时,才选择DAY或SPECIFIED。MT5ENUM及其行为已正式化;关于到期方式不存在歧义。
- 激活时的预算保证金:待处理订单不会提前“预留”保证金;保证金在订单激活时进行评估。若可用保证金不足(即使仅差少量),服务器将拒绝激活并删除订单。
- 符合符号合同规格:止损水平、冻结水平、最小距离、价格/成交量步长及允许的执行模式均在激活时生效。请确保止损/止盈和交易规模在这些规则范围内,以避免因INVALID_STOPS/PRICE/VOLUME导致订单被取消。
- 注意经纪商关于生命周期事件的政策:到期CFD/期货及 “仅关闭”窗口是常见做法。到期合约中的待处理订单将不被保留。
MT5 如何记录结果(以避免歧义)
MT5终端清晰分类结果:
- “过期”:平台因有效期已过(天数或指定时间)而取消订单。
- “拒绝”:待处理订单被触发, 服务器拒绝了市场操作(保证金不足、符号/账户限制、参数无效或经纪商的明确规则),平台已删除该订单。
这些状态属于官方帮助内容,并在“历史记录”标签中显示。
摘要
MT5中的待处理订单仅因以下几种明确原因自动消失:
- 1) 有效期到期:指定的日期或时间/日期。
- 2) 激活时被拒绝:由于 保证金不足、 符号/账户限制(仅限平仓/仅限做多/仅限做空/FIFO)或 无效参数(止损/价格/成交量)。
- 3) 工具生命周期政策:特别是期货/差价合约合约到期日和设置为每日有效符号。
这些结果并非随意生成,而是集成在MT5订单模型和交易服务器规则中。当出现上述任一条件时,MT5将取消待处理订单并记录准确状态:过期(有效期已到),拒绝(激活失败)。
- Close