MACD Sample
该EA使用MACD柱状图交叉信号结合EMA趋势过滤来产生买卖信号。它实现了移动止损管理和止盈目标来管理仓位出场。策略仅在MACD信号确认动量且EMA确认当前趋势方向时才进场交易。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | +4.96% | +4.30% | 3.36% | 127 | 55.60% | 1.07 | 1.48 | 5 | +$4.21 | 可靠 |
| GBPUSD | +5.83% | +5.04% | 2.55% | 124 | 49.60% | 1.06 | 2.29 | 5 | +$4.93 | 可靠 |
| USDJPY | -5.73% | -5.00% | 7.71% | 124 | 55.30% | -1.11 | -0.74 | 4 | −$4.72 | 可靠 |
| XAUUSD | +49.79% | +39.64% | 63.00% | 127 | 54.00% | 0.83 | 0.79 | 6 | +$41.49 | 可靠 |
在 4 个有可信结果的品种中,3 个盈利。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
和同类(动量)在同一品种上有可信结果的 EA 相比:EURUSD 好于 85%(共 68 个);GBPUSD 好于 94%(共 66 个);USDJPY 好于 12%(共 68 个);XAUUSD 好于 77%(共 75 个)
按月看
| 品种 | 盈利月份占比 | 最好的月份 | 最差的月份 |
|---|---|---|---|
| EURUSD | 69% | +3.11% 2026-04 | -2.01% 2026-03 |
| GBPUSD | 62% | +2.60% 2025-12 | -1.61% 2026-01 |
| USDJPY | 31% | +2.42% 2025-12 | -2.50% 2026-01 |
| XAUUSD | 54% | +55.05% 2026-02 | -20.28% 2026-04 |
根据回测净值曲线计算(约每两天一个点),只统计可信结果。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
该EA的核心策略是基于MACD指标的信号线交叉进行交易,同时使用EMA作为趋势方向过滤器。做多入场条件为:MACD主线在零轴下方、MACD主线从下方穿越信号线上方、MACD绝对值大于开仓阈值、且当前EMA值大于前一根EMA值(确认上升趋势)。做空入场条件对称相反:MACD主线在零轴上方、MACD主线从上方穿越信号线下方、MACD值大于开仓阈值、且当前EMA值小于前一根EMA值(确认下降趋势)。出场方面,做多平仓条件为MACD在零轴上方发生死叉且MACD值大于平仓阈值;做空平仓条件为MACD在零轴下方发生金叉且MACD绝对值大于平仓阈值。仓位管理采用固定手数(InpLots=0.1),没有加仓或减仓逻辑。资金管理方面仅有自由保证金检查,无最大亏损限制或权益保护机制。移动止损在盈利超过设定点数后将止损跟随至当前价格减去 trailing stop 值的位置,但未设置初始止损。
优势
- 策略逻辑清晰,使用经典的MACD交叉加EMA趋势过滤组合,易于理解和验证
- 实现了移动止损功能,可以在盈利仓位上锁定部分利润,降低回撤风险
- 包含完整的参数校验(手数范围、止盈止损与StopsLevel关系),防止因参数错误导致异常交易
- 使用面向对象封装,代码结构良好,便于维护和扩展
劣势
- 开仓时不设置初始止损(SL=0.0),仅依赖移动止损,如果市场快速反转可能造成巨额亏损
- 固定手数交易,没有根据账户权益或波动率进行仓位调整,缺乏动态资金管理
- 没有新K线检测机制,每个tick都可能触发交易逻辑,在快速行情中可能重复开仓或频繁修改
- 没有点差过滤,在高点差环境下MACD阈值可能被点差吞噬导致亏损交易
- 平仓后立即可以重新开仓,缺少冷却期外的方向判断保护,可能在震荡行情中反复亏损
改进建议
- 在开仓时设置初始止损,而不是仅依赖移动止损,以限制最大单笔亏损
- 添加新K线检测逻辑,避免同一根K线内多次触发交易信号,减少不必要的交易成本
- 引入基于ATR的动态仓位管理和阈值设定,使策略能适应不同波动率的市场环境
风险评估
总体风险: 中等
- 开仓时无初始止损,极端行情下可能面临无限风险敞口
- 固定手数不随账户权益调整,连续亏损时风险比例会逐渐升高
- 缺少新K线检测和点差过滤,可能在不利条件下频繁交易
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
InpLots | 0.1 | 固定交易手数 |
InpTakeProfit | 50 | 止盈点数(以点为单位) |
InpTrailingStop | 30 | 移动止损点数(以点为单位) |
InpMACDOpenLevel | 3 | MACD开仓信号阈值(以点为单位) |
InpMACDCloseLevel | 2 | MACD平仓信号阈值(以点为单位) |
InpMATrendPeriod | 26 | EMA趋势判断周期 |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。