StellarLite_ICT_EA
该EA实现了ICT(内圈交易者)概念,具体包括Silver Bullet和2022模型策略,专为Stellar Lite 5K挑战赛设计。它利用高周期均线偏向、流动性扫荡、市场结构转变、公允价值缺口和NDOG/NWOG检测来寻找入场点,并在1:1、2:1和3:1风险回报比设置分批止盈和跟踪止损管理。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于ICT教学,使用高时间框架(H1)200周期SMA判断趋势方向,仅在趋势方向上寻找交易机会。入场条件要求同时满足五个条件:流动性扫荡(价格突破关键流动性水平后回归)、市场结构转变(MSS确认趋势反转)、公允价值缺口(FVG提供入场区域)、NDOG/NWOG确认(当日K线实体小于ATR阈值)、以及价格回踩至FVG区域内。Silver Bullet策略仅在纽约上午杀伤区(10:00-11:00)交易,2022模型则不限时段但使用反向流动性扫荡(诱导)作为额外确认。出场采用分批止盈:TP1处平50%仓位并将止损移至保本,TP2处再平25%并启动跟踪止损,剩余25%持有至TP3。仓位管理基于固定风险百分比(0.25%),根据止损距离自动计算手数。资金管理包含总回撤10%和日回撤5%的硬性限制,符合prop firm挑战规则。
优势
- 严格的资金管理:0.25%单笔风险、10%总回撤和5%日回撤限制,完全符合prop firm挑战规则
- 分批止盈策略合理:TP1平半仓锁利并移止损至保本,TP2再平25%启动跟踪止损,兼顾盈利保护与趋势跟随
- 多条件入场过滤:要求流动性扫荡+MSS+FVG+NDOG/NWOG五重确认,大幅降低虚假信号入场概率
- 高时间框架趋势过滤:使用H1 200SMA判断大方向,避免逆势交易
劣势
- ATR指标句柄内存泄漏:CheckNDOG_NWOG每次调用都创建并释放iATR句柄,在频繁调用时造成资源浪费和潜在性能问题
- 流动性检测过于简化:FindNearestLiquidityLevel仅查找回溯期内的最高/最低点,未识别真正的结构性高低点(swing highs/lows),容易产生错误信号
- 市场结构转变(MSS)判断逻辑有缺陷:仅比较最近3根K线的收盘价与高低点,未考虑结构性突破的幅度和时间跨度,容易产生误判
- FVG检测逻辑反转:买入FVG条件检查rates[i].high < rates[i-2].low,这意味着K线i的高点低于K线i-2的低点,这描述的是下跌缺口而非看涨FVG,逻辑与实际ICT定义不一致
- 每日回撤基准使用equity而非balance,与大多数prop firm的规则不一致(通常基于当日开仓balance)
- 单笔交易限制:positionInfo.SelectByMagic只检查是否存在该魔法号持仓,无法同时管理多个仓位
改进建议
- 将ATR句柄移至OnInit()中初始化,避免每次CheckNDOG_NWOG调用时重复创建和销毁,提升性能并防止资源泄漏
- 改进流动性水平检测:实现真正的swing high/low识别算法(如使用分形或ZigZag方法),而非简单查找回溯期内的极值点
- 修正FVG检测逻辑:看涨FVG应为rates[i-2].high < rates[i].low(K线i-2的高点低于K线i的低点,中间K线未填补该区域),与ICT定义一致
- 增强MSS检测:增加结构突破的幅度阈值(如突破前结构点的ATR倍数),并考虑更大时间跨度的结构变化
- 支持多仓位管理:使用持仓遍历替代单仓位SelectByMagic,允许策略同时管理多个交易信号
风险评估
总体风险: 中等
- FVG检测逻辑反转可能导致在错误方向入场,造成不必要的亏损
- MSS检测过于简单可能产生虚假的结构突破信号,增加错误交易概率
- 每tick调用CheckNDOG_NWOG时重复创建ATR指标句柄,在高频tick环境下可能导致资源耗尽
- 每日回撤基准使用equity而非开仓balance,可能在实际prop firm评测中被判定违规
- 使用字符串比较进行时间过滤(timeStr >= SB_StartTime),在跨午夜时段可能失效
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
RiskPercentPerTrade | 0.25 | 每笔交易风险百分比 |
MaxTotalDrawdownPercent | 10.0 | 最大总回撤百分比 |
MaxDailyDrawdownPercent | 5.0 | 最大日回撤百分比 |
InitialBalance | 5000.0 | 初始账户余额 |
TP1_RR | 1.0 | TP1风险回报比 |
TP2_RR | 2.0 | TP2风险回报比 |
TP3_RR | 3.0 | TP3风险回报比 |
PartialClosePercentTP1 | 50.0 | TP1处平仓百分比 |
PartialClosePercentTP2 | 25.0 | TP2处平仓百分比 |
PartialClosePercentTP3 | 25.0 | TP3处平仓百分比 |
MoveSLToBE_AfterTP1 | true | TP1后将止损移至保本 |
BE_PlusPips | 1 | 保本止损额外点数 |
TrailingSL_Pips | 10.0 | 跟踪止损点数 |
Use_SilverBullet | true | 启用Silver Bullet策略 |
SB_StartTime | 10:00 | 纽约上午杀伤区开始时间 |
SB_EndTime | 11:00 | 纽约上午杀伤区结束时间 |
Use_2022Model | true | 启用2022模型策略 |
Use_OTE_Entry | true | 使用斐波那契OTE入场 |
HTF | PERIOD_H1 | 高时间框架周期 |
HTF_MA_Period | 200 | 高时间框架均线周期 |
HTF_MA_Method | MODE_SMA | 均线计算方法 |
DOL_Lookback_Bars | 120 | 流动性回溯K线数 |
NDOG_NWOG_Threshold | 0.5 | NDOG/NWOG的ATR乘数阈值 |
OTE_Lower_Level | 0.618 | OTE斐波那契下限 |
OTE_Upper_Level | 0.786 | OTE斐波那契上限 |
ShowTradeLevels | true | 显示交易水平线 |
同类 EA:多周期
回测是历史模拟,不代表未来收益,不构成投资建议。