EA-14384 · 趋势跟踪
Exp_KalmanFilterCandle
该EA基于KalmanFilterCandle自定义指标进行交易,当指标信号颜色值转为2时开多仓,转为0时开空仓。它使用卡尔曼滤波器将价格行为平滑为类K线信号,并在每个新K线出现时执行交易,配有可配置的止损和止盈水平。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
该EA的核心策略基于卡尔曼滤波器(Kalman Filter)对价格进行平滑处理,生成类K线的趋势方向信号。入场条件为:当指标buffer第4线的颜色值从非2变为2时,触发买入开仓信号;当颜色值从非0变为0时,触发卖出开仓信号。出场条件分为两种:止损和止盈通过固定点数(StopLoss_=1000, TakeProfit_=2000)实现,同时趋势反转时也会平仓(BuyPosClose/SellPosClose)。仓位管理采用两种模式:固定手数或基于资金的百分比(由MM和MMMode参数控制),通过TradeAlgorithms.mqh库函数实现。资金管理方面,MM参数默认0.1,配合LOT或RISK模式决定下单量。策略在H4周期默认运行,使用SignalBar=1(前一根已闭合K线)来确认信号,避免未闭合K线的反复信号问题。EA还提供了四个布尔开关分别控制买入开仓、卖出开仓、买入平仓和卖出平仓,实现了灵活的信号执行控制。
优势
- 使用卡尔曼滤波器进行价格平滑,相比简单移动平均能有效减少滞后性同时过滤噪声
- 采用SignalBar=1确认已闭合K线信号,避免未闭合K线产生的虚假信号
- 提供四个独立的买卖开关,可灵活控制只开仓不平仓或只平仓不开仓
- 使用IsNewBar机制确保每个K线只计算一次信号,避免tick级别的重复计算
- 止损止盈配置完善,默认2:1的盈亏比有利于长期正期望
劣势
- 依赖外部自定义指标KalmanFilterCandle和TradeAlgorithms.mqh库,缺少这些文件EA无法运行
- 没有持仓检查机制,可能在已有同方向仓位时重复开仓
- 缺少点差过滤,在高点差环境下止损止盈可能被轻易触发
- 止损1000点和止盈2000点数值偏大,不适用于所有品种和周期
- 没有回撤控制或最大持仓限制,极端行情下风险敞口不可控
改进建议
- 添加持仓检查逻辑,避免同方向重复开仓导致仓位过重
- 增加点差过滤和时间过滤(如避开新闻时段),提高入场质量
- 将止损止盈改为基于ATR的动态计算,适应不同品种的波动特性
风险评估
总体风险: 中等
- 缺少持仓检查,可能同方向重复开仓导致过度杠杆
- 固定点数止损止盈不适应所有品种波动率,小波动品种可能止损过宽而大波动品种止损过窄
- 依赖外部指标文件,缺失时EA静默失败仅打印日志
评估得分
代码质量3.0
策略逻辑3.0
风险管理2.0
稳健性2.0
创新性4.0
文档1.0
综合2.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | 0.1 | 资金管理参数,控制下单手数或风险比例 |
MMMode | LOT | 手数计算模式:固定手数(LOT)或基于资金(RISK) |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大允许滑点(点数) |
BuyPosOpen | true | 是否允许买入开仓 |
SellPosOpen | true | 是否允许卖出开仓 |
BuyPosClose | true | 是否允许买入平仓(多仓平仓) |
SellPosClose | true | 是否允许卖出平仓(空仓平仓) |
InpInd_Timeframe | PERIOD_H4 | 指标计算的时间周期 |
SignalBar | 1 | 用于获取交易信号的K线索引(1=前一根已闭合K线) |
K | 1.0 | 卡尔曼滤波器的平滑系数,值越大响应越快 |
同类 EA:趋势跟踪
回测是历史模拟,不代表未来收益,不构成投资建议。