EA-36603 · 新闻交易
SampleDetectEconomicCalendar
该EA通过MQL5经济日历API检测USD货币对的高影响力新闻事件,在新闻发布前5分钟内放置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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念是新闻突破交易(Straddle),在重要经济数据发布前同时放置买入止损和卖出止损挂单,捕捉新闻引发的剧烈波动。入场条件为:货币对基准货币为USD,且在当前时间前后4小时到1天范围内存在高重要性日历事件,且服务器时间处于新闻发布前5分钟内。出场条件包括止损、止盈、挂单到期时间以及固定点数移动止损。仓位管理方面,提供了固定手数和风险百分比两种模式,风险百分比模式按账户余额3%除以止损点数计算手数。资金管理包括最小/最大手数校验、手数步长校验以及保证金充足性检查。该策略属于半自动化,仅交易USD为基础货币的品种,非USD品种直接跳过。
优势
- 利用MQL5原生经济日历API获取新闻数据,数据来源可靠且实时
- 双向挂单策略可捕捉新闻发布后任意方向的剧烈波动
- 包含完善的资金管理检查:手数范围校验、步长校验和保证金检查
- 通过挂单注释标记避免重复下单,逻辑清晰
- 支持移动止损功能,可在盈利后锁定利润
劣势
- 仅限USD基础货币品种交易,适用范围窄,缺少对报价货币为USD的支持
- OnTick函数为空,FuncTradeNews从未被调用,EA实际上不会执行任何交易逻辑
- 新闻数据数组固定大小1000但未做边界检查,且循环使用ArraySize而非实际新闻计数k
- 挂单距离未考虑SYMBOL_TRADE_STOPS_LEVEL限制,可能导致订单被拒绝
- 缺乏新闻后订单管理逻辑,如新闻发布后未触发的挂单清理策略不完善
改进建议
- 在OnTick或OnTimer中调用FuncTradeNews函数,使EA真正能够执行交易逻辑
- 扩展新闻过滤逻辑以支持报价货币为USD的品种,如EURUSD和GBPUSD
- 添加新闻发布后的挂单清理机制,避免过期未触发的挂单堆积
- 使用动态数组或实际计数k替代ArraySize来遍历新闻数据,避免无效循环
风险评估
总体风险: 中等
- 核心交易函数未被调用,EA实际处于无效状态,可能给用户造成虚假安全感
- 新闻交易滑点风险大,挂单价格可能因剧烈波动产生大幅滑点
- 双向挂单在剧烈波动时可能同时触发,导致双倍亏损敞口
- 缺少点差过滤,新闻前后点差扩大可能导致订单异常
评估得分
代码质量2.0
策略逻辑2.0
风险管理3.0
稳健性1.0
创新性3.0
文档1.0
综合2.0
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Tradenews | false | 是否启用新闻交易功能 |
PriceVolume | 0.01 | 固定交易手数 |
PriceSL | 300 | 止损点数(0=不使用) |
PriceTP | 900 | 止盈点数(0=不使用) |
trailingstoppoint | 200 | 移动止损点数 |
Expirydate | PERIOD_D1 | 挂单到期时间周期 |
UseMoneyManagement | false | 是否启用资金管理自动计算手数 |
Buydistance | 400 | 买入挂单距当前价的点数距离 |
Selldistance | 400 | 卖出挂单距当前价的点数距离 |
同类 EA:新闻交易
回测是历史模拟,不代表未来收益,不构成投资建议。