Kloss
Kloss EA是一个均值回归交易系统,使用CCI、随机指标和LWMA来识别超买超卖条件进行入场。当CCI深度超卖、随机指标主线下穿阈值且价格高于均线时买入,反之卖出。它具有MWMode机制,在仓位建立后再设置止损止盈,以避免因止损距离过近而被券商拒绝。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | +3.66% | +3.17% | 3.35% | 142 | 54.60% | 0.78 | 1.09 | 5 | +$2.84 | 可靠 |
| GBPUSD | +9.98% | +8.62% | 4.22% | 144 | 57.30% | 1.57 | 2.37 | 4 | +$7.15 | 可靠 |
| USDJPY | -2.17% | -1.89% | 7.55% | 144 | 51.70% | -0.37 | -0.29 | 5 | −$1.63 | 可靠 |
| XAUUSD | -57.48% | -50.67% | 100.00% | 151 | 49.00% | 0.77 | -0.57 | 5 | −$38.07 | 可靠 |
在 4 个有可信结果的品种中,2 个盈利。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
和同类(均值回归)在同一品种上有可信结果的 EA 相比:EURUSD 好于 80%(共 30 个);GBPUSD 好于 97%(共 32 个);USDJPY 好于 31%(共 32 个);XAUUSD 好于 23%(共 31 个)
按月看
| 品种 | 盈利月份占比 | 最好的月份 | 最差的月份 |
|---|---|---|---|
| EURUSD | 69% | +2.31% 2026-07 | -2.09% 2026-09 |
| GBPUSD | 69% | +3.25% 2026-07 | -1.81% 2026-01 |
| USDJPY | 46% | +3.32% 2026-09 | -3.89% 2026-01 |
| XAUUSD | 38% | +42.14% 2026-05 | -50.86% 2026-01 |
根据回测净值曲线计算(约每两天一个点),只统计可信结果。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
该策略基于均值回归概念,认为价格偏离均值后会回归。入场条件:买入信号要求CCI低于-CCIDiffer(默认-120)、随机指标主线低于50-StDiffer(默认30)、且收盘价高于LWMA均线;卖出信号则相反,CCI高于+CCIDiffer、随机指标高于50+StDiffer、收盘价低于均线。出场条件有两种:一是止损止盈触发(默认各550点),二是当RevClose开启时,反向信号出现即平仓。仓位管理支持固定手数和基于风险的动态手数计算,当Lots=0时使用账户自由保证金乘以MaximumRisk计算手数。资金管理通过fLotsNormalize函数将手数规范化为符合券商最小手数和步长要求。MWMode机制是一个巧妙设计,先用0止损止盈开仓,然后在下一个tick通过PositionModify设置真实止损止盈,并调整至满足StopsLevel要求,避免开仓时止损过近被拒绝。
优势
- 三重指标过滤(CCI+随机+MA)减少了虚假信号,入场条件较严格
- MWMode机制巧妙解决了止损过近被券商拒绝的问题,提高了开仓成功率
- 仓位管理支持固定手数和动态风险计算两种模式,灵活性好
- 止损止盈对称设置且均可设为0关闭,给交易者充分的参数调节空间
- 指标参数和偏移参数均可调,便于优化和回测不同时间框架
劣势
- MAPeriod默认为1,周期为1的LWMA本质上就是价格本身,作为过滤器意义不大
- 动态手数计算公式(FreeMargin*MaximumRisk/1000)缺乏理论依据,未考虑止损距离
- SolveLots函数中rv变量始终为true,没有实际的手数有效性验证
- 没有新K线检查机制(仅用ZeroBar或时间比较),在ZeroBar为true时可能每tick都交易
- 没有点差过滤,在点差较大时仍可能入场,对均值回归策略不利
改进建议
- 将MAPeriod默认值从1改为合理周期(如14-20),使MA真正起到趋势过滤作用
- 改进动态手数计算,应基于止损距离计算风险,即手数=风险金额/(止损点数*每点价值),这是标准的仓位管理方法
- 添加点差过滤,当点差超过阈值时不入场,避免滑点过大
风险评估
总体风险: 中等
- MAPeriod=1使MA过滤失效,策略缺少趋势方向确认,可能在逆势中频繁入场
- 手数计算未考虑止损距离,高波动品种可能导致单笔风险过大
- ZeroBar为true时缺乏有效的新K线检查,可能导致同一根K线内重复交易
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Lots | 0.1 | 固定手数,为0时使用动态风险计算 |
MaximumRisk | 0.05 | 风险比例,当Lots=0时用于动态计算手数 |
StopLoss | 550 | 止损点数,0表示不设止损 |
TakeProfit | 550 | 止盈点数,0表示不设止盈 |
RevClose | true | 是否在出现反向信号时平仓 |
MAPeriod | 1 | MA均线周期 |
MAMethod | MODE_LWMA | MA均线方法,默认线性加权移动平均 |
MAPrice | PRICE_TYPICAL | MA应用价格类型 |
MAShift | 5 | MA取值的K线偏移 |
PShift | 1 | 价格取值的K线偏移 |
CCIPeriod | 10 | CCI指标周期 |
CCIPrice | PRICE_WEIGHTED | CCI应用价格类型 |
CCIDiffer | 120 | CCI阈值,双向偏离0的水平 |
CCIShift | 0 | CCI检查的K线偏移 |
StKPeriod | 5 | 随机指标K线周期 |
StDPeriod | 3 | 随机指标D线周期 |
StSPeriod | 3 | 随机指标平滑周期 |
StMethod | MODE_SMA | 随机指标计算方法 |
StPrice | STO_LOWHIGH | 随机指标价格类型 |
StShift | 0 | 随机指标检查的K线偏移 |
StDiffer | 20 | 随机指标阈值,双向偏离50的水平 |
CommonShift | 1 | 通用偏移,加到所有指标的Shift变量上 |
MWMode | true | 是否在开仓后设置止损止盈(避免开仓时被拒) |
同类 EA:均值回归
回测是历史模拟,不代表未来收益,不构成投资建议。