EA-1141 · 动量

Exp_CMO

该EA基于CMO(钱德动量摆动指标)进行交易,当CMO从负值区域上穿至正值区域时开多仓,从正值区域下穿至负值区域时开空仓。它使用可配置的手数、止损和止盈水平,并仅在新K线形成时处理信号以避免重复交易。

打开交互版(权益曲线、切换品种)

基本信息

分类动量
风险中等
爆仓风险低
评分★★★☆☆
类型交易型 EA
周期H1, H4, D1
指标CMO
作者Copyright © 2012, Nikolay Kositsin

回测结果(H1,约 1 年)

品种盈亏年化最大回撤交易数胜率夏普恢复因子最长连亏每笔期望状态
EURUSD0.00%0.00%0.00%0—————运行报错
GBPUSD0.00%0.00%0.00%0—————运行报错
USDJPY0.00%0.00%0.00%0—————运行报错
XAUUSD0.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最大价格滑点(点数)
BuyPosOpentrue允许买入开仓
SellPosOpentrue允许卖出开仓
BuyPosClosetrue允许平多仓
SellPosClosetrue允许平空仓
InpInd_TimeframePERIOD_H4指标时间周期
Length14CMO指标周期
MethodMODE_SMA平滑类型
PricePRICE_CLOSE应用价格类型
SignalBar1获取入场信号的K线索引

同类 EA:动量

回测是历史模拟,不代表未来收益,不构成投资建议。

订阅每周 Arena 周报

每周一封邮件:排名变化、新信号和新研究。不发垃圾邮件,随时可以退订。