Futures Portfolio Control Expiration
该EA管理最多3个期货合约的投资组合,在当前合约临近到期时自动将仓位展期至下一个到期月份。它持续监控合约到期时间,在截止时间前自动平仓并移仓至远月合约。用户预先配置品种和手数(正数为做多,负数为做空)以维持对冲组合。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | -3.24% | -2.82% | 8.82% | 1 | 0.00% | — | — | — | — | 与其他 EA 结果相同 |
| GBPUSD | +2.78% | +2.41% | 6.56% | 1 | 0.00% | — | — | — | — | 与其他 EA 结果相同 |
| USDJPY | +2.41% | +2.09% | 6.62% | 1 | 0.00% | — | — | — | — | 与其他 EA 结果相同 |
| XAUUSD | -7.56% | -6.29% | 65.89% | 1 | 0.00% | — | — | — | — | 与其他 EA 结果相同 |
这个 EA 在每个品种上的回测都和 EA-16786 一模一样。几乎可以肯定是自动转换丢掉了它与众不同的部分(自定义指标、过滤条件或资金管理),所以这些结果不参与排名和统计。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 偏高
- 没有止损,也没有移动止损
- 最多可同时持有 3 个仓位
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
该EA的核心策略概念是期货投资组合的到期展期管理,而非传统意义上的方向性交易策略。入场条件非常简单:当选定的期货合约没有持仓时,根据预设的手数自动开仓——正数手数做多,负数手数做空。出场条件唯一:当合约到期时间距离当前时间小于hours_before_expiration小时时,自动平仓并展期到下一个月份合约。仓位管理完全由用户手动预设,EA不支持动态仓位调整或资金管理。EA使用Sleep(3000)进行延时操作,这在MQL5中并非最佳实践。NextFutures函数的逻辑较为复杂,通过遍历未来12个月查找下一个未到期合约,但其逻辑存在潜在缺陷——当currtime!=0时,只要找到比currtime更远的合约就停止,这可能不总是找到正确的下一个合约。
优势
- 自动展期功能避免了期货合约到期交割的风险,对持有长期组合的期货交易者非常实用
- 支持多品种组合管理(最多3个),允许做多做空混合配置,适合对冲策略
- 代码简洁易懂,逻辑清晰,便于用户根据自己的需求进行修改和扩展
劣势
- 使用Sleep(3000)阻塞EA线程,可能导致其他品种的行情处理延迟,在MQL5中不是推荐做法
- 没有任何止损或风控机制,如果展期失败或合约查找出错,可能导致无持仓裸露风险
- NextFutures函数的合约查找逻辑存在缺陷:当找到第一个比currtime更远的合约就停止,可能跳过正确的下一个近月合约
- Lot参数类型为int但默认值含小数点,类型不匹配可能导致编译警告或精度丢失
改进建议
- 移除Sleep()调用,改用事件驱动或定时器方式处理展期操作,避免阻塞EA线程
- 添加错误处理和重试机制,确保展期操作的可靠性,例如检查交易返回值和订单状态
- 将Lot参数类型改为double以支持更精确的仓位控制,并添加最大持仓和止损参数
风险评估
总体风险: 中等
- 无止损机制,展期失败时组合可能面临无对冲保护的市场风险
- Sleep()阻塞可能导致错过关键行情或展期时机
- 合约查找逻辑可能选错月份合约,导致持仓在不合适的合约上
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Symbol1 | MXI | 第一个期货品种选择 |
Symbol2 | BR | 第二个期货品种选择 |
Symbol3 | SBRF | 第三个期货品种选择 |
Lot1 | -4.0 | 第一个品种手数(正=做多,负=做空) |
Lot2 | -1.0 | 第二个品种手数(正=做多,负=做空) |
Lot3 | 5.0 | 第三个品种手数(正=做多,负=做空) |
hours_before_expiration | 25 | 到期前多少小时开始展期 |
同类 EA:对冲
回测是历史模拟,不代表未来收益,不构成投资建议。