#30419·ccxt

hyperliquid: unWatchOHLCV 回拒了在此期间重新启动的订阅 (watch -> unwatch -> watch 会引发 UnsubscribeError)

作者: PitbullDigital创建于 2026年9月14日更新于 2026年9月14日
标签bugws

操作系统

无回复( N)

编程语言

ZZ1ZZ

CCXT 版本

4.5.78 联合国

说明

-- -- . . .

环境

  • ccxt 4.5.76(Freqtrade 2026.8 Docker图像,Python 3.14.7)和4.5.78(最新发布,今天核实)——也出现在目前的 " 主机 " 中。
  • 交换: " 高流动性 " (USDC perps), " cct.pro "
  • 只有公共市场数据——没有涉及API键
  • 下面的复制机,运行于~30s

页:1

签署、不签署并重新签署** 相同的符号/时限** 杀死新的 如果重新订阅发生在未订阅确认到达之前, 则订阅 :

  • watch-ohlcv()'在撞击后立即提出不订阅 ' ,
  • 溪流从不传递蜡烛

这不是一个异国序列。 长期消费的消费者在正常操作时生产这种产品。 ——例如freqtrade的websocket层结束一个监视任务 当“ 清理 过期( )” 丢出一对时, 拨打“ un watch ohlcv( ) ” , 并重排同一对时 几秒钟后

最小复制器

#!/usr/bin/env 蟒蛇3
"" ccxt.pro超液态不订阅/再订阅种族的最小复制器.

这里复制的序列是 Freqtrade 的网口层产生的
正常操作( freqtrade/ 交换/ 交换  ws. py) :

watch ohlcv (.) # 任务 A 正在运行
- > 任务 A 结束 # 如清理  已过期() 丢弃对
- > un watch ohlcv(.) # 未订阅者发送(同步)
- > watch ohlcv (.) # 同一对/时间框架被立即重排

央视当前ccxt(4.5.76和4.5.78):重新订阅后死亡.
`不订阅 ' ,从来不提供蜡烛,因为不订阅的阿克
拒绝通过重新订阅武装的未来。

步骤 :
1. 控制:新鲜订阅 -- > 期待蜡烛
2. 控制:未完全订阅,然后重新订阅 - > 期待蜡烛
3. bug:在飞行中不订阅 + 立即重新订阅 - > 期望未订阅 Error
4. 恢复:再次订阅 -- -- > 期待蜡烛

出站代码为0=bug复制,1=未复制.
"" "" ""

导入 Ayncio
导入 sys
导入时间

导入 ccxt
导入 ccxt.pro 作为 ccxtpro

时间=30.0
控制=“BTC/USDC:USDC”
控制2 平方英寸=“ETH/USDC:USDC”
BUG PAIR = “XRP/USDC:USDC”
时间FRAME = "5m"


aync def watch once(ex, pair, 时间段, 标签, 结果, 超时=TIMEOUT) :
""等待一个手表 Ohlcv呼叫并记录结果"".
启动 = 时间. time ()
尝试 :
数据 = 等待 ayncio.wait for(ex.watch ohlcv(pair,时间段),超时)
results.append ((标签, “OK” , f “ {len( data) ”) 蜡烛, time.time( ) - start)
返回真
除了阿辛西奥 超时错误 :
结果. append (( 标签, “TIMEOUT”, f" 在 {timeout: 0f} s, time.time( ) - start) 内没有数据)
除了阿辛西奥 已取消错误 :
结果. 附录((标签,“CANCELLED”,“),时间.time() - start))
除外
. . . . . . .