第 6 章 · 06 Edge 边缘分析(已移除)


文档摘要

第 6 章 · 06 Edge 边缘分析(已移除) 本节摘要:本节讲清一个在 freqtrade 历史上存在过、但已在 2025.6 版本被移除的模块——Edge(边缘分析)。Edge 的设计初衷是「按交易对逐一估算期望收益,自动剔除表现劣质的币,只交易历史胜算高的币」。它在概念上很有吸引力,因此旧文档、旧博客、第三方教程里仍大量出现。但官方在 中明确: 本节讲清三件事:Edge 原本想解决什么问题、它为什么被废弃、以及现代 freqtrade 用户应该用什么替代方案来达到「按交易对筛选」的目标。 内容来源:原项目文档 (Removal of the edge module)、 (残留命令签名),汉化并套用体系化模板。

第 6 章 · 06 Edge 边缘分析(已移除)

本节摘要:本节讲清一个在 freqtrade 历史上存在过、但已在 2025.6 版本被移除的模块——Edge(边缘分析)。Edge 的设计初衷是「按交易对逐一估算期望收益,自动剔除表现劣质的币,只交易历史胜算高的币」。它在概念上很有吸引力,因此旧文档、旧博客、第三方教程里仍大量出现。但官方在 docs/deprecated.md 中明确:The edge module has been deprecated in 2023.9 and removed in 2025.6. All functionalities of edge have been removed, and having edge configured will result in an error. 本节讲清三件事:Edge 原本想解决什么问题、它为什么被废弃、以及现代 freqtrade 用户应该用什么替代方案来达到「按交易对筛选」的目标。

内容来源:原项目文档 docs/deprecated.md(Removal of the edge module)、docs/commands/edge.md(残留命令签名),汉化并套用体系化模板。

⚠️ 重要提示:如果你从旧教程或旧配置里拷贝了 Edge 相关配置(如 "edge": {...}process_only_new_candles 之外的 edge 字段),新版本会直接报错。请按本节末尾的「迁移清单」清理。

学习目标

阅读完本节,你应当能够:

  1. 描述 Edge 模块原本的设计目标(按交易对估期望、自动剔劣币)。
  2. 说清它被废弃并移除的时间线和官方原因。
  3. 解释为什么「按历史表现剔币」这个思路本身有风险(过拟合、幸存者偏差)。
  4. 用现代 freqtrade 的 替代方案 达到类似目标(pairlist 插件、回测的 Worst Pair、Hyperopt 的 per-pair 损失)。
  5. 清理旧配置里的 edge 残留

一、Edge 原本想解决什么问题

在已被移除的旧设计里,Edge(「Edge Positioning」)是一个独立的模块,理念是:

不是所有币都值得交易。根据每个交易对的历史回测表现,估算它的「期望收益(expectancy)」,然后只交易期望为正的币,自动剔除那些历史上亏多赚少的劣质币。

它的工作流程大致是:

旧版 freqtrade edge 命令会输出一张表,列出每个交易对的预估胜率、期望收益、止损范围、是否被保留等信息。配置里曾有 "edge": {...} 段落控制它的参数(如 capital_available_percentageallowed_riskstop_range 等)。

二、Edge 已被废弃并移除

这是本节最关键的事实。官方文档 docs/deprecated.md 明确写:

Removal of the edge module

The edge module has been deprecated in 2023.9 and removed in 2025.6.
All functionalities of edge have been removed, and having edge configured will result in an error.

时间线:

时间 状态
2023.9 之前 Edge 可用,但有诸多已知问题
2023.9 标记为 deprecated(废弃,仍可用但有警告)
2025.6 完全移除;配置里残留 edge 字段会直接报错

本教程所基于的 freqtrade 版本(2026.x)已经没有 Edge 模块——freqtrade/plugins/ 目录下已无 edge 相关代码,docs/ 下也只剩 commands/edge.md 这个命令签名的残留文件(实际执行会失败)。

⚠️ 配置报错:如果你的 config.json 里有 "edge": {...} 段落,新版本启动会报错。必须删除整个 edge 配置段。

三、为什么 Edge 被废弃

官方没有长篇说明,但从 Edge 的设计缺陷和社区反馈可以推断主要原因:

1. 过拟合与幸存者偏差

「按历史表现剔币」本质是用过去预测未来——这正是量化的核心陷阱:

  • 某币过去 30 天表现好,可能只是碰上它的「主场行情」,下个月风格切换就失效。
  • 按历史表现筛选,会系统性地剔除掉那些「即将迎来主场行情」的币,留下「已涨到头」的币。
  • 这是典型的幸存者偏差过拟合叠加。

2. 与现代白名单机制冲突

freqtrade 后来发展出了成熟的 pairlist 插件体系(见第 2 章),能用更透明、更可控的方式动态调整交易对:按成交量、波动率、变化率等客观指标筛选。Edge 的「按回测表现筛选」既慢(要逐个回测)、又黑盒(参数多)、还容易过拟合,被 pairlist 体系全面超越。

