Divergence Trader
该EA基于快速和慢速简单移动均线之间的背离进行交易。当背离值在正值定义范围内时开多仓,在负值定义范围内时开空仓。包含移动止损、保本止损、账户整体盈亏平仓以及加仓功能。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于两条不同周期的SMA(默认7和88)之间的背离值,通过计算当前背离与上一期背离的变化率来判断市场动能的衰减,属于均值回归逻辑。入场条件为:买入信号要求背离值在DVBuySell(0.0011)到DVStayOut(0.0079)之间,卖出信号要求背离值在负DVStayOut到负DVBuySell之间,即只在中度背离时入场,过度背离时观望。出场条件依赖固定止损止盈(默认550点),另支持移动止损和保本止损功能,但SignalCloseBuy和SignalCloseSell始终返回false,缺少主动平仓信号。仓位管理使用固定手数(默认0.1手),MultyOpen允许加仓但受MaxVolume(0.5手)限制且仅允许同方向加仓。资金管理方面有账户整体盈亏平仓功能(BasketProfit/BasketLoss),可在达到指定盈利或亏损时关闭所有持仓。
优势
- 背离区间设计合理,设有观望区间(DVStayOut),避免在极端背离时盲目入场
- 包含完整的止损止盈检查机制,确保订单符合交易所最小止损距离要求
- 账户整体盈亏保护功能可防止极端行情下的过度亏损或锁定整体利润
- 代码结构清晰,函数分工明确,易于理解和修改
- 使用MQL5标准库类(CTrade、CSymbolInfo等),符合现代MQL5编程规范
劣势
- SignalCloseBuy和SignalCloseSell始终返回false,缺少基于策略逻辑的主动平仓信号,完全依赖止损止盈出场
- 背离计算方式不够直观,dv1-dv2的公式实际等价于maF2[0]-maS2[0],即上一期的快慢均线差值,可能非作者本意
- 固定手数没有根据账户余额或风险比例动态调整,缺乏动态仓位管理
- 没有点差过滤,在高点差环境下频繁信号可能导致不必要的亏损
- SolveBuySL和SolveBuyTP使用Sym.Ask()计算,但在OnTick中可能已过时,应使用Sym.RefreshRates()后的最新值
改进建议
- 实现基于背离反转的主动平仓信号,例如当背离从正值转为负值时平掉多仓
- 修正Divergence()函数的计算逻辑,使其真正反映背离的变化率,并添加注释说明计算含义
- 添加动态仓位管理,根据账户余额和风险比例自动计算手数
- 增加点差过滤器,在点差过大时暂停开仓以避免滑点损失
风险评估
总体风险: 中等
- 背离计算逻辑可能存在错误,导致信号与预期不符
- 缺少主动平仓信号,在趋势反转时可能依赖止损出场导致较大回撤
- 固定手数不随账户变化,无法根据风险动态调整仓位
- DVBuySell和DVStayOut参数为绝对值,在不同品种和波动率环境下可能需要大幅调整
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Lots | 0.1 | 持仓手数 |
MultyOpen | false | 是否允许同方向加仓 |
MaxVolume | 0.5 | 最大持仓手数限制 |
StopLoss | 550 | 止损点数 |
TakeProfit | 550 | 止盈点数 |
Trailing | 0 | 移动止损点数,0为禁用 |
BreakEven | 0 | 保本止损触发点数,0为禁用 |
Fast_Period | 7 | 快速SMA周期 |
Fast_Price | PRICE_OPEN | 快速SMA应用价格 |
Slow_Period | 88 | 慢速SMA周期 |
Slow_Price | PRICE_OPEN | 慢速SMA应用价格 |
DVBuySell | 0.0011 | 最小背离阈值,超过此值才可开仓 |
DVStayOut | 0.0079 | 最大背离阈值,超过此值不开仓 |
BasketProfitON | false | 是否启用账户盈利平仓功能 |
BasketProfit | 75 | 账户盈利达到此值时平掉所有持仓 |
BasketLossON | false | 是否启用账户亏损平仓功能 |
BasketLoss | 9999 | 账户亏损达到此值时平掉所有持仓 |
同类 EA:均值回归
回测是历史模拟,不代表未来收益,不构成投资建议。