Trebuchet Bracket Engine
- 专家
- 版本: 1.0
- 激活: 5
Trebuchet Bracket Engine 是一款 MetaTrader 4 智能交易系统,交易日内波幅扩张突破。在锚点时刻(默认为日开盘)它测量最近 N 天的波幅,在锚点上方 K x 波幅处挂 buy stop、下方挂 sell stop,止损设在锚点,并在日终离场时全部平仓。每天每个方向最多一笔交易;不使用网格、马丁格尔、加仓摊平,也不隔夜持仓(除非关闭日终离场)。
快速开始
- 将 EA 加载到该品种的一个图表上(任意周期;逻辑使用日线和时钟),并开启 AutoTrading 与 "Allow live trading"。
- 先用默认值:4 天 Dual Thrust 波幅,触发距离 0.50 x 波幅,止损在锚点,服务器时间 21:00 停止入场、22:00 日终离场,风险 1 %。
- 锚点之后面板显示 BRACKET ARMED,并出现两张挂单:buy stop 和 sell stop。
- 检查:在策略测试器中以可视模式运行 XAUUSD M15 两周,可看到每个区间和交易。
- 推送提醒:设置 MetaQuotes ID(工具 > 选项 > 通知),并将 Push Notifications = true。
交易逻辑
波幅:Range Basis 为 Dual Thrust (max of HH-LC, HC-LL) 时使用今天之前已完成的 N 天(Range Lookback):HH/LL 为其最高价和最低价,HC/LC 为最高和最低收盘价,波幅 = HH-LC 与 HC-LL 中较大者。Average daily range = 这些天 high-low 的平均值;Previous day range = 昨天的 high-low。
锚点:在 Anchor Time 固定锚点价格。00:00 使用日开盘价(服务器日第一个报价)。其他时间使用该时刻或之后第一根K线的开盘价。
触发价:买入触发 = 锚点 + Buy Trigger Distance x 波幅,卖出触发 = 锚点 - Sell Trigger Distance x 波幅。若 波幅 / 日线 ATR(Daily ATR Period)低于 Minimum Range 或高于 Maximum Range,当天不设区间(RANGE TOO NARROW / RANGE TOO WIDE)。
Entry Orders:
- Pending stop orders:锚点后立即挂出 buy stop 和 sell stop。若触发价距离小于经纪商止损水平,该方向改由 EA 自行监控并以市价入场(VIRTUAL)。
- Market order on touch:不挂单;Ask 到达买入触发时买入,Bid 到达卖出触发时卖出(点差超过 Max Spread for Market Entries 时跳过)。
设定区间时触发价已被越过的方向(例如重启后)标记为 MISSED,不会追单。每个方向每天最多交易一次,Max Trades per Day 限制总笔数。Cancel the Opposite Order on Fill 在一方成交时删除另一方。
Stop Loss Placement:
- At the anchor:止损在锚点价格。
- At the opposite trigger (stop and reverse):多单止损在卖出触发、空单止损在买入触发,假突破可转为反向交易。
- Range fraction from entry:入场价减去(空单加上)Stop Distance for Range Fraction x 波幅。
必要时止损会放宽到经纪商最小距离。
离场:Take Profit 按止损距离的该 R 倍数设置目标(0 = 无目标)。Breakeven Trigger 在盈利达到该 R 数时把止损移到入场价。到 Entry Cutoff 删除全部挂单;到 Day Exit Time 平掉 EA 的全部仓位,前一服务器日遗留的仓位立即平仓(留空 = 隔夜持有)。平仓、删单和修改止损只在冻结距离之外且交易时段内发送,否则重试。
Lot Sizing:Fixed lots 按 Fixed Lots 交易。Risk % of balance:手数 = 余额 x Risk per Trade / 100 / 每手止损亏损,按步长向下取整并受 Max Lots 限制。低于经纪商最小手数时使用最小手数,因此小账户或日波幅很大的黄金可能超过设定的风险百分比。每次下单前检查可用保证金(NO MARGIN)。
建议:XAUUSD 和 GBPUSD。EURUSD 等低波动货币对在默认设置下结果较弱。时间为经纪商服务器时间(按 GMT+2/+3 服务器设计)。值得优化:Range Lookback、两个触发距离、Stop Loss Placement、Day Exit Time 和 Maximum Range。
面板按钮
- [-] / [+]:折叠为胶囊条(TREBUCHET 加状态)或展开。
- <>:将面板移到图表的下一个角落。
- PAUSE / RESUME:PAUSE 删除挂单并阻止新入场(已有仓位继续管理);RESUME 在今日区间仍有效时重新挂单。保存在全局变量中,重启后保留。
- BRACKET ON / BRACKET OFF:显示或隐藏图表线条。
- CLOSE ALL:第一次点击显示 CONFIRM?,4 秒内再次点击则平掉该品种上 EA 的全部仓位并删除全部挂单。
重新加载 EA 时,折叠、角落和区间线恢复为输入参数。
面板读数
- 标题指示灯:区间布防或有持仓时为绿色,暂停时为琥珀色,其余为灰色。
- DAY STATE:标签 WAITING FOR ANCHOR、BRACKET ARMED、LONG LIVE、SHORT LIVE、PAUSED、DAY QUOTA USED、DAY DONE(停止入场后)、BRACKET SPENT(两个方向都已用完)、RANGE TOO NARROW、RANGE TOO WIDE 或 NO DAILY HISTORY;日期;ANCHOR 时间与价格;CUTOFF 和 EXIT 时间。
- RANGE ENGINE:回看天数与基准;RANGE 数值及两个 K;HH、LL、HC、LC;波幅 / ATR 的 0 到 3 刻度条,标出两个界限;比率、界限以及 OK 或原因。
- BRACKET:刻度条上有卖出触发(珊瑚色)、锚点(青铜色)和买入触发(青绿色);标记显示 Bid,越过触发价时变色。下方:SELL、ANCHOR 和 BUY 价格及到各触发价的点数距离。右侧:STOP AT ANCHOR、STOP+REVERSE 或 STOP x.xxR,以及以 R 表示的目标。
- 方向行 LONG 和 SHORT:READY、BUY STOP AT / SELL STOP AT 价格、WATCHING 价格 (VIRTUAL)、FILLED - IN TRADE、TRADED TODAY、MISSED: PRICE ALREADY BEYOND、SKIPPED: NO MARGIN 或 ORDER FAILED、CANCELLED: OCO、CUTOFF、QUOTA、PAUSED、MANUAL 或 NEW DAY、NO BRACKET TODAY。
- POSITION:FLAT,或方向、手数、入场价和浮动盈亏;SL、TP、R 和 BE(止损到保本时为 [x])。空仓时:TODAY 交易数 / 上限和 DAY P/L,或 NEW ENTRIES PAUSED。
- ACTIVITY:最近三个事件及时间:BRACKET、NO BRACKET、BUY STOP / SELL STOP 已挂出、BUY FILLED / SELL FILLED、STOP CANCELLED、MISSED、SKIPPED、ORDER FAILED、BREAKEVEN、CLOSED(日终、前一日、手动)、CLOSE ALL、PAUSED by user、RESUMED by user。
- 底行:该品种上 EA 的 TRADES、WIN 百分比和 NET 已平仓利润。
图表线条
从锚点到日终离场:青绿色 BUY TRIGGER 线、珊瑚色 SELL TRIGGER 线和青铜色虚线 ANCHOR,今日带标签;Past Days Drawn on Chart 天的历史区间以细线显示(被过滤时为灰色)。仅在 H4 及以下周期显示。
提醒
Pop-up Alerts 和 Push Notifications 在锚点设定区间、每次成交和每次平仓时触发。策略测试器中不触发。
附带影响
- 暂停期间全局变量 TBE_PAUSE_<品种>_<magic> = 1。
- 图表对象前缀 TBE_P_(面板)和 TBE_Z_(线条),随 EA 移除。每秒一次计时器。不写文件、不用 DLL。
bool paused = GlobalVariableCheck("TBE_PAUSE_XAUUSD_26110901"); 输入参数
Range Engine
- Range Lookback(4 天)、Range Basis(Dual Thrust (max of HH-LC, HC-LL);或 Average daily range、Previous day range)。
- Buy Trigger Distance(0.50)和 Sell Trigger Distance(0.50):x 波幅。
- Daily ATR Period(14 天)、Minimum Range(0.0 x ATR,0 = 关闭)、Maximum Range(2.5 x ATR,0 = 关闭)。
时间表
- Anchor Time(00:00 = 日开盘)、Entry Cutoff(21:00)、Day Exit Time(22:00,留空 = 关闭):服务器时间,锚点早于停止入场,停止入场不晚于离场。
订单与离场
- Entry Orders(Pending stop orders;或 Market order on touch)。
- Stop Loss Placement(At the anchor;At the opposite trigger (stop and reverse);Range fraction from entry)、Stop Distance for Range Fraction(0.30 x 波幅)。
- Take Profit(0.0 R = 只在日终离场)、Breakeven Trigger(0.0 R = 关闭)。
- Max Trades per Day(2)、Cancel the Opposite Order on Fill(false)。
资金管理
- Lot Sizing(Risk % of balance;或 Fixed lots)、Fixed Lots(0.10)、Risk per Trade(1.0 %)、Max Lots(5.0)。
- Max Spread for Market Entries(0 点 = 关闭)。
执行
- Magic Number(26110901,同一品种每个图表用不同值)、Max Slippage(30 点)、Order Comment(Trebuchet)。
显示与提醒
- Show Panel(true)、Draw Bracket Levels(true)、Past Days Drawn on Chart(5)、Start Collapsed(false)、Panel Scale(1.0,0.5-2.5)。
- Pop-up Alerts(true)、Push Notifications(false)。
典型设置
- 经典日内区间(XAUUSD、GBPUSD):默认值。
- 止损反手:Stop Loss Placement = At the opposite trigger (stop and reverse),Max Trades per Day 2。
- 伦敦区间:Anchor Time 08:00、Entry Cutoff 16:00、Day Exit Time 21:00、Range Basis = Average daily range,两个触发距离 0.40。
- 目标与保护:Take Profit 2.0、Breakeven Trigger 1.0、Cancel the Opposite Order on Fill true。
说明
- 重启后区间根据日线重建;现有订单保持其方向,已越过的触发价不会追单。
- 挂单不会延续到新的一天。
- 只有在 Take Profit 大于 0 时才允许 Day Exit Time 留空;否则交易只能在止损处平仓。
- 策略测试器使用相同规则;面板和线条仅在可视模式显示。请先在模拟账户测试。
风险提示
外汇和差价合约保证金交易具有很高的亏损风险。过往或模拟结果不保证未来结果。本 EA 不承诺盈利;请只使用您能承受损失的资金。
