Breakout Strategy with Prop Firm Challenge Helper
这是一个通道突破EA,当价格突破 configurable 回溯期的最高价或最低价时,分别下BuyStop和SellStop挂单,止损基于通道对侧边界进行追踪。同时内置自营公司挑战辅助功能,监控每日亏损限额和盈利目标,当触及任一阈值时自动平仓和撤单。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
这个 EA 从未交易的原因:转换后没有留下任何开仓规则。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略核心是Donchian通道突破:使用过去N根K线的最高价和最低价形成交易通道,价格突破通道上轨时做多,突破下轨时做空。入场条件为:无同方向持仓且挂单价位与当前价的距离满足经纪商止损级别要求时,放置BuyStop或SellStop挂单,触发价位为通道边界加/减一个tick。出场条件采用双重机制:一是追踪止损,使用出场周期的最低价(多单)或最高价(空单)作为动态止损位;二是当价格反向穿越追踪止损位时直接平仓。仓位管理基于风险百分比模型:根据每笔交易的风险占权益的百分比(默认1%)计算手数,使用OrderCalcProfit估算每手止损金额,再反算合适手数,同时考虑手数步长、最小/最大手数限制以及可用保证金。资金管理方面,EA内置自营公司挑战辅助功能,通过isPassed检查权益是否达到目标,通过isDailyLimit检查当日累计亏损是否超过限额,二者均调用ClearAll函数关闭所有持仓和挂单。
优势
- 风险百分比仓位管理模型科学合理,每笔交易风险可控
- 内置自营公司挑战辅助功能,自动监控盈利目标和每日亏损限额
- 追踪止损机制灵活,使用通道对侧边界作为动态止损位
- 考虑了经纪商交易限制,包括止损级别、手数限制和保证金检查
- 使用新K线检测避免同一K线内重复交易
劣势
- ATR指标句柄在PositionManaging中每次调用都重新创建,未在OnInit中缓存,存在资源泄漏风险
- OrderManaging函数返回的orders变量始终为0,逻辑存在缺陷
- 每日亏损计算假设历史交易按时间倒序排列并使用break退出,可能遗漏当日早期交易
- ClearAll函数未过滤魔术号和交易品种,可能关闭其他EA的持仓和挂单
- 缺乏点差过滤,在高点差环境下突破信号可能被虚假触发
- 追踪止损修改条件'0.1*ATR'硬编码,无法通过参数调整
改进建议
- 将ATR指标句柄在OnInit中创建并缓存,在OnDeinit中释放,避免每次调用时重复创建造成资源泄漏
- ClearAll函数应增加魔术号和交易品种过滤,避免误关闭其他EA的订单和持仓
- 每日亏损计算应遍历所有历史交易而非依赖倒序break逻辑,确保准确统计当日所有盈亏
风险评估
总体风险: 中等
- ClearAll函数无魔术号过滤,可能在自营公司挑战触发时关闭所有EA的持仓,造成意外损失
- ATR句柄资源泄漏长期运行可能导致内存耗尽
- 每日亏损限额计算可能不准确,导致自营公司挑战保护失效
- 缺乏点差过滤和滑点保护,突破策略在高点差或低流动性时易受虚假信号影响
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
BOT_NAME | Breakout Strategy with Prop Firm Challenge Helper | EA名称标识 |
EXPERT_MAGIC | 1 | EA魔术号,用于标识本EA的订单和持仓 |
ENTRY_PERIOD | 20 | 入场通道回溯周期,计算最高价和最低价的K线数量 |
ENTRY_SHIFT | 1 | 入场通道起始偏移量,1表示从上一根K线开始计算 |
EXIT_PERIOD | 20 | 出场通道回溯周期,用于计算追踪止损 |
EXIT_SHIFT | 1 | 出场通道起始偏移量 |
isChallenge | false | 是否启用自营公司挑战模式 |
PASS_CRITERIA | 110100.0 | 挑战通过的资金权益目标 |
DAILY_LOSS_LIMIT | 4500.0 | 每日最大亏损限额 |
RISK_PER_TRADE | 1.0 | 每笔交易风险占权益的百分比 |
TRADING_TIMEFRAME | PERIOD_H1 | 交易使用的时间周期 |
同类 EA:突破
回测是历史模拟,不代表未来收益,不构成投资建议。