完整的入场规则必须说明指令如何变成持仓。当前价格上方的Buy Stop与下方的Buy Limit虽然都是买入,触发条件却不同。本文用虚构EURUSD报价依次说明提交、接受、触发和成交,不挑选事后盈利的案例。
1. 先分清两个报价和开平仓
Bid是可以卖出的价格,Ask是可以买入的价格。BUY以Ask开仓,再以Bid卖出平仓;SELL以Bid开仓,再以Ask买回平仓。实际成交仍取决于经纪商执行方式和可用报价。
MT4普通外汇K线通常显示Bid。因此,图表是否碰线不能单独证明Ask条件是否达到。开启Ask线可以观察当前点差,但当前线并不等于历史Ask K线。
2. 市价单是即时执行请求
市价单请求立即执行,不代表预订了屏幕上的报价。发送时间、服务器答复、成交价格和拒单应分别记录。价格变化和重新报价如何处理,取决于执行模式。
假设Bid 1.1000、Ask 1.1002。BUY在1.1002成交后立即以未变的Bid 1.1000平仓,手续费前亏损2 pips。点差已经包含在这两个可交易价格中,再加入同一价差会重复计算。
3. 从交易条件出发选择订单
先判断是立即交易、等待回撤,还是突破某一价位后才入场。市价买入要求立即执行;Buy Limit等待更低的Ask;Buy Stop要求Ask先升至上方门槛。同一分析可能因此产生不同交易。限价单可能完全没有成交,止损入场单可能在假突破时成交。订单类型本身不会改善信号质量。
若要求下跌延续,放在Bid下方的Sell Stop先等待下跌;Bid上方的Sell Limit则等待反弹后做空。价格没有反弹就下跌,限价单未成交符合原指令。事后改成市价卖出,就变成另一套测试规则。应提前规定到期时间及错过入场后的处理方式。
4. 四类挂单分别使用正确报价
Buy Limit设在当前Ask下方,Ask下跌至该价触发;Buy Stop设在Ask上方,Ask上涨触发。Sell Limit设在当前Bid上方,Bid上涨触发;Sell Stop设在Bid下方,Bid下跌触发。还需满足经纪商最小距离要求。
在同一初始报价下,1.0980可示范Buy Limit或Sell Stop,1.1020可示范Buy Stop或Sell Limit。名称还决定方向:1.1020的Sell Limit用于建立空头,不是给已有BUY止盈。
5. 并排比较六种入场指令
| 指令 | 提交时的价格条件 | 触发或入场报价侧 |
|---|---|---|
| Market BUY | 立即买入 | Ask |
| Market SELL | 立即卖出 | Bid |
| Buy Limit | 低于当前Ask | Ask |
| Buy Stop | 高于当前Ask | Ask |
| Sell Limit | 高于当前Bid | Bid |
| Sell Stop | 低于当前Bid | Bid |
6. 触发不等于保证成交价
1.1020的Buy Stop可能在Ask 1.1020、Bid 1.1018时触发,所以Bid图看起来仍未触线。如果Ask跳至1.1025,指定价与实际成交价就可能不同。
不要把交易所订单保障直接套用于所有零售外汇合同。应阅读跳空、滑点和价格改善条款。限价指令通常按合同限制可接受的入场价格,但OHLC回测中的碰线本身不能证明当时能够成交。
7. Stop Loss和Take Profit用于退出
入场挂单成交后建立持仓;Stop Loss和Take Profit是附属退出指令。BUY的退出条件检查Bid,SELL检查Ask。通常BUY初始止损低于入场、目标高于入场;SELL方向相反。
服务器已接受的挂单和止损可以在终端关闭后继续有效。EA内部虚拟触发、EA退出或移动止损计算可能需要终端持续连接运行。图上画线不代表服务器已接受保护指令。
8. 跟踪SELL从入场到离场
假设Bid/Ask为1.1000/1.1002时,1.1020的Sell Limit已被接受。之后Bid达到1.1020、Ask为1.1022,满足以Bid判断的入场条件。若恰好在1.1020成交,止损1.1040、目标1.0980,则风险距离20 pip、目标距离40 pip。两种离场都用Ask判断。若立即以Ask 1.1022平仓,手续费前已亏2 pip。
若Bid降至1.0980而Ask仍为1.0982,Ask尚未触及目标。点差恒为2 pip时,Ask 1.0980对应Bid 1.0978。反过来,即使Bid最高价低于1.1040,Ask也可能触及空单止损。这些只是报价侧示例,并非成交保证;实际进出价格须核对账户记录。
9. 检查距离、精度、手数与到期
检查报价位数、可交易最小跳动、最小手数及手数步长、交易时段与权限。pip、point和tick并不相同。本例五位EURUSD中,1 pip = 0.0001,1 point = 0.00001,2 pips = 20 points。
StopLevel限制距离,FreezeLevel可能限制临近市场的修改或撤销。StopLevel为零也可能存在动态服务器限制。有些服务器拒绝到期设置。应记录服务器时间,不要把被拒绝的到期请求悄悄改成无限期订单。
10. 用确认后的状态管理订单
基本顺序为准备请求 → 已接受挂单 → 已成交持仓 → 已平仓。拒绝、到期和撤销是独立分支。成交前撤销挂单可阻止该笔入场,已有持仓则需要平仓交易。撤单与成交可能发生竞争。
EA应保留订单号、品种、Magic Number、请求数量、确认状态和真实成交价。超时后先查服务器再重试:答复不明不证明失败,盲目重发可能重复建立风险。每次模糊答复后都要核对持仓。
11. 在模拟账户走完完整订单流程
在新订单窗口选择准确的交易品种,设定手数前查看合约规格。挂单入场需选择挂单及正确子类型,再填写价格、止损、目标和服务器支持的到期时间。提交前一起检查;改变子类型可能改变价格应处于市场哪一侧。
提交后在交易标签核对服务器接受的挂单编号及保护设置。若被拒绝,保留原因,不要悄悄改为市价单。触发后核对实际成交价格和手数;平仓后核对账户历史与费用。模拟账户适合学习流程,但不能证明真实成交质量。
标准MT4中的两个相反方向挂单不会自动构成OCO组合。即便EA在一单成交后撤销另一单,撤单确认前两单仍可能同时触发。必须测试这一竞态、断线恢复及重复响应。删除图表线或停止EA,并不会删除服务器已经接受的挂单。
12. 先审计指令,再评估策略
事先写明报价侧、触发价、到期、可接受入场偏离、止损、数量与拒单处理。提交时符合点差过滤,不保证稍后触发时仍符合。除非成功撤销或修改,服务器挂单不会自动继承EA的新过滤条件。
用带时间戳的报价和账户记录验证。一根K线穿过入场、止损和目标,未必说明先后顺序。使用合适tick数据或明确的保守歧义规则,同时统计拒单、撤单和错过的入场。成交更快、成交率更高均不能证明盈利。
常见问题
Buy Stop与Stop Loss相同吗?
不同。Buy Stop是在当前Ask上方买入的入场挂单;Stop Loss是持仓的退出指令。平空仓也需要买入,但用途和订单关系不同。
为什么图表还没碰线就触发了?
Ask条件可能先于Bid碰线成立。检查历史点差、订单种类与服务器时间记录。当前Ask线不能重建过去的Ask路径。
挂单后能关闭MT4吗?
服务器已接受的挂单通常继续有效。虚拟订单、本地撤单逻辑和移动止损更新需要各自的运行环境。依赖指令前应确认接受状态及合同条款。
来源与适用范围
MetaQuotes资料用于核对平台机制与限制。报价、流程例子与审计清单为原创教学构造,具体执行以经纪商合同为准,本文不证明策略具有交易优势。
- MetaQuotes · Order Types
- MetaQuotes · MQL4: OrderSend
- MetaQuotes · Requirements and Limitations in Making Trades
虚构教学示例,不保证成交或交易结果。