3. 维护成本高、收益低

Edge 是一个相对独立、复杂、与主回测引擎重复的子系统。维护它需要额外精力,而用户实际使用率低、且常因过拟合给出误导性建议。官方选择移除它,集中精力在更核心的功能(回测、Hyperopt、FreqAI)上。

四、现代替代方案

如果你的目标是「只交易有赚钱潜力的币」,Edge 没了,但有几个更好的现代替代:

替代 1:pairlist 插件(推荐)

用 pairlist 插件按客观市场指标筛选,而不是按历史回测表现:

"pairlists": [ {"method": "StaticPairList"}, // 或 VolumePairList 等动态来源 { "method": "RangeStabilityFilter", "lookback_days": 10, "min_rate_of_change": 0.02, "refresh_period": 86400 }, { "method": "VolatilityStabilityFilter", "lookback_days": 10, "min_volatility": 0.02, "max_volatility": 0.75 } ]

这类过滤器剔除「死气沉沉」或「过激波动」的币,留下波动适中的——比「按历史盈亏剔」更稳健、不易过拟合。

替代 2:回测报告里的 Worst Pair

跑完回测后,看汇总指标里的 Worst Pair 和按交易对的盈亏表(第 02 节):

│ Best Pair │ LTC/USDT:USDT 5.69% │ │ Worst Pair │ ADA/USDT:USDT -5.21% │

人工分析「为什么某个币总是亏」——是流动性差?滑点大?策略逻辑不适配它的波动特性?找到原因后,要么改策略,要么把它加入黑名单。这是离线分析,不是自动剔币,但更透明、更能积累认知。

替代 3:Hyperopt 的 per-pair 损失

第 7 章会讲 MaxDrawDownPerPairHyperOptLoss 这类损失函数——它强制优化器关注每个交易对,不让一两个好币掩盖其他币的亏损。这是「从参数层面解决 per-pair 不均衡」,比 Edge 的事后剔币更治本。

替代 4:静态黑名单

最朴素也最有效——把长期观察下来确实不适合你策略的币(流动性极差、经常插针、被监管等)放进 exchange.pair_blacklist:

"exchange": { "pair_blacklist": ["BTC/USDT", "DOGE/USDT"] // 例:策略不适配的 }

五、迁移清单:清理 Edge 残留

如果你接手了旧项目或从老教程拷了配置,按这个清单清理:

  1. 删 config 里的 edge 段:打开 config.json,搜索 "edge",删除整个段落(含其下所有子键)。
  2. 删策略里的 edge 引用:旧策略文件可能有 if self.config.get('edge', ...) 之类代码,删掉或改写。
  3. 检查命令行:别再用 freqtrade edge ... 命令(会失败)。
  4. 更新文档/脚本:团队 wiki、部署脚本里如果有 edge 相关步骤,清理掉。
  5. 换用替代方案:按上一节选一个现代替代(pairlist 过滤器最常见)。

💡 验证:清理后用 freqtrade show-config -c config.json 看生效配置,确认 edge 字段已消失,再启动机器人。

六、为什么本教程仍保留这一节

你可能会问:既然 Edge 没了,为什么还专门写一节?三个理由:

  1. 历史认知:大量旧博客、视频、GitHub 项目仍提到 Edge。读者搜到这些资料时会困惑,本节帮你认清「那是过去式」。
  2. 迁移指引:从旧项目迁移过来的用户需要知道怎么清理、怎么换。
  3. 概念警示:理解「为什么按历史表现剔币会过拟合」,对设计任何「动态币种筛选」都有借鉴意义——避免重蹈 Edge 的覆辙。

本节要点回顾

  1. Edge 的旧设计:按交易对逐个估期望收益,自动剔劣质币,只交易历史胜算高的币。
  2. 已被移除:2023.9 标记 deprecated,2025.6 完全移除;新版本配置里残留 edge 字段会报错。
  3. 废弃原因:按历史表现剔币会过拟合 + 幸存者偏差;与现代 pairlist 体系冲突;维护成本高、收益低。
  4. 现代替代:pairlist 插件(RangeStabilityFilter 等,按客观市场指标)、回测 Worst Pair 离线分析、Hyperopt 的 per-pair 损失、静态黑名单。
  5. 迁移清单:删 config 的 "edge" 段、删策略里的 edge 引用、别再用 freqtrade edge 命令、换用 pairlist 过滤器、show-config 验证。
  6. 保留本节的意义:旧资料仍多,需澄清历史;给迁移用户指引;警示「按历史表现动态筛币」的过拟合陷阱。

至此第 6 章结束。下一章(第 7 章)我们进入 Hyperopt——用 Optuna 的贝叶斯优化,自动在参数空间里搜索最优策略参数。


发布者: 作者: 灏天文库 转发
评论区 (0)
U