EA-15848 · 辅助工具
cm Universal Trailing Stop Hedge
这是一个MetaTrader 5通用追踪止损工具,使用七种不同算法(固定点数、分形、ATR、抛物线SAR、均线、利润百分比、固定点)管理已有持仓的止损。支持真实止损修改和虚拟追踪止损(价格触及计算水平时平仓),并在图表上显示无亏损水平和止损水平的标签与箭头。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
此EA是一个纯工具型程序,不自行开仓,仅对已有持仓进行止损管理。策略概念是基于七种可选算法动态调整止损水平:1)按K线极值(最低价/最高价)加减偏移量设置止损;2)按分形结构(比尔·威廉姆斯分形)加减偏移量设置止损;3)按ATR指标值从当前价格回撤设置止损;4)按抛物线SAR指标值加减偏移量设置止损;5)按移动均线值加减偏移量设置止损;6)按利润百分比值设置止损;7)按固定点数从当前价格回撤设置止损。入场条件:无,EA不负责入场,仅管理已有持仓。出场条件:当价格触及追踪止损水平时平仓(虚拟模式)或修改SL至追踪水平(普通模式)。仓位管理:支持按魔术号筛选持仓,虚拟追踪止损模式下按整体多空加权均价计算止损水平。资金管理:无独立资金管理逻辑,止损追踪距离由参数delta、StepTrall、StartTrall控制。
优势
- 提供七种不同的追踪止损算法,灵活性极高,适合各种交易风格
- 虚拟追踪止损模式可在经纪商限制SL修改时使用,且按加权均价计算整体仓位止损
- 提供丰富的图表视觉反馈(止损水平线、箭头、标签),方便实时监控止损状态
- 支持按魔术号筛选持仓,可与其他EA配合使用而不冲突
劣势
- 代码中存在严重BUG:第125行使用OrderGetInteger(ORDER_MAGIC)获取魔术号,但遍历的是持仓而非订单,应使用PositionGetInteger(POSITION_MAGIC)
- 枚举变量名(b,c,d,e,f,g,i)极不语义化,可读性极差,维护困难
- StrPer函数中多个时间周期映射错误(如H3映射为M3、H4映射为M4等)
- 虚拟追踪止损模式下缺少止损水平的STOPS_LEVEL校验,可能在实际交易中产生问题
- SlLastBar函数中K线极值搜索循环(500根K线)效率低且无边界保护
改进建议
- 修复魔术号获取BUG:将OrderGetInteger(ORDER_MAGIC)改为PositionGetInteger(POSITION_MAGIC),此为关键性错误
- 将枚举变量名从单字母改为语义化名称(如FIXED_POINTS、FRACTAL、ATR、PARABOLIC、MA、PERCENT_PROFIT、PIP_FIXED)
- 添加新K线检测逻辑,避免每个tick都执行所有计算和止损修改,减少资源消耗和交易服务器负担
- 修复StrPer函数中的时间周期映射错误,并添加对H3、H4、H6、H8、H12等时间周期的正确映射
风险评估
总体风险: 中等
- 魔术号筛选BUG导致所有持仓被管理而非仅指定魔术号的持仓,可能意外修改其他EA的止损
- 虚拟追踪止损模式下缺少订单发送前的OrderCheck校验(买入侧),可能导致无效订单请求
- 无新K线检测机制,每个tick都尝试修改止损,在高频行情下可能触发经纪商限制或被判定为滥用
- 止损水平未考虑点差和STOPS_LEVEL限制,虚拟模式可能在不利条件下平仓
评估得分
代码质量2.0
策略逻辑3.0
风险管理2.0
稳健性2.0
创新性3.0
文档1.0
综合2.2
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
VirtualTrailingStop | false | 启用虚拟追踪止损(不修改真实SL,价格触及水平时直接平仓) |
parameters_trailing | 1 | 追踪止损算法类型:1=K线极值 2=分形 3=ATR 4=抛物线SAR 5=均线 6=利润百分比 7=固定点数 |
delta | 0 | 止损偏移量(点数),加在指标计算值上 |
TF_Tralling | 0 | 追踪止损使用的时间周期(0=当前周期) |
StepTrall | 1 | 止损修改的最小步距(点数),避免频繁修改 |
StartTrall | 1 | 开始追踪止损的盈利点数(距开仓价的点数) |
text_color | clrGreen | 图表标签文字颜色 |
period_ATR | 14 | ATR指标周期(算法3使用) |
Step | 0.02 | 抛物线SAR步长参数(算法4使用) |
Maximum | 0.2 | 抛物线SAR最大值参数(算法4使用) |
Magic | -1 | 持仓魔术号筛选(-1=管理所有持仓) |
GeneralNoLoss | true | 是否允许止损移至开仓价以上(无亏损保护) |
DrawArrow | false | 是否在图表上绘制止损水平箭头 |
ma_period | 34 | 移动均线周期(算法5使用) |
ma_method | MODE_SMA | 移动均线计算方法(算法5使用) |
applied_price | PRICE_CLOSE | 移动均线应用价格类型(算法5使用) |
PercetnProfit | 50 | 利润百分比追踪止损值(算法6使用) |
同类 EA:辅助工具
回测是历史模拟,不代表未来收益,不构成投资建议。