EA-17112 · 趋势跟踪

ExpHAWaves

该EA基于Heiken Ashi蜡烛方向与StepUpDown趋势过滤器(由快速SMA(2)和慢速SMMA(30)关系推导)的共振信号进行交易。当两个指标同时确认上升趋势时开多仓,同时确认下降趋势时开空仓,支持可配置的移动止损、基于风险的仓位计算和反向信号平仓功能。

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

基本信息

风险中等
爆仓风险低
评分★★☆☆☆
类型交易型 EA
周期M15, H1, H4, D1
指标SMA, SMMA, Heiken Ashi
作者Roberto Jacobs (3rjfx) ~ By 3rjfx ~ Created: 2016/12/05

回测结果(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—————暂不支持转换

这个 EA 从未交易的原因:转换后没有留下任何开仓规则。

由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。

爆仓风险: 未发现爆仓模式

代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。

高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →

策略分析

策略概念基于Heiken Ashi平滑K线与StepUpDown趋势指标的双重确认,属于典型的趋势跟踪系统。入场条件为:Heiken Ashi蜡烛方向(haOpen<haClose为多头,haOpen>haClose为空头)与StepUpDown趋势方向(基于SMA(2)与SMMA(30)的偏离及高低点位置判断)必须一致才开仓。出场条件包括三种方式:反向信号平仓(CloseByOppositeSignal)、移动止损(TrailingStop)跟踪出场、以及无移动止损时基于盈利和反向StepUpDown信号的获利平仓。仓位管理支持固定手数和动态手数两种模式,动态手数根据账户余额、风险百分比、杠杆和合约大小计算,并除以持仓数量+1进行分配。资金管理通过RiskPercentage参数控制每笔交易的风险比例,止损距离由资金风险公式计算得出,止盈设为止损的TPvsSLRatio倍数,最低止损距离为38个点。此外EA还设置了同一小时内不重复开仓的限制,通过检查历史订单关闭时间来避免过度交易。

优势

  • 双指标共振确认机制降低了虚假信号入场的概率
  • 支持动态手数计算和风险百分比控制,资金管理较为完善
  • 提供移动止损功能,能有效锁定盈利并跟踪趋势
  • 设置了同小时不开重复仓的限制,避免过度交易
  • 止损距离有最低38点保护,防止止损过小被扫损

劣势

  • SMA(2)周期极短,StepUpDown趋势判断容易产生频繁的虚假反转信号
  • 定时器每分钟触发但交易逻辑依赖分钟变化,在快速行情中可能反应滞后
  • 对象指针(CTrade等)在OnTimer中每分钟new但从未delete,存在内存泄漏
  • ModifySLTP中使用break跳出循环,只修改第一个符合条件的持仓,多仓场景下处理不完整
  • CheckOrderCloseTime中HistoryOrderGetInteger使用order_ID作为ticket参数,存在逻辑错误
  • ClosePosition中PositionGetInteger在循环外调用,可能获取到错误的持仓信息

改进建议

  • 修复内存泄漏:将CTrade等对象的创建移至OnInit,或在使用后及时delete
  • 优化StepUpDown趋势判断逻辑,增加SMA周期或添加趋势强度过滤条件以减少虚假信号
  • 修复CheckOrderCloseTime中HistoryOrderGetInteger的错误参数传递
  • ModifySLTP中移除break语句,使其能遍历并修改所有符合条件的持仓
  • 添加点差过滤和滑点保护,避免在高点差环境下开仓

风险评估

总体风险: 中等

  • SMA(2)周期过短导致趋势判断不稳定,可能频繁产生虚假信号造成连续亏损
  • 内存泄漏问题长期运行会导致资源耗尽
  • CheckOrderCloseTime中的逻辑错误可能导致同小时重复开仓限制失效
  • 移动止损仅10点(1pip)过于紧密,在波动市中容易被触发

评估得分

代码质量2.0
策略逻辑2.0
风险管理3.0
稳健性2.0
创新性1.0
文档2.0
综合2.0

参数

参数默认值说明
TimeFramesPERIOD_H1专家顾问运行的时间周期
RiskPercentage3.0风险百分比,用于计算每笔交易的风险金额
TPvsSLRatio3.0止盈与止损的倍数比率
MoneyManagementTypeDynamicLotSize资金管理类型:固定手数或动态手数
TradeLotSize0.1固定手数模式下手动输入的手数
CloseByOppositeSignalYes是否在反向信号时平仓
UseTrailingStopYes是否使用移动止损
Trailing_FixedPipsSL10移动止损值(以点为单位)
Magic1234专家顾问标识号(最多8位数字)

同类 EA:趋势跟踪

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

订阅每周 Arena 周报

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