图表触及限价,并不等于交易已确认成交。本教学M1模型先固定区间,只接受紧接其后的突破收盘,再为首次回踩或反抽提交一张挂单。订单等待时间有限,而账户状态以核实后的经纪商报告为依据。示例区分仅Bid触及、回踩或反抽但未成交、确认到期,以及撤单期间发生的成交。
1. 完整定义首次回踩或反抽假设
本策略研究小型区间完成并立即突破后的首次回踩或反抽,重点是执行状态:挂单究竟已被接受、成交、到期还是撤销。这与两段回调后市价入场,或假突破后的再次入场不同。模型不使用EMA、RSI、SAR、ADX、ATR,也不使用需要未来K线确认的拐点。
这是一套可复现的教学规范,并非可安装EA或经过实盘验证的系统。K线数量、距离和时限均为明确假设。所有双边报价及经纪商报告都是虚构的。限制等待意图,并不能保证账户恰好在该时刻就没有持仓或挂单。
2. 固定合约、UTC时钟与账户锁定条件
使用已收盘的EURUSD M1 Bid OHLC,合约设定为pip=0.0001; point=tick=0.00001; contract=EUR100,000/lot; pip_value=$10/lot,账户以USD计价。所有形态K线的开盘、收盘时间及下单时间须满足09:00<=UTC<12:00。开始搜索前,核实整个账户没有持仓、挂单、其他敞口或未解决的请求。合约、保证金规则及对初始附带保护和服务器到期时间的支持均须明确。
核实UTC与经纪商服务器时钟的换算,包括时差变化。虚构示例明确假设server_UTC_offset=0; known_event_list=[]。预先已知的事件在[event−15 min,event+15 min]期间禁止提交挂单;该时段只是研究政策假设。时钟、日历或数据未知时,不得新下单。已有挂单或未解决响应继续占用账户锁定状态。
3. 固定首个不重叠的五根K线区间
账户获核实释放后,取开盘时间不早于释放时刻的、首批连续五个实际已完成M1区间,固定H=max(High1..High5); L=min(Low1..Low5); 6<=(H−L)/pip<=10。先将该块标记为已使用,再检验宽度。不得滑动已使用的区间块来寻找更有利范围;缺失时段或无效区间须在实际观察到失败之后重新开始。
第六根是唯一允许的突破K线B。主例区间为09:00–09:05 UTC; H=1.20080; L=1.20000; width=8 pip。这些极值当时已知,并非事后选出的枢轴。分钟切换本身不能证明K线完成,须在终端收到下一根数据时核实。拒单、核实平仓、限制解除或数据恢复之后,清除旧区间,要求全部K线从新的开盘时刻开始。
4. 只接受紧接下一根的突破收盘
BUY要求Close(B)>Open(B); 0.5<=(Close(B)−H)/pip<=4.0。SELL的镜像条件为Close(B)<Open(B); 0.5<=(L−Close(B))/pip<=4.0。B必须是紧接下一时段,不能等待更晚的收盘。收盘等于区间边缘、十字线、反向实体或距离过大,都使本周期在不下单的情况下结束。
主BUY例为B=k5; close_time=09:06 UTC; Close=1.20110; distance=3.0 pip。另一个例子收于1.20080=H,因此失败。下一根虽收于1.20110,也不能替代B。之后真正形成的新区间可以产生独立周期,但不能倒过来挽救旧信号。
| UTC时间 | 角色 | 开盘 | 最高 | 最低 | 收盘 |
|---|---|---|---|---|---|
| 09:01 UTC | R1 | 1.20020 | 1.20045 | 1.20000 | 1.20035 |
| 09:02 UTC | R2 | 1.20035 | 1.20070 | 1.20025 | 1.20060 |
| 09:03 UTC | R3 | 1.20060 | 1.20080 | 1.20040 | 1.20050 |
| 09:04 UTC | R4 | 1.20050 | 1.20065 | 1.20020 | 1.20030 |
| 09:05 UTC | R5 | 1.20030 | 1.20075 | 1.20025 | 1.20070 |
| 09:06 UTC | B | 1.20070 | 1.20120 | 1.20065 | 1.20110 |
5. 设定挂单价格与固定保护
合格B收盘后选择P_buy=H+0.1 pip; P_sell=L−0.1 pip。BUY固定S_bid=P_buy−3.5 pip; T_bid=P_buy+8.0 pip,SELL固定S_ask=P_sell+3.5 pip; T_ask=P_sell−8.0 pip。所有价格须符合已声明的最小跳动。偏移量是模型的明确假设,不是优化距离,也不是重建的历史AskK线。
主BUY使用P=1.20081; S_bid=1.20046; T_bid=1.20161,SELL使用P=1.19919; S_ask=1.19954; T_ask=1.19839。提交及成交后都保持这些绝对价位不变。不采用移动止损、保本移动、摊平、部分平仓、反向持仓,也不改用市价单。如果经纪商不支持两个初始退出价位及所要求的到期设置,跳过该事件。
6. 只使用B之后收到的第一组报价
只检查B预定收盘后收到的第一组报价,同时核实B确已完成。要求arrival<=B_close+1.000 s; 0<=quote_age<=250 ms; 0<=spread<=0.6 pip。价格须为正、未交叉且符合最小跳动。还须满足Ask>P_buy for BUY; Bid<P_sell for SELL,即正确报价侧的首次回踩或反抽尚未发生。重新检查UTC窗口、账户无敞口、环境、经纪商当前距离限制、手数、可用保证金、时钟,以及保护和到期支持。
主例报价为09:06:00.100 quote; 09:06:00.120 arrival; Bid/Ask=1.20110/1.20116。只有全部条件通过,才允许带固定保护与到期时间的一次挂单请求。第一组报价不合格、过旧或超时,就消耗许可;不得换用更晚报价。本地显示止损距离为零,不保证服务器接受。终端的滑点参数也不保证挂单的成交价格。
7. 完整保留SELL镜像与正确报价侧
SELL固定区间下沿,要求紧接的阴线收于其下,并在当前Bid仍低于P时,在下沿之下放置Sell Limit。首次正确报价侧回踩或反抽为Bid>=P_sell;BUY使用Ask<=P_buy。确认成交后,BUY退出依据Bid,SELL退出依据Ask。仅凭Bid OHLC不能得知过去Ask是否触及,也不能确定成交优先顺序。
SELL示例成交于1.19919。后续报价Bid/Ask=1.19948/1.19954中,虽然Bid仍低于止损价,Ask已触及止损。报告给出的更差退出为Ask=1.19964; net=−$28.56,超过计划预算。示例现金结果以报告为准,不能选取图上方便的价格。根据Bid几何位置选择的Ask触发价,不是历史Ask OHLC。
8. 区分等待到期与确认账户无敞口
挂单等待截止为D_wait=min(B_close+120 s,12:00 UTC)。按已核实的UTC换算,明确请求该服务器到期时间,并在接受报告中核对。连接正常且校时可靠的计时器也应在D_wait撤回等待意图。时间到达或发送删除请求,并不能证明此前没有成交。解除账户锁定前须核对订单编号、持仓和历史记录。
主周期为B_close=09:06; D_wait=09:08 UTC。迟到回踩或反抽例提供server_expired=09:08:00.000; verified_flat_observed=09:08:00.060,Ask首次回到指价在09:08:00.100发生。不允许补挂。到期支持未知或不被支持时禁止提交。明确的到期拒绝响应error=147终止本周期;绝不能删除到期设置后重试同一事件。
9. 以P为计划价格计算净空间与仓位
计划使用P,不从一次触价推定成交。设c=0.3 exit reserve+0.6 linear round-trip commission=0.9 pip,BUY使用L=(P−S_bid)/pip+c; W=(T_bid−P)/pip−c,SELL使用L=(S_ask−P)/pip+c; W=(P−T_ask)/pip−c。L与W必须为正,并满足W/L>=1.50。正确的入场及退出报价侧已体现点差,不得重复加算。不假设融资费用或其他收费。
采用equity=$10,000; risk_fraction=0.25%; budget=$25; lot_min=lot_step=0.01; lot_max=1.00和lots=floor_step(25/(L×10),0.01)。主计划得出L=4.4; W=7.1; W/L=1.6136364; lots=0.56; planned_loss=$24.64; planned_net_target=$39.76。手数不兼容或保证金不可用时拒绝请求。P是规划假设,不是成交承诺。减少手数不能修复不足的线性净收益风险比。跳空或其他执行条件可能导致损失超过计划预算。
| 观测 | 挂单价格 | 止损 | 目标 | 损失,pip | 净目标,pip | 净W/L | 计划手数 | 计划损失,USD | 计划净目标,USD |
|---|---|---|---|---|---|---|---|---|---|
| BUY | 1.20081 | 1.20046 | 1.20161 | 4.4 | 7.1 | 1.6136364 | 0.56 | 24.64 | 39.76 |
| SELL | 1.19919 | 1.19954 | 1.19839 | 4.4 | 7.1 | 1.6136364 | 0.56 | 24.64 | 39.76 |
| 全新独立形态 / BUY | 1.20131 | 1.20096 | 1.20211 | 4.4 | 7.1 | 1.6136364 | 0.56 | 24.64 | 39.76 |
10. 区分Bid触价、正确报价侧回踩或反抽与成交
对于BUY,报价09:06:30.000; Bid/Ask=1.20081/1.20087只有Bid触及P。Ask真正回到指价时的报价为09:06:40.000; Bid/Ask=1.20075/1.20081,两者是不同的双边观测。主例中,P价成交报告在09:06:40.010已被获知,早于回踩或反抽报价在09:06:40.020被收到,因此按已成交持仓管理,不发送撤单请求。
每次采取行动前先核对已经收到的报告。如果正确报价侧首次触及到达时,最后核实状态仍是挂单,则撤回本事件并请求撤单一次,不保留到第二次触及。未成交例在09:06:40.020请求删除,在09:06:40.080收到确认撤单及账户无敞口。如果回踩或反抽先于下单确认,则记录撤回意图并先核对状态;只有已知挂单编号后才请求撤单一次。撤回之后确认的成交适用下文紧急规则。
| UTC时间 | Bid / Ask | 挂单价格 | 状态 |
|---|---|---|---|
| 09:06:30.000 UTC | 1.20081 / 1.20087 | 1.20081 | 仅Bid触及 |
| 09:06:40.000 UTC | 1.20075 / 1.20081 | 1.20081 | Ask触及指价 |
11. 只撤销一次已失效的挂单想法
订单核实为挂单时,在到期、数据或日历不可用、规定新闻限制、无效报价或spread>0.8 pip时撤回。若成交前正确退出报价侧先到目标,或实际观察到已收盘M1K线重新越回区间边缘,即Close<=H for BUY; Close>=L for SELL,也应撤回。这些是声明的撤单政策,不保证请求比服务器下一次执行更快。
失效例为k6 Close=1.20078<H=1.20080,在下一时段开始后观察到。它于09:07:00.120请求撤单,并在09:07:00.180获账户无敞口确认。之后09:07:20.000的正确回踩或反抽不产生新订单。每个已知订单编号最多发出一次撤单请求。拒绝、冻结限制、断线或超时仍须维持锁定;应核对状态,而非反复删除、补挂或放宽价位。
12. 处理撤单期间发生的成交
竞态例中,一组宽点差报价导致在09:06:30.020发送删除请求。随后服务器在09:06:30.030; P=1.20081成交,并在09:06:30.040被获知。尝试撤单并未消除这笔持仓。删除被拒的报告于09:06:30.080收到。经纪商冻结规则和消息时序可能阻止预期撤单;本例只有所提供报告能确立状态。
撤回意图之后确认的成交,应保留附带保护,在确认后的首组可靠正确报价侧价格上请求紧急平仓一次。本例请求为09:06:30.050,报告退出为Bid=1.20074; net=−$7.28。核实平仓之前继续锁定,未知平仓响应仍未解决。意外缺失初始保护的成交也按此紧急处理。不得为了获接受而移动固定价位,也不得把撤单意图当作零损益交易。
13. 正常成交后按固定持仓时限管理
首次回踩或反抽正常获接受并成交后,维持原保护并采用D_position=min(B_close+10 min,12:00 UTC)。锚点是B,不是较晚成交时刻,也不是挂单等待截止。若此前没有保护退出,则在该时限或之后首次收到可靠、可用的正确报价侧价格时,只请求平仓一次。同一报价下保护触发优先,平仓响应等待期间保护仍有效。
时间退出例采用D_position=09:16 UTC; first_quote=09:16:00.100; arrival=09:16:00.120,报告BUY退出为Bid=1.20076; net=−$6.16。截止时没有报价不代表账户已平,陈旧的上一报价也不能充当边界成交。平仓后核实真实账户状态。平仓超时不允许仅凭假设另开仓或再次发出平仓请求。
14. 未知响应保持未知,并从新K线重新开始
区分placement_permission=B_close+1 s; pending_expiry=B_close+120 s; ack_timeout=request_time+2 s。下单没有响应时,接受与成交均未知;撤单没有响应时,挂单或持仓状态仍未解决。随后参考价格达到目标,不能证明成交或获利。取得权威证据前,成交、退出、P&L均留空,不能重试同一事件。
明确拒绝或确认账户无敞口后,清除旧形态。独立重启例中,B失败在09:06:00.120被观察到,只使用从09:07起新开的K线组成下一组五根区间。其独立B=k12; close=09:13; P=1.20131; S_bid=1.20096; T_bid=1.20211产生一次请求,最终以error=130明确拒绝。旧B及随后看似有利的K线仍保持失败。账户状态不明时,不能仅因过了足够时间就解除新搜索限制。
15. 复现虚构观测与报告结果
下载文件包含14 independent cases; 24 closed bars/case; 336 Bid bars; 15 declared formation windows; 1,375 paired quotes; 1,419 ledger rows。每个案例观察一个声明周期,重启例则为两个。后续报价属于该周期背景,不代表重新进行完整搜索。台账区分12 simulated placements; 4 cancel requests; 2 close requests; 4 supplied fills; 0 live orders。报价发生时刻与收到时刻分开,下一根形成中的报价确认最后一个完成区间,不额外添加已收盘K线。
虚构报价在所列更新之间保持常数,双边数据可复现导出的Bid OHLC,但无法恢复历史Ask路径、排队或成交优先级。扣除声明佣金后,所提供的已平仓净结果为target +$41.44; gap stop −$28.56; time exit −$6.16; cancellation race −$7.28。未成交及未解决案例的执行结果留空。应重新计算完整观测窗口、首次正确侧触及、报告状态转换、手数与金额;这四笔已平仓结果不是业绩统计。
| 状态 | 挂单请求 | 报告成交 | 报告退出 | 虚构净P&L,USD |
|---|---|---|---|---|
| CLOSED_TARGET | 1 | 1.20081 | 1.20161 | +41.44 USD |
| CLOSED_STOP | 1 | 1.19919 | 1.19964 | -28.56 USD |
| CLOSED_TIME | 1 | 1.20081 | 1.20076 | -6.16 USD |
| CLOSED_CANCEL_RACE | 1 | 1.20081 | 1.20074 | -7.28 USD |
| CANCELLED_NO_FILL | 1 | — | — | — |
| PLACEMENT_UNCERTAIN | 1 | — | — | — |
| CANCELLATION_UNCERTAIN | 1 | — | — | — |
16. 用未使用的时序数据检验完整协议
研究前固定区间、突破候选位置、报价侧、成本、时限和撤单规则。保留每个合格窗口及失败的首组报价,而不仅是成交。可靠双边报价才能区分仅Bid触及和Ask回踩或反抽。测量订单结果还须真实的接受、拒绝、撤单及成交证据,OHLC本身不能提供挂单成交模型。
在相同账户假设下评估新闻限制、点差变化、缺失报价、服务器到期、冻结限制、迟到响应及撤单中成交。规则调整改变合格事件时间序列时,应记录该变化。使用未见过的连续时期及现实经纪商条件。目标是边界明确、可检验的首次回踩或反抽假设,虚构机制不能证明交易优势或实盘适用性。
常见问题
BidK线触及P,就证明Buy Limit成交了吗?
没有。Buy Limit的正确回踩或反抽报价侧是Ask,而普通图表显示Bid。即便Ask触及也只是观测,实际成交需要经纪商报告。
可以重挂已到期订单,或用市价单追逐回踩或反抽吗?
不可以。本周期只允许一次挂单。先确认到期或撤单及整个账户无敞口,然后要求全新区间及紧接其后的突破。
服务器返回错误147时,应取消到期设置吗?
不应。服务器到期是模型的一部分。明确的到期拒绝会消耗本周期,支持情况未知或不支持则不能提交。
发出撤单请求就意味着账户无敞口吗?
不是。请求期间可能成交,冻结限制或迟到响应也可能阻止删除。须核对订单、持仓及历史;撤回后确认的成交应保留保护并紧急平仓。
下单或撤单响应未知是什么意思?
表示订单状态未解决。继续锁定账户并将执行结果留空。超时或之后参考价格到目标都不能证明拒绝、撤单或盈利,也不允许另发订单。
这些例子证明限价单剥头皮盈利吗?
不能。虚构双边观测和报告用于审查机制,四笔平仓金额不能确立胜率、期望值或稳健交易优势。
来源与研究说明
官方资料说明订单报价侧、挂单到期、删除及经纪商限制。本文区间、阈值、时限与虚构报告均为教学假设,不证明最优参数、历史执行或盈利能力。本规范不调用交易API。
- MetaTrader4: order types and Bid/Ask triggers
- MQL4: OrderSend and pending expiry restrictions
- MQL4: OrderDelete
- MQL4: broker contract, stop and freeze properties
教学用限价单规范。双边报价与报告均为虚构,不涉及真实订单、历史回测或实测盈利。