EA-13636 · 动量
Exp_ForecastOscilator
该EA基于ForecastOscilator自定义指标进行交易,在指标上穿信号时开多仓,下穿信号时开空仓。支持多种资金管理模式、止损止盈设置,以及独立的入场和出场信号开关。策略属于基于信号的动量系统,带有反向信号出场逻辑。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
策略概念基于ForecastOscilator振荡器指标的信号判断,该指标通过T3平滑算法和可配置的长度参数生成趋势动量信号。入场条件为:当指标缓冲区3(上穿信号)有效时触发买入开仓,缓冲区2(下穿信号)有效时触发卖出开仓,每个方向的开仓和信号检测可独立开关控制。出场条件包含两种逻辑:一是反向信号出场(买入平仓由下穿信号触发,卖出平仓由上穿信号触发),二是止损止盈出场。仓位管理通过TradeAlgorithms.mqh库实现,支持五种模式:自由保证金比例、余额比例、含亏损的自由保证金比例、含亏损的余额比例和固定手数。资金管理方面,MM参数控制风险比例,默认0.1即10%,配合MMMode选择具体计算方式。出场逻辑中还有一个历史回溯机制:当同时允许开仓和平仓且当前无平仓信号时,会向前遍历历史K线查找更早的反向信号以决定是否平仓,这增加了策略的灵活性但也增加了回测与实盘的一致性风险。
优势
- 独立的入场和出场开关设计灵活,可以仅使用信号入场而用止损止盈出场,或仅用信号平仓而不开新仓
- 支持五种资金管理模式,适应不同风险偏好的交易者
- 使用已完成的K线(SignalBar=1)进行信号判断,避免当前bar信号闪烁导致的重复交易
- 止损和止盈参数独立配置,风险控制明确
- 新bar检测机制避免同一根K线内重复处理信号
劣势
- 历史回溯遍历K线查找反向信号的逻辑复杂且可能造成回测与实盘行为不一致,实盘中历史信号可能在后续bar上才被发现
- 依赖外部自定义指标ForecastOscilator和TradeAlgorithms库,缺少这些文件EA将无法运行,可移植性差
- 没有点差过滤和交易时间过滤,在高点差时段或非活跃时段可能产生不利成交
- 止损1000点和止盈2000点的默认值过大,对不同品种需要大幅调整,缺乏自适应机制
- 没有持仓检查逻辑,可能在已有同方向持仓时重复开仓
改进建议
- 增加持仓检查逻辑,在开仓前确认当前没有同方向持仓,避免重复开仓
- 添加点差过滤和交易时段过滤,避免不利条件下的成交
- 移除或简化历史K线回溯出场逻辑,改为仅使用当前bar信号判断出场,提高回测与实盘一致性
风险评估
总体风险: 中等
- 没有持仓检查,可能重复开仓导致过度集中风险
- 历史K线回溯出场逻辑在实盘中可能表现与回测不一致
- 默认止损止盈点数过大,未对品种波动率做自适应调整
评估得分
代码质量3.0
策略逻辑3.0
风险管理3.0
稳健性2.0
创新性2.0
文档1.0
综合2.3
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | 0.1 | 资金管理比例,控制每笔交易的风险占比 |
MMMode | LOT | 资金管理模式:自由保证金/余额/含亏损保证金/含亏损余额/固定手数 |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大滑点容忍值 |
BuyPosOpen | true | 是否允许买入开仓 |
SellPosOpen | true | 是否允许卖出开仓 |
BuyPosClose | true | 是否允许买入平仓(反向信号) |
SellPosClose | true | 是否允许卖出平仓(反向信号) |
InpInd_Timeframe | PERIOD_H12 | ForecastOscilator指标的时间周期 |
length | 15 | ForecastOscilator指标的长度参数 |
t3 | 3 | T3平滑算法的周期参数 |
b | 0.7 | T3平滑算法的体积因子 |
IPC | PRICE_CLOSE_ | 指标计算使用的价格类型 |
SignalBar | 1 | 用于信号判断的K线索引(0=当前bar,1=已完成bar) |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。