Exp_FisherCGOscillator
该EA基于FisherCGOscillator自定义指标进行交易,当振荡器线上穿信号线时产生买入信号,下穿时产生卖出信号。支持可配置的资金管理模式、止损止盈,以及独立的多空开平仓权限控制。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于FisherCGOscillator振荡器的趋势动量交叉信号,属于典型的动量跟踪策略。入场条件为:振荡器线(Ind)上穿信号线(Sign)时开多仓,下穿时开空仓,仅在信号确认后的新K线触发交易。出场条件包括固定点数的止损和止盈,以及反向信号触发的平仓(多仓在卖出信号时平仓,空仓在买入信号时平仓)。仓位管理通过MM参数控制存款份额,支持五种模式:自由保证金、余额、损失自由保证金、损失余额和固定手数。资金管理使用TradeAlgorithms.mqh库封装的标准化交易函数,包含最大价格偏差控制和信号时间戳追踪以防止重复交易。策略默认使用H8周期和10周期的指标参数,SignalBar=1表示使用前一根已闭合K线的信号,避免未完成K线的虚假信号。
优势
- 使用Fisher变换平滑振荡器信号,减少虚假交叉信号,提高交易质量
- 多空开平仓权限独立控制,灵活性高,可单独禁用某个方向的交易
- 采用新K线检测机制和SignalBar=1默认值,有效避免未闭合K线的信号重绘问题
- 五种资金管理模式可选,适应不同风险偏好和账户类型
- 止损止盈参数明确,默认2:1的盈亏比合理
劣势
- 依赖自定义指标FisherCGOscillator,如果指标文件缺失则EA无法运行且错误处理不充分
- 缺少点差过滤和交易时段过滤,在低流动性时段可能产生不利成交
- 固定点数止损止盈未考虑不同品种的波动率差异,可能对某些品种不适用
- OnInit中指标句柄获取失败仅打印警告未返回错误码,EA会继续运行但无法正常交易
- 未检测是否已有同方向持仓,可能在已有持仓时重复开仓
改进建议
- 在OnInit中指标句柄无效时应返回INIT_FAILED而非继续运行,并在OnTick中增加句柄有效性检查
- 增加点差过滤和交易时段过滤,避免高点差和非活跃时段的不利成交
- 考虑使用ATR动态调整止损止盈,适应不同品种和波动率环境
风险评估
总体风险: 中等
- 指标句柄获取失败时EA仍继续运行但不产生交易信号,可能导致错过交易机会而用户不知情
- 固定点数止损未根据品种波动率调整,高波动品种可能频繁止损,低波动品种止损可能过大
- 无持仓检查机制,可能在已有同方向仓位时重复开仓导致过度敞口
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | 0.1 | 每笔交易占存款份额 |
MMMode | LOT | 手数计算方法(自由保证金/余额/损失份额/固定手数) |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大价格滑点偏差 |
BuyPosOpen | true | 允许开多仓 |
SellPosOpen | true | 允许开空仓 |
BuyPosClose | true | 允许平多仓 |
SellPosClose | true | 允许平空仓 |
InpInd_Timeframe | PERIOD_H8 | 指标计算的时间周期 |
Length | 10 | FisherCGOscillator指标周期 |
SignalBar | 1 | 获取入场信号的K线编号 |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。