Recoil Retrace Engine
- 专家
- 版本: 1.1
- 更新: 31 十月 2026
- 激活: 5
Recoil Retrace Engine 是一款 MetaTrader 4 智能交易系统 (EA),专门交易强势行情之后的回撤。它寻找从已确认摆动点出发、幅度达到 ATR 若干倍的推动腿,等待价格回撤进入回撤区 (默认 38.2-61.8 %),顺着推动方向入场,在推动极值处部分止盈,其余仓位持有至延伸目标。每个品种和 magic number 同时只持有一笔仓位;无网格、无马丁、无摊平、无对冲。
快速开始
- 将 EA 加载到一个图表 (推荐 H1,H4 和 D1 也可),开启 AutoTrading 和 "Allow live trading"。
- 先使用默认值:回撤区 38.2-61.8,Entry Trigger = Rejection close,每笔风险 1 %。
- 面板在出现合格推动腿之前显示 SCANNING,之后依次为 ARMED、IN POCKET 和 IN TRADE。
- 快速检查:在 EURUSD H1 上用可视化策略测试器回测两个月,会画出每条推动腿、回撤区和目标。
- 推送:在 工具 > 选项 > 通知 中填写 MetaQuotes ID,并设置 Push Notifications = true。
交易逻辑
推动腿:摆动低点 (高点) 是指其最低价 (最高价) 超出两侧各 Swing Strength 根 K 线的那根 K 线;这些 K 线收盘后即确认。做多时,起点为 Swing Lookback 根 K 线内最近确认的摆动低点,极值为其后的最高价 (做空相反)。推动腿至少为 Min Impulse Size x ATR (ATR Period,最近收盘 K 线),且用时不超过 Max Impulse Bars 根 K 线时才合格。若两个方向都合格,取幅度较大者。已交易过的推动腿不会再次武装。
趋势过滤:开启 Higher-Timeframe Trend Filter 时,只有当 Trend Timeframe 的最近收盘 K 线收在其 EMA (Trend EMA Period) 之上才允许做多,收在其下才允许做空。Current = next higher:M1 对应 M5,M5 对应 M15,M15 对应 H1,M30 和 H1 对应 H4,H4 对应 D1,D1 对应 W1,W1 和 MN1 对应 MN1。该周期历史不足时过滤器为中性。
回撤:从极值 (0 %) 量到起点 (100 %)。回撤区位于 Pocket Near Edge 与 Pocket Far Edge 之间。入场前出现新极值会延长推动腿并移动回撤区。当 K 线收盘越过 Invalidation Level 时设置变为 INVALIDATED;自极值以来收盘 K 线超过 Setup Expiry 根时变为 EXPIRED。
Entry Trigger:
- Rejection close:一根已收盘 K 线进入回撤区,按推动方向收盘 (做多为阳线),未越过 Pocket Far Edge,且收在其区间中远离回撤区的一半。下一根 K 线开盘时市价入场;若此时 GATE 关闭 (例如交易时段稍后才开),则在该 K 线结束前持续重试。
- Pocket touch:价格触及 Pocket Near Edge 的瞬间市价入场。最快,无确认。
- Resume break:某根 K 线触及回撤区后,Ask 突破其最高价时做多 (Bid 跌破其最低价时做空)。每根新的触及 K 线都会移动触发价。
当到 TP1 的距离小于 Min Reward:Risk to TP1 x 止损距离时跳过 (SKIPPED: reward:risk,后续 K 线重试);TP2 比经纪商最小止损距离还近时跳过 (SKIPPED: target too close);GATE 不是 OPEN 时也不入场。
出场:
- Stop Loss Placement:Beyond invalidation level (做多为 Invalidation Level 减 Stop Buffer x ATR,做空为加) 或 Beyond leg origin (起点减同样缓冲)。必要时扩大到经纪商最小距离。
- TP1 为推动腿极值。到达时平掉 TP1 Partial Close 百分比的手数 (按手数步长向下取整)。若部分或剩余低于最小手数,则不平仓 (TP1 REACHED (no split))。100 为全部平仓 (TP1 FULL EXIT),0 为不平。
- Breakeven at TP1 随后将止损移到入场价。
- TP2 = 极值 + 推动腿的 TP2 Extension 百分比,作为订单止盈。0 表示 TP2 位于极值。
- Trail After TP1:TP1 之后每根新 K 线将止损设为上一收盘价减数值 x ATR (做多),只收紧不放宽。
- Max Bars Before TP1:若在该数量 K 线内未到 TP1,则市价平仓 (TIME STOP)。
- 平仓和修改止损只在经纪商冻结距离之外且品种交易时段内发送;否则在下一个 tick 重试。
Lot Sizing:Fixed lots 使用 Fixed Lots。Risk % of balance:手数 = 余额 x Risk per Trade / 100 / 每手止损亏损。按步长向下取整并受 Max Lots 限制;低于经纪商最小值时使用最小手数,因此小账户实际风险可能更大。每次下单前检查可用保证金,不足时手数减半直至可用 (连最小手数都不够则 NO MARGIN)。
推荐:主要货币对和黄金的 H1;H4 和 D1 交易较少。M15 及以下点差相对 ATR 较大,Max Spread 会阻止大多数入场。值得优化:Min Impulse Size、Swing Strength、回撤区两边、Entry Trigger、Min Reward:Risk to TP1 和 Trail After TP1。
面板按钮
- [-] / [+]:将面板折叠为胶囊 (显示 RECOIL 和状态) 或展开。
- <>:将面板移到下一个图表角落 (左上、右上、右下、左下)。
- PAUSE / RESUME:停止或允许新入场;已开仓位继续管理。保存在全局变量中,重启、切换周期和重新加载后仍保留。
- ZONES ON / ZONES OFF:显示或隐藏图表标注。折叠、角落和标注在重新加载 EA 时恢复为输入值。
面板读数
- 标题 LED:绿色 = GATE OPEN,琥珀色 = PAUSED,珊瑚色 = 入场被阻止。
- ENGINE STATE:状态 SCANNING (无推动腿)、ARMED (已找到推动腿,等待回撤)、IN POCKET (价格已触及回撤区,等待触发)、IN TRADE。右侧:BUY SIDE、SELL SIDE 或 NO LEG。TREND:周期、EMA 周期以及 BULL、BEAR、NEUTRAL 或 OFF。GATE:OPEN、PAUSED、ALGO TRADING OFF、MARKET CLOSED、OUT OF SESSION 或 SPREAD HIGH。
- RECOIL GAUGE:DEPTH 为当前回撤百分比;标记在色带上移动,到近边为青色,回撤区为琥珀色,到失效位为深琥珀色,之后为珊瑚色。LEG 显示推动腿的 ATR 倍数和 K 线数。无推动腿时显示 WAITING FOR AN IMPULSE。
- LEVELS:TP2、TP1、POCKET (价格区间)、INVALID 和 STOP,以及与 Bid 的距离 (pts)。持仓时 TP2 和 STOP 取自订单,TP1 处理后显示 DONE。
- POSITION:FLAT 或方向、手数、入场价及账户货币浮动盈亏;阶段 TP1 PENDING、TRAILING 或 RUNNER;持仓点数和 K 线数。空仓时:WAITING FOR SETUP 或 NEW ENTRIES PAUSED。
- ACTIVITY:最近三条事件及服务器时间:ARMED、IN POCKET、INVALIDATED、EXPIRED、ENTRY、TP1 PARTIAL、TP1 FULL EXIT、TP1 REACHED (no split)、BREAKEVEN、TIME STOP、CLOSED、ORDER FAILED、NO MARGIN、SKIPPED: reward:risk、SKIPPED: target too close、PAUSED by user、RESUMED by user。
- 底部行:TRADES (已平仓交易,部分平仓只计一次)、WIN 百分比和 NET 已平仓盈亏 (含隔夜利息和佣金),仅统计本品种和本 magic number。
图表标注
推动腿线 (做多青色,做空珊瑚色) 从 ORIGIN 连到极值。琥珀色方框加近边点线标出 POCKET,珊瑚色虚线为 INVALID,绿色点线为 TP1 EXTREME,绿色点划线为 TP2 +27.2 (您的延伸值)。标注延伸到设置到期,绘制在 K 线后方。
提醒
Pop-up Alerts 和 Push Notifications 在设置 ARMED、ENTRY、到达 TP1 以及交易 CLOSED 时触发。策略测试器中不发送。
附加影响
- 全局变量 RRE_PAUSE_<symbol>_<magic> = 1 表示暂停中。
- 全局变量 RRE_T1_<symbol>_<magic>_<open time> 保存当前仓位的 TP1 价格 (未处理为正,处理后为负),平仓后删除。若缺失,TP1 视为已处理:不部分平仓、不保本,追踪止损仍有效。
- 全局变量 RRE_LEG_<symbol>_<magic> 保存最近一次已交易推动腿的起点时间 (做空为负),重启后不会重复交易同一条推动腿。
- 前缀为 RRE_P_ (面板) 和 RRE_Z_ (标注) 的图表对象,随 EA 移除。每秒一次的定时器刷新面板。不写文件,不用 DLL。
bool paused = GlobalVariableCheck("RRE_PAUSE_EURUSD_26103101"); 输入参数
推动腿
- Swing Strength (2):摆动点两侧的 K 线数。
- Min Impulse Size (2.0):推动腿最小 ATR 倍数。
- Max Impulse Bars (20):起点到极值的最多 K 线数。
- Swing Lookback (120):搜索起点的 K 线数。
- ATR Period (14)。
回撤区与入场
- Pocket Near Edge (38.2) 和 Pocket Far Edge (61.8):回撤区占推动腿的百分比。
- Invalidation Level (78.6):收盘越过即取消设置。
- Entry Trigger (Rejection close):Rejection close、Pocket touch 或 Resume break。
- Setup Expiry (30):极值之后的 K 线数。
- Min Reward:Risk to TP1 (0.5):0 = 关闭。
趋势过滤
- Higher-Timeframe Trend Filter (true)。
- Trend Timeframe (Current = next higher)。
- Trend EMA Period (50)。
出场
- Stop Loss Placement (Beyond invalidation level):或 Beyond leg origin。
- Stop Buffer (0.25):额外 ATR 距离。
- TP1 Partial Close (50):TP1 平仓百分比。
- Breakeven at TP1 (true)。
- TP2 Extension (27.2):超出极值的推动腿百分比。
- Trail After TP1 (1.5):ATR 倍数,0 = 关闭。
- Max Bars Before TP1 (0):0 = 关闭。
资金管理
- Lot Sizing (Risk % of balance):或 Fixed lots。
- Fixed Lots (0.10)。
- Risk per Trade (1.0):余额百分比。
- Max Lots (5.0)。
过滤与执行
- Max Spread (30):ATR 的百分比,0 = 关闭。
- Session Start Hour (0) 和 Session End Hour (0):允许新入场的服务器小时;相等 = 24 小时;可跨午夜。
- Magic Number (26103101):同一品种的每个图表使用不同值。
- Max Slippage (30):点。
- Order Comment (Recoil)。
显示与提醒
- Show Panel (true)、Draw Leg and Pocket (true)、Start Collapsed (false)、Panel Scale (1.0,0.5-2.5)。
- Pop-up Alerts (true)、Push Notifications (false)。
典型设置
- 均衡 H1 (主要货币对、黄金):全部默认。
- 确认型黄金 H1:Entry Trigger = Resume break,Min Impulse Size 2.5,Trail After TP1 2.0。
- 耐心 H4/D1 波段:Swing Strength 3,Pocket Near Edge 50,Stop Loss Placement = Beyond leg origin,Min Reward:Risk to TP1 0.8。
- 快速离场:TP1 Partial Close 100,Max Bars Before TP1 24,Breakeven at TP1 false。
说明
- 重启后,设置会在下一根 K 线根据历史重建;已开仓位凭其 TP1 记录继续管理。
- 策略测试器使用相同规则;面板和标注只在可视化模式显示。
- 请先在模拟账户测试。
风险提示
保证金外汇和差价合约交易具有很高的亏损风险。过去或模拟的结果不保证未来结果。本 EA 不承诺盈利;请只使用您能承受损失的资金。
