信号、已发送请求和已成交持仓是不同事件。剥头皮目标较小时,这种差异可能决定剩余净收益是否足够。本文不把图表触价当作成交,也不把未收到响应当作安全重发的许可。
1. 订单执行也是交易规则的一部分
市价入场寻求按可用条件立即交易;限价入场等待可接受价格,可能始终不成交。两者本身都不创造入场优势。买得更低只有在思路仍有效时确实成交才有意义,错失行情与不利选择也必须纳入。
分别定义信号、入场政策、失效条件、数量与退出。本文研究执行机制,不是完整盈利策略;路径与台账均属虚构。应在相同合格信号起点比较,不能只挑耐心等限价恰好成功的图形。
2. Bid触及并不会触发BUY限价
假设EURUSD、pip=0.0001和point=tick=0.00001。参考Bid/Ask=1.10000/1.10008的点差为0.8 pip。BUY市价按Ask入场,SELL按Bid。BUY限价1.10000仍低于当前Ask,即使Bid图已显示这个价。
教学模型要求Ask<=1.10000,后续1.09992/1.10000符合价格条件,但并不证明成交;还涉及受理、流动性及真实规则。SELL限价需要相应Bid侧判断。核对自身合同的限价与跳空政策,不要照搬其他经纪商假设。
3. 给比较规定有限时钟
虚构起点为08:00:00 UTC,两种政策均允许在1 s内发出首次请求,所用报价年龄不得超过250 ms。限价本地截止为08:00:05 UTC。这些是教学参数,并非通用延迟建议,也不表示MT4能以同等精度强制服务器到期。
截止后不再接纳新的合格成交,订单仍等待则请求撤销。确认之前状态仍未解决;真实迟到成交是要管理的敞口,不能删掉。到期支持与最短时长因经纪商而异;CSV毫秒为示意,真实时钟和精度可能不同。假设价格距离获准,否则拒绝候选,不移动限价。
| 政策 | 声明假设 |
|---|---|
| 报价 | Bid 1.10000 / Ask 1.10008 |
| 请求 | 08:00:00 UTC + ≤1s · age≤250ms |
| 限价 | L=1.10000 · cutoff 08:00:05 UTC |
| 固定手数 | 0.35 lot · 10 USD/pip/lot |
| 佣金+剩余退出预留 | 0.7 + 0.2 = 0.9 pip |
4. 市价订单与执行模式不是一回事
MT4区分Instant、Request、Market模式,由经纪商确定品种模式。Instant可能不接受原价而返回重新报价;Market可在不再次征求确认的情况下决定成交价。没有重新报价不代表没有滑点、拒绝或必然成交。
重新报价只是新价格提议,不是已建仓。本教学政策仅一次尝试,确认的重新报价结束该起点,不自动接受。另设重试政策则必须重查价格、时间、成本与风险。OrderSend偏差参数以point计,不应假设各模式保护相同或存在通用的绝对价格上限。
5. 限价控制价格条件,却可能不成交
BUY限价表示最高买价,SELL限价表示最低卖价,具体以适用执行条件为准。显示报价合格后,订单仍可能因可执行数量或路由而等待。挂单编号只能确认订单存在,不证明持仓已经建立。
回撤让限价成交后可能继续不利运行,未回撤的行情则可能完全错过。这种选择会改变交易样本。事前固定限价、有效期和撤单规则。每次错过后追着移动价格,或加上未经检验的市价补单,都定义了另一套政策。
6. 比较成交前固定退出与数量
使用BUY Bid退出S=1.09950、T=1.10110,USD账户,每标准手合同100000 EUR,每手pip价值10 USD。两种方案均固定0.35 lots以分离执行影响。入场价不同时,同手数不等于同资金风险。
市价请求从参考Ask预留0.3 pip的不利入场移动,计划成交价为1.10011。这是压力假设,不保证最差成交价。净值10000 USD及预算0.25%=25 USD也是示例。发送前核对手数步长、最小数量、保证金、当前止损距离和总敞口。
7. 已知入场滑点不要重复计费
假设往返佣金0.7 pip,剩余出场执行预留0.2 pip,得到C_remaining=0.9 pip。成交F已知时,入场滑点已在F内。计算L=(F-S)/pip+C_remaining、W=(T-F)/pip-C_remaining、R_net=W/L。Ask入场与Bid退出也已体现点差。
假定市价成交F=1.10011,L/W为7.0/9.0 pips,比率1.2857,计划风险24.50 USD,净目标31.50 USD。假定限价成交F=1.10000时为5.9/10.1/1.7119及20.65/35.35 USD。参考报价行仅作基准,不是成交。不能回溯缩小已建仓位来美化比较。
| 方法 | 入场价 | 计划亏损·pips | 净目标·pips | 净比率 | 风险USD | 目标USD |
|---|---|---|---|---|---|---|
| 参考·并非成交 | 1.10008 | 6.7 | 9.3 | 1.3881 | 23.45 | 32.55 |
| 市价入场 | 1.10011 | 7.0 | 9.0 | 1.2857 | 24.50 | 31.50 |
| 限价入场 | 1.10000 | 5.9 | 10.1 | 1.7119 | 20.65 | 35.35 |
8. 在实际接口确认部分成交与有效方式
部分场所支持部分成交、IOC或FOK,不能假设所有MT4经纪商都提供相同选项。MQL4 OrderSend签名没有通用IOC/FOK参数。核对具体账户和品种对数量、到期及撤单的支持。
若接口支持部分成交,分开记录已成交与剩余数量,保护已形成敞口,按预定规则管理余量。不能像什么都未发生一样重发全部原始数量。最低费用和拆单也可能改变本例简化的线性佣金模型。
9. 撤单请求不等于已撤销
竞争示例在08:00:04.950满足价格条件,08:00:04.960在服务器成交,终端尚未知。它在08:00:05.000请求撤单,08:00:05.050因持仓已存在而被拒,08:00:05.100客户端才看到持仓。
截止时发送市价补单可能重复开仓。先结合近期历史核实仍挂单、已撤单还是已转持仓。本地计时器不能撤销服务器成交。即使确认撤单,也只结束该订单;允许的补单还需重新检查有效性、价格及总风险。
10. 超时意味着结果未知,不是明确拒绝
超时分支在08:00:00.400发送,08:00:00.600服务器成交,返回错误128(08:00:01.000),08:00:02.000客户端看到持仓。这是观察延迟的构造案例,超时本身不能说明服务器结果。
核对期间停止同一交易意图的新入场请求。刷新订单选择,按品种、方向、数量、标识及时间检查持仓、挂单与历史。备注不是可靠的幂等键,暂时缺少记录也不证明未交易。保护发现的敞口;重试需要状态已解决并且另一项新决策获准。
11. 针对正确基准测量带符号滑点
定义不利入场滑点s_buy=(F-Ask_ref)/pip、s_sell=(Bid_ref-F)/pip,正数表示变差,负数表示改善。BUY参考1.10008成交于1.10011得到+0.3 pip;SELL参考1.10000成交于1.09997也为+0.3 pip。
分别记录决策时可执行报价、发送时刻与成交确认,不能用K线收盘替代报价。限价相对早先市价Ask的差异是政策价格差,不证明该限价本身有正向价格改善。只有时钟对齐、精度足够才测量延迟,不能直接相减无关时钟。
| 方法 | 参考·并非成交 | 假定成交 | 带符号入场滑点 |
|---|---|---|---|
| BUY | 1.10008 | 1.10011 | +0.3 pip |
| SELL | 1.10000 | 1.09997 | +0.3 pip |
12. 如实处理超出预留的成交
相同退出与成本下,1.10015的成交给出L=7.4、W=8.6和比率1.1622。按已经请求的0.35 lots计算,计划风险升为25.90 USD,超出预算。比较门槛R_net>=1.20仅为声明的研究规则,并非已证实盈利阈值。
发送前可拒绝不合格报价;成交后敞口真实存在,不能改写成“无交易”。记录执行违约,停止该意图后续入场,执行事先规定的保护与风险退出流程。不能扩大止损或虚构更小历史手数。保护被拒和紧急平仓也需失败处理,不能保证损失上限。
13. 保存意图、请求、订单和成交台账
记录唯一研究意图、信号时刻、Bid/Ask及报价年龄、类型与请求数量、价格、收发时间、票号、错误、成交、撤单确认和最终敞口。区分已发、已成交、剩余数量;实际佣金和退出与事前预留分开。
指标包括每合格起点成交率、成交等待、带符号滑点、拒绝、未决状态、撤单竞争及净结果。明确分母:反复重试会让每请求与每信号成交率不同。未成交在本例中交易损益为零,仅因假设无交易且无订单费。错失机会是独立基准,不应虚构为现金亏损。
14. 比较共同起点,而非只看已成交交易
独立教学台账有4个共同起点。市价全成交,净值+7,+7,-7,+7 USD,合计14 USD,每起点均值3.50 USD。限价仅起点1,3成交,结果+14,-3.50 USD;两个未成交起点在无订单费假设下为零。
限价合计10.50 USD,每成交交易均值5.25 USD高于市价,但每起点均值2.625 USD更低。这些指定净值是另一个算术示例,不是前述事件文件产生的收益,也不是概率估计。保留两个分母,用真实数据研究不确定性后再选政策。
| 起点 | 市价 USD | 限价 USD | 状态 |
|---|---|---|---|
| 1 | 7 | 14 | 已成交 |
| 2 | 7 | 0 | 未成交 |
| 3 | -7 | -3.5 | 已成交 |
| 4 | 7 | 0 | 未成交 |
15. 执行假设不能只靠整齐的回测
仅凭Bid OHLC无法还原历史Ask、流动性、队列优先级或请求延迟。测试器可能把限价触及算成成交,实盘规则却未必成交。说明订单及点差假设,对无法解决的K线内顺序标记未知,不选择有利路径。
模拟账户可检验机制,不证明实盘执行质量。比较合适的报价、订单日志和未使用后续观察,在声明的压力场景改变点差、延迟与佣金。各方案的入场和退出时钟保持一致。虚构例子只核对计算与状态差异,不估计成交概率、胜率或实盘期望利润。
16. 选择完整且有限的执行政策
发送前规定价格侧、类型、报价年龄、最大延迟、数量、成本及风险检查、挂单截止和确认撤单。明确什么结束一个起点、什么生成新起点。固定标识和未知结果的核对步骤,确认经纪商实际接受什么,而不是相信图表名称。
市价、耐心限价与任何补单是不同研究候选。按共同起点保留费用与未成交进行测试。前一篇止损止盈指南提供退出构造,货币对选择及MT4数据指南说明成本与限制。规则全部明确且组合策略独立验证后再整合。
常见问题
Bid图触及BUY限价能证明成交吗?
不能。BUY价格条件看Ask,即使符合也不证明受理、可用数量或成交。保留实际订单状态与经纪商规则。
市价订单与Market执行模式相同吗?
不同。类型描述指令,模式描述经纪商如何处理。MT4还有Instant与Request,具体品种模式由经纪商确定。
限价到期后能立刻换成市价吗?
本地期限或撤单请求不代表撤单成功。先核实挂单、持仓与近期成交;获准补单也须重新决策且避免重复敞口。
超时表示交易失败吗?
不一定,终端可能不知道服务器结果。再请求前先核对并保护发现的持仓,盲目重发可能重复开仓。
知道成交价后还要另加入场滑点吗?
不用。实际建仓价已体现它。计算真实费用和未在别处计入的剩余计划预留。
虚构限价比较证明更赚钱吗?
不证明,事件与结果都是虚构。每成交平均较高可同时伴随每信号平均较低,需要真实数据与完整政策。
来源与研究说明
MetaQuotes资料说明订单类型、执行模式及MQL4接口。本文价格、期限、成交与结果台账均为原创虚构教学假设,不是经纪商报价、实盘业绩或可直接运行的EA。
- MetaTrader 4: order types and price sides
- MQL4: OrderSend and request parameters
- MQL4: trade server return codes
仅供教育。价格、期限、成交和结果均为虚构。外汇有风险,订单类型、止损、偏差设置及预留不能保证成交、盈利或实际损失上限。