eq3-06 / e04lc07-v4
该EA实现了D'Alembert下注系统,通过追踪各货币净敞口(以欧元计价)来管理货币对组合。根据敞口限制开仓,价格逆向移动时加仓(亏损后增加手数),部分平仓获利头寸。使用哈密顿闭合货币对组合确保所有货币净敞口为零。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 偏高
- 没有止损,也没有移动止损
- 最多可同时持有 3 个仓位
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
该EA基于D'Alembert下注系统——赢后减注、输后加注,通过追踪每种货币的净敞口来决定交易方向。入场条件:当某货币对无持仓且对应货币敞口未超限时,按预设方向(A数组)开仓;当价格朝不利方向移动超过TP阈值时,以最小手数加仓。出场条件:当价格朝有利方向移动超过阈值时部分平仓(减仓至最小手数后依靠TP平仓),或通过CleanBad函数在可接受亏损时强制减仓。仓位管理采用逐步加仓/减仓方式,每次增减LotMin手数,最大持仓受Limit_Position_Lot和Limit_Exposure_Lot双重限制。资金管理通过FreeBalance和BestBallance控制亏损平仓节奏,并设MinMargin保证金水平门槛和123.4%紧急保证金检查。ManageTP功能会在意外盈利时移动止盈点以锁定利润。整体策略核心是利用多货币对的自然对冲特性,通过哈密顿组合(如EURUSD-EURGBP-GBPUSD三角套利关系)维持低净敞口,再以D'Alembert方式在价格波动中逐步建仓和减仓。
优势
- 利用哈密顿货币对组合实现天然对冲,降低整体净敞口风险
- D'Alembert仓位管理在趋势回归时有较好的均价改善效果
- 双重敞口限制(单币种+单货币对)有效控制风险敞口过度集中
- ManageTP功能能在意外盈利时锁定收益,避免利润回吐
- 保证金水平和紧急检查(123.4%)提供了资金安全底线
劣势
- D'Alembert系统在单边趋势中会持续加仓,导致亏损不断放大
- 无止损(SL=0),完全依赖逐步减仓机制,极端行情下可能爆仓
- 全局变量I/J贯穿所有函数,存在严重的状态耦合和重入风险
- Exposure()函数中非EUR货币转换假设EUR+XXX始终存在,缺少容错处理
- 代码结构混乱,大量全局变量和隐式依赖,可读性和可维护性差
改进建议
- 添加硬止损(SL)作为极端行情的最后一道防线,避免爆仓风险
- 将全局变量I/J改为函数参数传递,消除状态耦合和重入隐患
- 在Exposure()中添加SymbolInfoDouble返回值检查,防止EUR+XXX货币对不存在时除零错误
风险评估
总体风险: 高风险
- 无硬止损(SL=0),极端行情下可能持续加仓至爆仓
- D'Alembert加仓策略在单边趋势中会导致亏损指数级增长
- 全局变量状态耦合导致函数重入时可能产生错误交易指令
- Exposure()中货币转换未做容错,SymbolInfoDouble返回0时将导致除零错误
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
WARNING | "NOT all Input is check to be correct !" | 输入参数未完全校验的警告提示 |
LastRiskDate | D'2012.12.17 23:59:59' / D'2011.12.17 23:59:59' | 风险交易截止日期,之后切换为无风险模式 |
MinMargin | 200.1 | 不允许加仓的最低保证金水平 |
KTP | 0.0025 / 0.0095 | 止盈占价格的百分比比例(0.01=1%) |
Limit_Position_Lot | 2.5 | 每个货币对的最大持仓手数 |
Limit_Exposure_Lot | 1.25 / 0.55 | 每种货币的最大净敞口手数 |
LotAtRisk | 1.75 / 0.75 | 发送订单时可接受的最大敞口差值(Val1-Val2) |
Inverse | false | 是否反转所有交易方向 |
ManageTP | true | 是否在意外盈利时快速移动止盈 |
ManageLOSS | true | 是否在亏损时降低开仓均价(减仓) |
NoWorkTime | 9 / 0 | 两次执行之间的最小间隔秒数(加速回测用) |
LotMX | 3 / 10 | 最小手数倍数(仅在最小手数为0.01时生效) |
KStart | 7 | 初始开仓手数倍数(仅eq3-06版本有) |
同类 EA:对冲
回测是历史模拟,不代表未来收益,不构成投资建议。