EA-1141 · 动量
Exp_CMO
该EA基于CMO(钱德动量摆动指标)进行交易,当CMO从负值区域上穿至正值区域时开多仓,从正值区域下穿至负值区域时开空仓。它使用可配置的手数、止损和止盈水平,并仅在新K线形成时处理信号以避免重复交易。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 | — | — | — | — | — | 运行报错 |
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
该EA的策略核心是基于CMO指标的零轴穿越进行动量交易。入场条件为:当CMO的前一根K线值大于0且当前K线值小于0时,产生买入信号;当CMO的前一根K线值小于0且当前K线值大于0时,产生卖出信号。出场条件包括止损和止盈的固定点数设置,以及反向信号触发平仓(买入信号时平空仓,卖出信号时平多仓)。仓位管理通过MM参数控制,负值表示固定手数,正值表示按存款比例计算手数。资金管理依赖外部TradeAlgorithms.mqh库中的函数实现,具体逻辑未在本文件中展示。策略默认使用H4周期和14周期SMA平滑的CMO,信号取自第1根K线索引,属于延迟确认的趋势动量跟踪方法。
优势
- 策略逻辑简洁明了,基于经典动量指标CMO零轴穿越,易于理解和验证
- 具有完整的买卖方向开关控制,可灵活关闭单方向交易
- 使用新K线检测机制避免同一根K线内重复交易,减少过度交易风险
- 止损止盈参数可配置,默认2:1的盈亏比设计合理
劣势
- 核心交易逻辑依赖外部TradeAlgorithms.mqh库,无法直接审查仓位管理和订单执行的完整细节
- 缺少点差过滤和滑点保护机制,在流动性差的市场中可能遭受额外损失
- CMO零轴穿越在震荡行情中容易产生频繁的虚假信号,导致连续亏损
- 没有追踪止损或动态止损机制,固定止损可能不适合所有市场波动环境
改进建议
- 增加CMO阈值过滤或超买超卖区间判断,避免在零轴附近震荡时频繁开平仓
- 增加点差过滤和多时间周期确认机制,提高信号质量和降低虚假信号比例
风险评估
总体风险: 中等
- CMO零轴穿越在震荡市中频繁虚假信号可能导致连续止损
- 外部库函数的具体风控逻辑不可见,仓位管理安全性无法确认
评估得分
代码质量3.0
策略逻辑3.0
风险管理3.0
稳健性2.0
创新性2.0
文档2.0
综合2.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | -0.1 | 存款比例或固定手数,负值为固定手数 |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大价格滑点(点数) |
BuyPosOpen | true | 允许买入开仓 |
SellPosOpen | true | 允许卖出开仓 |
BuyPosClose | true | 允许平多仓 |
SellPosClose | true | 允许平空仓 |
InpInd_Timeframe | PERIOD_H4 | 指标时间周期 |
Length | 14 | CMO指标周期 |
Method | MODE_SMA | 平滑类型 |
Price | PRICE_CLOSE | 应用价格类型 |
SignalBar | 1 | 获取入场信号的K线索引 |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。