EA-275 · 趋势跟踪

bobnaley

该EA在均线上升、价格高于均线且随机指标从超卖区域上升时开多仓;在均线下降、价格低于均线且随机指标从超买区域下降时开空仓。仓位大小根据可用保证金动态计算,最大手数上限为15手。

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

基本信息

风险高风险
爆仓风险低
评分★☆☆☆☆
类型交易型 EA
周期M15, H1, H4
指标SMA, Stochastic
作者AM2.

回测结果(H1,约 1 年)

品种盈亏年化最大回撤交易数胜率夏普恢复因子最长连亏每笔期望状态
EURUSD+7.01%+6.07%2.61%14356.30%1.582.698+$4.70可靠
GBPUSD+2.67%+2.31%4.98%14349.30%0.470.546+$1.71可靠
USDJPY-1.92%-1.67%4.90%14347.90%-0.38-0.395−$1.46可靠
XAUUSD+58.82%+46.55%44.92%15151.30%1.351.316+$40.86可靠

在 4 个有可信结果的品种中,3 个盈利。

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

和同类(趋势跟踪)在同一品种上有可信结果的 EA 相比:EURUSD 好于 93%(共 95 个);GBPUSD 好于 68%(共 95 个);USDJPY 好于 33%(共 95 个);XAUUSD 好于 80%(共 96 个)

按月看

品种盈利月份占比最好的月份最差的月份
EURUSD77%+3.26% 2026-02-0.82% 2026-10
GBPUSD54%+3.74% 2026-02-1.89% 2026-03
USDJPY46%+1.62% 2026-09-1.65% 2026-08
XAUUSD54%+62.96% 2026-01-21.74% 2026-09

根据回测净值曲线计算(约每两天一个点),只统计可信结果。

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

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

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

策略分析

该EA采用均线与随机指标组合的趋势跟踪策略。入场条件:做多要求MA连续3根K线递增(maVal[0]<maVal[1]<maVal[2]表示索引0为最新值,但代码中maVal[0]<maVal[1]实际上表示MA下降,存在逻辑错误)、Ask价格高于MA最新值、随机指标从下方上升且主值低于超卖线30;做空要求MA连续3根递减、Bid价格低于MA、随机指标下降且主值高于超买线70。出场条件完全依赖固定止盈止损,做多止损为Ask-StopLoss、止盈为Ask+TakeProfit,做空反之。仓位管理使用Money_M()函数,根据账户可用保证金按公式(可用保证金/100000*50)计算手数,并限制在0.1至15手之间,根据手数大小进行不同精度的小数规范化。资金管理要求可用保证金大于5000才允许开仓,且仅允许同时持有一个品种的头寸。值得注意的是代码中存在明显逻辑错误:MA上升条件写成了maVal[0]<maVal[1](实际是MA下降),与注释描述完全相反。

优势

  • 使用双重指标(MA+随机指标)过滤信号,减少假突破
  • 动态仓位管理根据账户资金调整手数,有一定自适应能力
  • 设有最大手数限制(15手)和最低保证金要求(5000),防止过度杠杆
  • 仅允许单品种单持仓,避免同方向加仓风险

劣势

  • MA方向判断存在严重逻辑错误:买入条件中maVal[0]<maVal[1]实际表示MA下降而非上升,与策略意图完全相反
  • StopLoss和TakeProfit使用价格单位而非点数,在不同报价精度品种上可能失效
  • 输入参数Lot=5完全未使用,Money_M()函数覆盖了手动设置,造成用户误解
  • 缺少新K线检测,每个tick都可能触发信号判断,存在重复开仓隐患
  • 未检查交易执行结果,PositionOpen返回值被忽略
  • 止盈止损值硬编码为绝对价格偏移,未根据ATR或波动率动态调整

改进建议

  • 修复MA方向判断逻辑错误:买入条件应改为maVal[0]>maVal[1]&&maVal[1]>maVal[2],卖出条件改为maVal[0]<maVal[1]&&maVal[1]<maVal[2]
  • 将止盈止损改为点数单位并使用NormalizeDouble与品种点值适配,或改用ATR动态计算
  • 添加新K线检测机制(如比较当前与上一根K线时间),避免每个tick重复计算和尝试开仓
  • 检查PositionOpen返回值并处理交易失败情况,移除未使用的Lot输入参数或将其整合到资金管理逻辑中

风险评估

总体风险: 高风险

  • MA方向判断逻辑与策略意图完全相反,可能导致逆势开仓,在上涨趋势中做空、下跌趋势中做多
  • 止盈止损使用价格绝对值而非点数,在5位数报价或不同品种上可能产生极小或极大的实际止损范围
  • 每tick执行信号判断而无新K线过滤,在快速行情中可能因PositionSelect判断延迟导致重复开仓
  • 未检查交易执行结果,止损止盈设置可能因无效价格被服务器拒绝而无法成交

评估得分

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

参数

参数默认值说明
TakeProfit0.007止盈距离(价格单位)
StopLoss0.0035止损距离(价格单位)
MA_Period76移动平均线周期
Stoch_OverSold30随机指标超卖水平
Stoch_OverBought70随机指标超买水平
Lot5手数(未使用,实际由Money_M()计算)

同类 EA:趋势跟踪

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

订阅每周 Arena 周报

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