EA-1162 · 多周期
Smatf
该EA使用基于3个时间周期上5条SMA(周期5、8、13、21、34)和加速振荡器的多周期评分系统来生成买卖信号。每个指标贡献一个分数,当综合评分超过可配置阈值时开仓。包含止损、止盈、追踪止损和基本仓位管理功能。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念是综合多时间周期多均线方向与加速振荡器的评分系统。入场条件为:三个时间周期(M15、H1、H4)的上涨评分或下跌评分均超过50(OpenLevel=0时)则开仓,超过75则为强信号。每个时间周期中,5条SMA若当前值大于前值则贡献1分(上涨),反之为0分;AC指标若符合特定连续递增/递减模式则贡献3分,总分乘以12.5得到百分比评分。出场条件为:反向评分超过CloseLevel阈值时平仓,也可设置止损止盈出场。仓位管理采用固定手数(默认0.1手),无动态调仓机制。资金管理方面缺乏风控逻辑,无最大回撤限制或账户权益保护机制。追踪止损功能仅在价格超过开仓价后才开始生效,属于保本型追踪。
优势
- 多时间周期共识机制降低了假信号概率,三个周期同向才开仓
- 评分系统设计合理,将多个指标方向量化为百分比便于理解
- 使用已成形K线(Shift=1)判断信号,避免当前K线变化导致的信号闪烁
- 包含止损止盈和追踪止损,提供基本风险控制手段
劣势
- 代码结构极度冗余,大量重复的全局变量和if-else判断可用循环和数组替代
- 固定手数无资金管理,不根据账户余额或波动率调整仓位
- 止损止盈使用点数而非ATR动态计算,在不同波动率环境下可能不适配
- 追踪止损仅在盈利超过开仓价后触发,缺乏亏损时的保护机制
- SolveLots函数实际上是空壳,未实现任何有意义的仓位计算逻辑
改进建议
- 用数组和循环替代大量重复的全局变量和if-else代码块,大幅提升可读性和可维护性
- 实现基于账户余额或ATR波动的动态仓位管理,替代当前的固定手数方案
- 增加最大回撤限制、最大同时持仓数和日内亏损限制等资金管理保护机制
风险评估
总体风险: 中等
- 固定手数无资金管理,在连续亏损时无法自动缩减仓位
- SolveLots函数为空壳,名为'根据交易结果确定手数'但实际未实现
- 止损止盈使用固定点数,在高波动品种上550点可能过小导致频繁止损
评估得分
代码质量1.0
策略逻辑3.0
风险管理2.0
稳健性2.0
创新性2.0
文档1.0
综合1.8
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
TF1 | PERIOD_M15 | 第一时间周期 |
TF2 | PERIOD_H1 | 第二时间周期 |
TF3 | PERIOD_H4 | 第三时间周期 |
maTrendPeriodv_1 | 5 | 第一条SMA周期 |
maTrendPeriodv_2 | 8 | 第二条SMA周期 |
maTrendPeriodv_3 | 13 | 第三条SMA周期 |
maTrendPeriodv_4 | 21 | 第四条SMA周期 |
maTrendPeriodv_5 | 34 | 第五条SMA周期 |
Shift | 1 | 指标检查的K线偏移(0=当前K线,1=已完成的K线) |
OpenLevel | 0 | 开仓信号阈值(0或1) |
CloseLevel | 0 | 平仓信号阈值(0或1,2=关闭平仓信号) |
Lots | 0.1 | 固定交易手数 |
StopLoss | 550 | 止损点数(0=无止损) |
TakeProfit | 550 | 止盈点数(0=无止盈) |
Trailing | 0 | 追踪止损点数(0=关闭追踪) |
同类 EA:多周期
回测是历史模拟,不代表未来收益,不构成投资建议。