Exp_AroonOscillatorSignAlert
该EA基于Aroon振荡器指标的信号进行交易。在向上穿越信号时开多仓,在向下穿越信号时开空仓,并支持可配置的止损、止盈和资金管理选项。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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使用Aroon振荡器指标(AroonOscillatorSignAlert自定义指标)作为核心交易信号源。入场条件为:当指标上轨缓冲区(buffer 1)在设定信号K线上产生非零且非空值时,触发买入开仓和卖出平仓信号;当指标下轨缓冲区(buffer 0)产生有效信号时,触发卖出开仓和买入平仓信号。出场条件依赖固定的止损和止盈设置,同时也支持反向信号平仓——当同时启用买入和卖出开平仓时,EA会回溯历史K线寻找反向信号来决定是否平仓。仓位管理通过MM参数和MMMode枚举支持五种模式:按自由保证金比例、按余额比例、按净自由保证金比例、按净余额比例和固定手数。资金管理采用固定止损止盈点数方式,无动态调整机制,缺乏根据市场波动性自适应调整止损止盈的能力。整体策略属于典型的动量跟随系统,依赖Aroon振荡器穿越阈值水平来判断趋势动量变化。
优势
- 策略逻辑清晰,基于Aroon振荡器的动量信号有明确的理论基础
- 提供五种仓位管理模式,灵活性较高,适应不同风险偏好
- 支持独立的买入/卖出开平仓开关,可实现只做多、只做空或双向交易
- 使用SignalBar参数控制信号确认时机,避免未收盘K线的虚假信号
- 包含新K线检测机制(CIsNewBar),避免同一根K线重复开仓
劣势
- ATR_Period变量未声明为input类型,无法在策略测试器中优化,属于代码缺陷
- 止损止盈为固定点数,未考虑市场波动率变化(如ATR动态止损),在低波动和高波动市场中表现差异大
- 回溯历史K线寻找反向平仓信号的循环(第142-163行)可能效率低下,在大量历史数据时存在性能问题
- 缺乏点差过滤机制,在点差较大时仍会开仓,可能导致入场成本过高
- 没有持仓检查和最大持仓数限制,可能因信号密集产生过多持仓
- 注释为乱码(编码问题),严重影响代码可读性和可维护性
改进建议
- 将ATR_Period声明为input参数,使其可在策略测试器中优化,并修复文件编码问题恢复中文注释
- 增加基于ATR的动态止损止盈选项,以及点差过滤和最大持仓数限制,提升风险管理的适应性
风险评估
总体风险: 中等
- 固定止损止盈不适应市场波动率变化,低波动时止损过大、高波动时止盈难以触及
- 无点差过滤,高波动时段点差扩大时仍会入场
- 无最大持仓数限制,信号密集期可能累积过多仓位
- 回溯历史K线的循环无上界保护,极端情况下可能遍历过多K线
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | 0.1 | 资金管理参数,控制仓位大小比例或手数 |
MMMode | LOT | 仓位计算模式:自由保证金/余额/净自由保证金/净余额/固定手数 |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大允许滑点 |
BuyPosOpen | true | 是否允许买入开仓 |
SellPosOpen | true | 是否允许卖出开仓 |
BuyPosClose | true | 是否允许买入平仓(平多仓) |
SellPosClose | true | 是否允许卖出平仓(平空仓) |
InpInd_Timeframe | PERIOD_H4 | Aroon振荡器指标时间周期 |
ATR_Period | 14 | ATR周期(注意:此变量未声明为input,为硬编码) |
AroonPeriod | 9 | Aroon振荡器计算周期 |
UpLevel | +50 | 上阈值水平 |
DnLevel | -50 | 下阈值水平 |
SoundON | true | 是否启用声音报警 |
NumberofAlerts | 2 | 最大报警次数 |
EMailON | false | 是否启用邮件通知 |
PushON | false | 是否启用推送通知 |
SignalBar | 1 | 信号K线索引(0=当前K线,1=前一根已收盘K线) |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。