EA-1389 · 趋势跟踪
Exp_EF_distance
该EA基于EF_distance指标进行交易,该指标衡量价格运动的效率来检测趋势方向。当EF_distance值显示上升趋势时开多仓,显示下降趋势时开空仓,完整版还包含Flat-Trend波动率过滤器。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
该EA的策略概念基于EF_distance指标,该指标通过计算价格移动的效率来衡量趋势强度和方向。入场条件为:做多时要求EF_distance的前两个值递减(Value[1]<Value[2])且当前值回升(Value[0]>Value[1]),同时完整版要求Flat-Trend波动率指标值大于等于设定的波动率阈值;做空则相反。出场条件通过反向信号触发,即做多持仓时出现做空信号则平多仓,做空持仓时出现做多信号则平空仓,同时设置了固定的止损和止盈点数。仓位管理方面,通过MM参数控制,负值表示固定手数,正值表示按存款比例计算手数。资金管理依赖TradeAlgorithms.mqh库中的函数实现,但没有动态调整止损止盈或追踪止损的机制。完整版(exp_ef_distance.mq5)额外引入了Flat-Trend指标作为波动率过滤器,只有在市场波动率足够时才允许开仓,提高了信号质量。
优势
- 完整版结合波动率过滤器,避免在低波动震荡行情中频繁开仓
- 使用新K线检测机制(CIsNewBar),避免同一根K线内重复交易
- 提供买入/卖出和平仓的独立开关,灵活性高
- 支持按存款比例自动计算手数,有助于资金管理
- 双指标确认机制降低虚假信号
劣势
- 止损止盈为固定点数,不根据市场波动率(ATR)动态调整,在不同行情下可能不合适
- 缺少追踪止损机制,盈利头寸可能在回撤中损失大部分利润
- 没有点差过滤,在点差较大的品种上可能导致滑点损失
- EF_distance指标逻辑不透明,参数优化缺乏直觉引导
- 信号生成逻辑较简单,仅依赖3个K线的指标值比较,可能产生频繁的假反转信号
改进建议
- 将固定止损止盈改为基于ATR的动态止损止盈,使风险管理适应市场波动
- 增加追踪止损功能,保护已有盈利不被大幅回撤侵蚀
- 增加点差和滑点过滤,避免在点差过大时开仓
- 增加最大持仓数量限制和最大回撤保护,防止极端行情下的过度亏损
风险评估
总体风险: 中等
- 固定止损止盈不随市场波动调整,在低波动时止损过大,高波动时止盈过小
- 缺少追踪止损,盈利仓位可能大幅回撤至亏损
- 没有点差过滤和最大回撤保护机制
- MM参数为负值时使用固定手数,小账户可能导致过度杠杆
评估得分
代码质量3.0
策略逻辑3.0
风险管理2.0
稳健性3.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 | 指标时间周期 |
SignalBar | 1 | 获取入场信号的K线索引 |
XLength | 10 | EF_distance平滑深度 |
Power | 2.0 | EF_distance平均幂次 |
IPC | PRICE_CLOSE | 价格常量类型 |
StDevPeriod | 20 | 标准差周期(完整版) |
StDev_Method | MODE_LWMA | 标准差平滑方法(完整版) |
StDevLength | 5 | 标准差平滑深度(完整版) |
StDevPhase | 15 | 标准差平滑参数(完整版) |
ATRPeriod | 20 | ATR周期(完整版) |
ATR_Method | MODE_LWMA | ATR平滑方法(完整版) |
ATRLength | 5 | ATR平滑深度(完整版) |
ATRPhase | 15 | ATR平滑参数(完整版) |
Volatil | V3 | 执行交易的波动率大小(完整版) |
同类 EA:趋势跟踪
回测是历史模拟,不代表未来收益,不构成投资建议。