FibonacciRetracement
该EA利用ZigZag指标识别波段高低点,然后在最近的ZigZag波段上构建斐波那契回撤水平。在上升趋势中价格突破斐波那契支撑位时做多,在下降趋势中价格跌破斐波那契阻力位时做空,止损和止盈基于斐波那契扩展计算。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于斐波那契回撤理论,认为价格在趋势中会回撤至特定斐波那契比例水平后继续原趋势方向运行。入场条件:在上升趋势中,当收盘价突破23.6%、38.2%、61.8%或76.4%回撤位且前一根K线收盘价低于该水平时做多;在下降趋势中,当收盘价跌破上述回撤位且前一根K线收盘价高于该水平时做空。出场条件:止损设在固定点数(StopLossLevel参数)距离处,止盈设在Fibo00加上TakeProfitAt乘以FiboBASE的斐波那契扩展位。仓位管理采用固定手数(TradeValue参数),没有动态仓位调整机制。资金管理方面缺乏最大回撤控制、最大持仓限制和风险比例计算,仅依赖固定止损和止盈。趋势判断通过CheckTrend函数比较最近四个ZigZag拐点的高低关系来确定。
优势
- 基于经典的斐波那契回撤理论,逻辑清晰易懂
- 使用ZigZag指标自动识别波段拐点,避免主观判断
- 有明确的止损和止盈机制,不完全裸露风险
- 趋势过滤机制避免在震荡行情中频繁交易
- 交易间隔控制(CloseBarPause)防止止损后立即重入
劣势
- CheckTrend函数返回类型声明为bool但实际返回int值(-1,0,1),存在类型不匹配的严重bug
- 做空条件判断中写了'Buy condition is TRUE',实际应为Sell,属于复制粘贴错误
- TradeCheck函数中case 2(卖出)永远不会被调用,因为传入参数是-1而非2
- 固定手数交易没有根据账户资金或波动率进行动态调整
- 止损仅15点,在波动较大的市场中极易被扫损
- OnTrade中StringFind返回值判断逻辑有误,应与-1比较而非作为布尔值使用
改进建议
- 修复CheckTrend函数的返回类型为int,修复TradeCheck中sell分支的case值从2改为-1,修正所有复制粘贴错误
- 增加动态仓位管理,根据ATR或账户风险比例计算手数,并加入最大回撤保护和最大持仓限制
- 增加点差过滤和滑点保护,避免在高点差环境下入场,同时加入新K线判断防止同根K线重复交易
风险评估
总体风险: 高风险
- CheckTrend返回类型为bool但实际返回int,可能导致趋势判断失败或未定义行为
- TradeCheck的sell分支(case 2)永远无法执行,做空信号实际上不会下单
- 固定15点止损过小,在正常市场波动下极易触发止损
- 没有点差过滤,高点差时入场会显著增加交易成本
- 没有检查新K线,可能在同一根K线上重复发送交易请求
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
ExtDepth | 12 | ZigZag指标深度参数 |
ExtDeviation | 5 | ZigZag偏差参数 |
ExtBackStep | 3 | ZigZag回退步数参数 |
TradeValue | 1 | 交易手数 |
StopLossLevel | 15 | 止损距离(点数) |
TakeProfitAt | 0.2 | 止盈设在斐波那契扩展倍数处 |
SafetyBuffer | 1 | K线收盘价距斐波那契水平的安全缓冲(点数) |
TrendPrecision | -5 | 当前高点(低点)与前一个高点(低点)的距离阈值 |
CloseBarPause | 5 | 从平仓到下次交易的最小K线间隔 |
LevelColor | clrBlack | 斐波那契水平线颜色 |
同类 EA:均值回归
回测是历史模拟,不代表未来收益,不构成投资建议。