Exp_HighsLowsSignal
该EA基于自定义HighsLowsSignal指标的交易信号进行操作,该指标通过识别一定数量K线的方向性价格变化来产生信号。在看涨信号时开多仓,在看跌信号时开空仓,并可选择在出现反向信号时平仓。仓位和资金管理通过内置的TradeAlgorithms库实现。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
这个 EA 从未交易的原因:转换后没有留下任何开仓规则。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念:该EA使用HighsLowsSignal指标检测价格连续N根K线朝同一方向运动的趋势信号,属于典型的趋势跟踪策略。入场条件:当指标的上行缓冲区(buffer 1)在指定信号Bar上输出非零非EMPTY_VALUE时开多仓,当下行缓冲区(buffer 0)输出有效值时开空仓。出场条件:支持StopLoss和TakeProfit固定点数出场,同时在出现反向信号时平仓(需开启BuyPosClose/SellPosClose权限),还会遍历历史Bar查找最近的反向信号作为平仓依据。仓位管理:通过MM参数控制每次交易占用资金的比例,支持多种保证金模式(自由保证金、余额、亏损比例等),默认使用固定手数(LOT)模式。资金管理:依赖TradeAlgorithms.mqh库中的BuyPositionOpen/SellPositionOpen函数执行交易,包含最大价格偏离(Deviation)参数来控制滑点。策略还使用IsNewBar机制确保每个Bar只计算一次信号,避免重复交易。
优势
- 使用IsNewBar机制避免同根K线重复交易,减少不必要的交易频率
- 提供灵活的资金管理模式,支持固定手数和基于保证金比例的多种计算方式
- 止损止盈参数明确,风险控制有基本保障
- 买卖开仓和平仓权限可独立控制,策略配置灵活度高
- 反向信号平仓机制提供了额外的趋势反转保护
劣势
- 依赖外部HighsLowsSignal自定义指标,指标文件缺失时EA无法运行
- 缺少止损止盈为0时的保护逻辑,可能导致无限制亏损
- 历史Bar遍历查找反向信号的循环没有上限保护,可能影响性能
- 没有考虑点差和交易成本对策略盈利性的影响
- SignalBar=0时的特殊逻辑分支可能导致实时信号不稳定
改进建议
- 添加止损止盈为0的防护检查,防止意外无止损交易
- 为历史Bar遍历循环添加最大迭代次数限制,防止性能问题
- 增加点差过滤条件,避免在高点差时段开仓
风险评估
总体风险: 中等
- 止损止盈设为0时无保护,可能导致无限制亏损
- 依赖外部指标文件,缺失时初始化失败但无用户友好提示
- 历史Bar遍历无上限,极端情况下可能造成延迟
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | 0.1 | 每次交易占用的资金比例 |
MMMode | LOT | 手数计算方式(自由保证金/余额/亏损比例/固定手数) |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大允许价格偏离(滑点)点数 |
BuyPosOpen | true | 是否允许开多仓 |
SellPosOpen | true | 是否允许开空仓 |
BuyPosClose | true | 是否允许平多仓 |
SellPosClose | true | 是否允许平空仓 |
InpInd_Timeframe | PERIOD_H4 | HighsLowsSignal指标的时间周期 |
HowManyCandles | 3 | 判断方向性价格变化的K线数量 |
SignalBar | 1 | 获取入场信号的Bar编号 |
同类 EA:趋势跟踪
回测是历史模拟,不代表未来收益,不构成投资建议。