时怎么排查?)
Freqtrade 提示交易对不可用pair is not available时怎么排查【免费下载链接】freqtradeFree, open source crypto trading bot项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade在 Freqtrade 中运行 dry-run、live 或下载数据时如果日志出现类似 “this pair is not available” / “Pair X not available” 的报错说明 bot 没有把配置里写的交易对识别为交易所上可交易的市场。Freqtrade 遵循 ccxt 的命名约定官方文档明确指出在错误的市场类型下使用了错误的命名约定通常就会导致 bot 无法识别交易对并抛出 “this pair is not available” 之类的错误。排查的核心任务只有一件事确认你写进配置的交易对在对应交易所、对应交易模式下真实存在且处于 active 状态并且命名格式与交易模式匹配。报错的两个来源条件在 exchange 实现中fetch_ticker()等调用在访问市场前会做如下检查if pair not in self.markets or self.markets[pair].get(active, False) is False: raise ExchangeError(fPair {pair} not available)也就是说触发该报错只有两种情况排查时应逐一对应交易所市场列表里根本没有这个 pair——通常是命名格式写错例如把现货 pair 当成期货 pair 写或 base/quote 顺序颠倒市场存在但active标志为 False——即交易所当前暂停交易该市场。后面两个小节分别针对这两种情况给出核对方法。先核对交易对的命名格式bot-basics 给出了两种市场的标准命名交易模式命名格式示例Spot现货base/quoteETH/USDTFutures期货base/quote:settleETH/USDT:USDT把配置pairs里的每个条目对照上表检查一遍如果你的 bot 跑在现货模式条目必须是base/quote不能带:USDT后缀如果跑在期货模式条目必须带结算币后缀例如ETH/USDT:USDT注意区分 quote 和 baseXRP/USDT中XRP是 baseUSDT是 quote顺序写反会得到一个不存在于市场列表的字符串落入上述第一种情况。另外要交叉检查 quote 币种Freqtrade 中 pair 的 quote 币种由配置项stake_currency决定见 utils.md 的 “List pairs/list markets” 一节。如果stake_currency是USDT而pairs里写了XRP/BTC即使该市场在交易所存在也不属于你配置的交易范围应改成与 stake 一致的 quote。用 list-pairs 确认 pair 是否存在且 active命名核对无误后用freqtrade list-pairs直接查询交易所实际可交易的 pair 列表。该子命令的完整参数见 commands/list-pairs.md常用用法如下# 按配置文件中的交易所查询按 quote 币种过滤输出 JSON freqtrade list-pairs -c config_binance.json --quote USDT --print-json不带配置文件时可以用--exchange直接指定交易所并建议加上--trading-mode区分市场类型freqtrade list-pairs --exchange binance --trading-mode futures --quote USDT --print-list判断结果默认输出只列 active pair中能看到该 pairpair 存在且可交易报错多半来自配置里写错的命名——回到上一步把pairs条目改成列表中的精确字符串大小写、分隔符都要一致。默认输出中看不到但加上-a/--all后能看到市场存在但当前非 active即active为 False这是实现中触发Pair {pair} not available的直接条件。此时属于交易所侧暂停交易需要等市场恢复或更换交易对。加上-a仍然看不到该命名在这家交易所/该交易模式下不存在属于命名或交易所选错回到命名核对。-a选项的说明原文“Print all pairs or market symbols. By default only active ones are shown.”如果你通过 Docker 部署不需要进入容器可以直接运行只读查询来自 docker_quickstart 的示例形式docker run --rm freqtradeorg/freqtrade:stable list-pairs --exchange binance --quote BTC --print-json其他会影响该报错的已知情况Hyperliquid 的 HIP-3 pair 命名不同exchanges.md 指出 HIP-3 的 pair 名称与常规 pair 略有差异并明确建议用list-pairs子命令获取指定 dex 下所有 pair 的正确命名。在 Hyperliquid 上遇到此类报错时应以list-pairs输出为准而不是按习惯拼写。极小价格的市场可能被标记为不可交易utils.md 说明当市场最小可交易价格小于1e-110.00000000001时pair 可能以 untradeable 形式列出。若list-pairs结果中该 pair 处于这种状态说明它实际无法用于下单。动态 pairlist 配置问题如果pairs不是手写而是由动态 pairlist 插件生成可以先用test-pairlist子命令测试 pairlist 配置utils.md 的 “Test pairlist” 一节确认生成结果里是否包含目标 pair。排查结论与验证按上面的顺序走完成功条件很明确pairs配置中的条目与list-pairs不加-a的默认输出中列出的 active pair 完全一致命名格式与trading_mode匹配重新运行原命令trade、download-data等不再出现 “not available” 报错。若默认列表查不到而-a能查到则该市场当前不 active属于交易所侧状态无法通过改配置解决若加-a也查不到则必须更换 pair 名称或交易模式。list-pairs和list-markets的参数完全相同后者列出的是全部 market含不含/的符号当需要确认交易所对该市场使用了什么符号形式时可以用list-markets对照查看。【免费下载链接】freqtradeFree, open source crypto trading bot项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考