AO_Lightning
该EA基于动量震荡指标(AO)进行交易,AO由中位价的5周期SMA与34周期SMA之差计算得出。当AO上升时开多仓,当AO下降时开空仓,同时平掉反向仓位。EA允许每个方向最多10个同时持仓,支持固定手数或百分比手数。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | +6.38% | +5.52% | 3.90% | 143 | 54.20% | 1.32 | 1.64 | 6 | +$4.73 | 可靠 |
| GBPUSD | +4.90% | +4.24% | 4.93% | 143 | 50.70% | 0.85 | 0.99 | 7 | +$3.62 | 可靠 |
| USDJPY | +1.69% | +1.47% | 6.44% | 275 | 51.50% | 0.37 | 0.26 | 8 | +$0.62 | 可靠 |
| XAUUSD | +204.44% | +150.89% | 32.49% | 148 | 50.70% | 1.95 | 6.29 | 6 | +$138.14 | 可靠 |
在 4 个有可信结果的品种中,4 个盈利。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
和同类(动量)在同一品种上有可信结果的 EA 相比:EURUSD 好于 94%(共 68 个);GBPUSD 好于 91%(共 66 个);USDJPY 好于 74%(共 68 个);XAUUSD 好于 100%(共 75 个)
按月看
| 品种 | 盈利月份占比 | 最好的月份 | 最差的月份 |
|---|---|---|---|
| EURUSD | 69% | +3.34% 2026-02 | -1.79% 2026-07 |
| GBPUSD | 62% | +2.86% 2026-02 | -2.00% 2026-07 |
| USDJPY | 38% | +3.50% 2026-09 | -2.33% 2026-08 |
| XAUUSD | 54% | +85.95% 2026-02 | -6.51% 2026-11 |
根据回测净值曲线计算(约每两天一个点),只统计可信结果。
爆仓风险: 偏高
- 没有止损,也没有移动止损
- 最多可同时持有 10 个仓位
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于Bill Williams的Awesome Oscillator(AO)动量指标,通过计算中位价((最高价+最低价)/2)的5周期SMA与34周期SMA的差值来判断市场动量方向。入场条件为:当AO[0]>AO[1]时(动量上升)开多仓,当AO[0]<AO[1]时(动量下降)开空仓,属于顺势动量交易策略。出场条件为:当动量方向反转时平掉所有反向仓位,即持有多仓时AO下降则平多,持有空仓时AO上升则平空。仓位管理允许每个方向最多持有Orders参数指定数量的仓位(默认10个),每次新信号触发时加仓而非重仓。资金管理支持两种模式:固定手数(LotFixed)和基于可用保证金百分比的动态手数(LotFromPercent),并在开仓前通过OrderCalcMargin检查保证金是否充足。该策略没有设置止损和止盈,完全依赖动量反转信号来平仓,存在较大的风险敞口。
优势
- 策略逻辑清晰简洁,基于经典的Awesome Oscillator动量指标,易于理解和验证
- 支持固定手数和百分比动态手数两种资金管理模式,灵活性好
- 开仓前有保证金检查机制,防止因资金不足导致的开仓失败
- 使用新K线检测机制(time_bar)避免同一根K线重复开仓,减少过度交易
劣势
- 没有止损和止盈设置,完全依赖动量反转信号平仓,在剧烈行情中可能造成巨大亏损
- Close函数使用while循环遍历仓位,在PositionsTotal变化时可能产生无限循环或索引错乱
- 卖单开仓时错误地使用了ORDER_TYPE_BUY进行保证金检查而非ORDER_TYPE_SELL
- AO指标参数名称反直觉:Period_sma_slow=5实际是快速SMA,Period_sma_fast=34实际是慢速SMA
- MessageBox在CheckMoneyForTrade中会阻塞EA运行,在实盘自动交易中不应使用
改进建议
- 添加止损和止盈参数,在市场剧烈波动时保护资金安全
- 修复卖单保证金检查中的ORDER_TYPE_BUY错误,应改为ORDER_TYPE_SELL
- 改用倒序遍历或收集待平仓ticket列表后再统一平仓,避免遍历过程中索引错乱
- 将MessageBox替换为Print或日志记录,避免阻塞EA自动运行
- 修正SMA周期参数命名,使其含义与实际用途一致
风险评估
总体风险: 需谨慎
- 没有止损止盈,在动量持续不利时可能产生巨额浮亏
- 平仓函数的while循环遍历存在潜在的无限循环风险
- 卖单保证金检查使用了错误的方向类型,可能导致保证金计算不准确
- 最多允许10个同向仓位叠加,在不利行情中累积风险较大
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
LotFixed | 0.01 | 固定手数 |
LotFromPercent | 0 | 基于可用保证金百分比的动态手数,0表示使用固定手数 |
Period_sma_slow | 5 | AO指标慢速SMA周期 |
Period_sma_fast | 34 | AO指标快速SMA周期 |
Orders | 10 | 每个方向最大持仓数量 |
Magic | 5632 | EA魔术编号,用于识别本EA的仓位 |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。