EA-43794 · 辅助工具
WamekEA MoveStopLoss
该EA是一个移动止损工具,随着价格朝有利方向移动而调整已有持仓的止损位。提供两种模式:基于ATR的动态追踪(使用30根K线最大ATR的85%),或用户设定的固定距离追踪。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
该EA不主动开仓,仅对已有持仓进行止损管理。追踪止损的核心逻辑是:对于多头仓位,当当前买价高于开仓价且当前止损低于买价减去追踪距离时,将止损上移至买价减去追踪距离;对于空头仓位,当当前卖价低于开仓价且当前止损高于卖价加上追踪距离(或止损为零)时,将止损下移至卖价加上追踪距离。追踪距离由两种方式决定:若AutoTrail为true,则使用0.85乘以近30根K线ATR的最大值;若为false,则使用固定点数Distance2Trail。ATR计算采用7周期ATR指标,遍历近30根K线取最大值和最小值,但仅使用最大值作为追踪基准。仓位管理方面仅修改止损,不涉及加仓或减仓。资金管理完全缺失,没有账户权益或风险比例的考量。
优势
- 提供ATR动态追踪和固定距离两种模式,灵活性较好
- ATR模式使用30根K线最大值作为基准,能适应波动率变化,避免止损过近
- 对空头仓位处理了止损为零的特殊情况,防止未设止损的仓位被遗漏
劣势
- ATR计算效率低下,每tick都重新遍历30根K线调用CopyBuffer,应缓存或仅在新K线时更新
- 0.85的ATR乘数硬编码,用户无法调整此关键参数,缺乏适应性
- 没有止损修改失败的处理逻辑,trade.PositionModify的返回值未被检查
- 仅在价格超过开仓价后才开始追踪,无法在浮盈较小时保护利润
- AtrMin变量被计算但从未使用,属于无效代码
改进建议
- 将ATR乘数(0.85)和ATR回溯周期(30)设为可调输入参数,增加灵活性
- 仅在新生成K线时更新ATR值而非每tick计算,大幅提升性能;同时检查PositionModify的返回值并记录错误日志
- 增加最小盈利距离参数,允许在未超过开仓价时也启动追踪;增加止损修改的最小步进检查,避免过于频繁修改止损
风险评估
总体风险: 低风险
- PositionModify失败时无错误处理,可能导致止损未按预期移动而用户不知情
- 每tick重复计算ATR并修改止损,在高波动行情下可能因频繁请求触发服务器限制
评估得分
代码质量2.0
策略逻辑3.0
风险管理3.0
稳健性2.0
创新性1.0
文档1.0
综合2.0
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
AutoTrail | true | 是否使用ATR动态追踪止损,true为ATR模式,false为固定距离模式 |
Distance2Trail | 300 | 固定追踪距离(点数),仅在AutoTrail为false时生效 |
同类 EA:辅助工具
回测是历史模拟,不代表未来收益,不构成投资建议。