TradeChannel
基于价格通道突破的EA,利用唐奇安风格通道识别支撑和阻力位,当价格突破这些水平时开仓做多或做空。包含基于ATR的止损、连续亏损后缩减仓位的类马丁格尔资金管理以及简单的移动止损机制。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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使用价格通道(Donchian Channel)来识别支撑和阻力位,通道周期由rChannel参数控制。入场条件分为两种:一是价格突破通道边界(高点触及阻力位开多,低点触及支撑位开空),且当前阻力/支撑与前一日相同表示通道稳定;二是收盘价在通道内但偏向中枢方向时也可触发入场。出场条件同样基于通道突破信号,当持有多头时高点触及阻力位则平仓,持有空头时低点触及支撑位则平仓。仓位管理采用两种模式:固定手数或基于最大风险比例动态计算手数,并通过DcF参数在连续亏损后缩减仓位。止损基于ATR指标计算,多头止损为支撑位减去ATR值,空头止损为阻力位加上ATR值加买卖价差。移动止损功能在盈利达到Trailing点数后将止损跟进至保本位或更优位置。
优势
- 使用ATR动态计算止损,能够根据市场波动性自适应调整止损距离
- 具有止损保护机制和移动止损功能,有利于锁定盈利
- 包含连续亏损后的仓位缩减机制,有助于控制回撤风险
- 通道突破策略逻辑清晰,易于理解和参数调优
- 开仓前检查止损距离是否满足经纪商最小止损水平要求
劣势
- isCloseBuy和isOpenBuy的信号逻辑完全相同,导致刚开的多头仓位可能在下一根K线立即被平仓
- 通道突破的入场和出场信号对称但缺乏差异化,没有止盈目标仅依赖止损和反向信号出场
- DcF仓位缩减机制在连续亏损时减少手数而非增加,虽保守但可能错过回本机会
- defPcChannel函数中CopyLow的返回值检查有bug(==1而非==-1),可能导致数据获取失败未被发现
- 缺少点差过滤和交易时间过滤,在流动性差或点差大的时段可能产生不利成交
改进建议
- 区分入场和出场信号逻辑,例如使用不同的通道周期或增加确认条件避免刚开仓即平仓
- 修复defPcChannel中CopyLow返回值检查的bug(应改为==-1),并增加止盈目标和点差过滤
- 增加交易时段过滤和点差检查,避免在不利条件下开仓
风险评估
总体风险: 中等
- 入场和出场信号相同可能导致频繁开平仓造成手续费损失
- defPcChannel函数中CopyLow返回值检查bug可能导致使用未初始化数据
- 没有止盈目标,盈利完全依赖移动止损或反向信号出场,可能在震荡市中被反复止损
- 连续亏损后手数缩减虽降低风险但也降低了回本能力
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Lots | 0.1 | 下单手数,为0时使用MaxR风险比例计算 |
SndMl | true | 开仓和平仓时是否发送邮件通知 |
DcF | 3 | 亏损时手数缩减因子,值越小缩减越大,为0则不缩减 |
MaxR | 0.02 | 最大风险比例(0-1),占可用资金的份额,Lots为0时使用 |
pATR | 4 | ATR指标周期,用于计算止损距离 |
rChannel | 20 | 价格通道周期,用于计算支撑和阻力 |
Trailing | 300 | 移动止损点数,为0则关闭移动止损 |
同类 EA:突破
回测是历史模拟,不代表未来收益,不构成投资建议。