精选75ccxt(GitHub Releases)交易所与金融 API
CCXT v4.5.76:多交易所 WebSocket 认证单飞修复,官方 MCP 服务器上线
v4.5.76
推荐理由
CCXT 是量化交易者依赖的核心库,本次修复涉及多个主流交易所的 WebSocket 认证与数据解析,直接影响交易稳定性,建议升级到 v4.5.76。
What's Changed
变更内容
- fix(lbank): single-flight subscribeKey authenticate (refs #29393) by @carlotestor in #29993
- fix(bitstamp): single-flight websocket token authenticate (refs #29393) by @carlotestor in #29994
- fix(xt): single-flight listen key acquisition (refs #29393) by @carlotestor in #29997
- fix(kraken): single-flight websockets token authenticate (refs #29393) by @carlotestor in #29996
- fix(whitebit): single-flight websocket token authenticate (refs #29393) by @carlotestor in #30000
- fix(bitrue): single-flight listenKey authenticate (refs #29393) by @carlotestor in #29999
- fix(hashkey): single-flight listenKey authenticate (refs #29393) by @carlotestor in #29995
- fix(tokocrypto): route fetchTrades by symbol type and await the open/v1 response by @rayBastard in #30013
- fix(bingx): correct fetchTrades limits by @AresArtemius in #30011
- fix(deepcoin): single-flight listenKey authenticate (refs #29393) by @carlotestor in #29998
- fix(bybit): anchor fetchOpenInterestHistory window when only since is given by @carlotestor in #30016
- fix(bithumb): remove incorrect ALT -> ArchLoot commonCurrencies mapping by @factec-kyle in #30015
- fix(gate): convert since to seconds in fetchOpenInterestHistory by @carlotestor in #30018
- chore: fix wiki-pushback by @carlosmiei in #30020
- fix(bingx): reject unsupported Coin-M fetchTrades by @AresArtemius in #30021
- fix(bingx): correct Coin-M open interest by @AresArtemius in #30026
- perf: python Precise by @ttodua in #30024
- docs(blog): add "Front-running the S-1" Anthropic-IPO prediction-markets post by @pcriadoperez in #30025
- fix(upbit): do not default unknown order side to sell by @rayBastard in #30012
- feat(mcp): official CCXT MCP server by @pcriadoperez in #29277
- chore(deps): bump hono from 4.12.31 to 4.13.3 in /mcp by @dependabot[bot] in #30029
- build(go): trampoline async cores so Promise.all fans out like the C#/Java ports by @carlotestor in #29647
- fix(java): bump msgpack-core to 0.9.12 (CVE-2026-21452) by @huiboxes in #30040
- refactor(php): one fiber per HTTP call (3 → 1) — collapse fetch2 and fetch by @carlotestor in #30039
- chore(deps): bump undici and ccxt in /mcp by @dependabot[bot] in #30030
- fix(whitebit): parse TradFi futures as swaps by @AresArtemius in #30033
- chore(deps): bump @hono/node-server from 1.19.14 to 1.19.17 in /mcp by @dependabot[bot] in #30032
- chore(deps): bump fast-uri from 3.1.4 to 3.1.5 in /mcp by @dependabot[bot] in #30035
- chore(deps): bump ip-address from 10.2.0 to 10.5.0 in /mcp by @dependabot[bot] in #30031
- fix(bingx): parse position liquidation price by @AresArtemius in #30034
- fix(bingx): parse Coin-M funding rate response by @AresArtemius in #30023
- fix(blofin): order cost is the quote volume, not the margin by @mkzung in #29975
- fix(bingx): ignore account updates without positions by @AresArtemius in #29948
- go: type wrapper optional locals and core body locals from TypeScript by @carlotestor in #30041
- fix(pro): js indexed order book side builds holes from no-op deltas by @L1nkus in #30049
- perf(pro): js order book side shift without copyWithin -3.3x by @L1nkus in #30048
- feat(cs): type wrapper optional scalar locals from TypeScript by @carlotestor in #30053
- fix(paradex): read reduceOnly from the flags array in parseOrder by @rayBastard in #30065
- feat(benchmarks): cross-language performance benchmark + blog post by @pcriadoperez in #30028
- fix(bingx): reject unsupported Coin-M leverage tiers by @AresArtemius in #30076
- fix(bingx): reject unsupported Coin-M position mode by @AresArtemius in #30068
- fix(paradex): omit zero trigger_price in parseOrder by @rayBastard in #30069
- fix(typescript): remove truth coercion by @carlosmiei in #30080
- perf(js): getValueFromKeysInArray optimization by @ttodua in #29798
- perf: check string first by @ttodua in #29804
- perf: undefined optimization in type by @ttodua in #29806
- fix(bingx): restrict position close by id to linear by @AresArtemius in #30088
- fix(p2b): read errorCode from response root in handleErrors by @rayBastard in #30098
- perf(go): precise reorganization by @ttodua in #30043
- perf(c#): precise optimization (c) by @ttodua in #30089
- perf(java): precise optimization (c) by @ttodua in #30090
- fix(btse): derive ticker percentage instead of using the raw ratio field by @carlotestor in #30093
- feat(cs): type the generated C# cores (incl. createOrder -> Task) and their parameters by @carlotestor in #30066
- refactor(ts): require boolean conditions via strict-boolean-expressions by @carlotestor in #30082
- fix(krakenfutures): raise ExchangeNotAvailable on degraded fetchPositions response by @akshaykumarhudedmani in #30084
- fix(xt): support postOnly orders via timeInForce GTX by @rayBastard in #30059
- ci(js): persist emitAPI abstracts on master auto-commit by @carlotestor in #30111
- bitget parseUtaBalance fix by @ndubel in #30083
- feat(cs): fold watch* Copy into cores and drop leftover wrappers by @carlotestor in #30110
- docs: remove status page from docs site and sidebar by @carlotestor in #30112
- fix(p2b): map min_total to market limits.cost by @rayBastard in #30099
- fix(pacifica): resolve order symbol in parseOrder and return latest order state from fetchOrder by @rayBastard in #30097
- fix(alpaca): declare limits.cost.min of 10 for USD-quoted crypto markets by @rayBastard in #30101
- fix(paradex): expose liquidation_price in parsePosition by @rayBastard in #30096
- fix(bingx): normalize leverage side by @AresArtemius in #30070
- fix(xt): satisfy strict-boolean-expressions lint on postOnly checks by @rayBastard in #30115
- fix(alpaca): classify error 40310000 by message, not by code by @rayBastard in #30103
- fix(tokocrypto): read market margin flag from marginTradingEnable by @rayBastard in #30064
- fix(bingx): reject unsupported Coin-M createOrders by @AresArtemius in #30091
- fix(alpaca): fetchTickers without symbols defaults to all markets by @rayBastard in #30102
- fix(alpaca): fetchOHLCV since sent day-truncated, intraday ranges return empty by @rayBastard in #30100
- fix(bingx): satisfy strict-boolean-expressions lint on the inverse market check by @rayBastard in #30118
- feat(transpiler): basetests only transpilation by @ttodua in #30116
- fix(binance): drop 'stock' from default fetchMarkets types by @carlotestor in #30126
- fix(bybit): increase paginationCalls in fetchLeveragetiers by @carlosmiei in #30127
- 修复(lbank):单飞 subscribeKey 认证(引用 #29393)由 @carlotestor 在 #29993 中完成
- 修复(bitstamp):单飞 websocket 令牌认证(引用 #29393)由 @carlotestor 在 #29994 中完成
- 修复(xt):单飞监听键获取(引用 #29393)由 @carlotestor 在 #29997 中完成
- 修复(kraken):单飞 websockets 令牌认证(引用 #29393)由 @carlotestor 在 #29996 中完成
- 修复(whitebit):单飞 websocket 令牌认证(引用 #29393)由 @carlotestor 在 #30000 中完成
- 修复(bitrue):单飞 listenKey 认证(引用 #29393)由 @carlotestor 在 #29999 中完成
- 修复(hashkey):单飞 listenKey 认证(引用 #29393)由 @carlotestor 在 #29995 中完成
- 修复(tokocrypto):按符号类型路由 fetchTrades 并等待 open/v1 响应由 @rayBastard 在 #30013 中完成
- 修复(bingx):修正 fetchTrades 限制由 @AresArtemius 在 #30011 中完成
- 修复(deepcoin):单飞 listenKey 认证(引用 #29393)由 @carlotestor 在 #29998 中完成
- 修复(bybit):当仅提供 since 时锚定 fetchOpenInterestHistory 窗口由 @carlotestor 在 #30016 中完成
- 修复(bithumb):移除不正确的 ALT -> ArchLoot 通用货币映射由 @factec-kyle 在 #30015 中完成
- 修复(gate):在 fetchOpenInterestHistory 中将 since 转换为秒由 @carlotestor 在 #30018 中完成
- 杂务:修复 wiki-pushback 由 @carlosmiei 在 #30020 中完成
- 修复(bingx):拒绝不支持的 Coin-M fetchTrades 由 @AresArtemius 在 #30021 中完成
- 修复(bingx):修正 Coin-M 未平仓合约由 @AresArtemius 在 #30026 中完成
- 性能:Python Precise 由 @ttodua 在 #30024 中完成
- 文档(博客):添加“抢跑 S-1”Anthropic-IPO 预测市场帖子由 @pcriadoperez 在 #30025 中完成
- 修复(upbit):不将未知订单方向默认为卖出由 @rayBastard 在 #30012 中完成
- 功能(mcp):官方 CCXT MCP 服务器由 @pcriadoperez 在 #29277 中完成
- 杂务(依赖):在 /mcp 中将 hono 从 4.12.31 升级到 4.13.3 由 @dependabot[bot] 在 #30029 中完成
- 构建(go):蹦床异步核心,使 Promise.all 像 C#/Java 移植版一样展开由 @carlotestor 在 #29647 中完成
- 修复(java):将 msgpack-core 升级到 0.9.12(CVE-2026-21452)由 @huiboxes 在 #30040 中完成
- 重构(PHP):每次HTTP调用一个协程(3→1)——合并fetch2和fetch,由@carlotestor在#30039中提出
- 依赖更新:在/mcp中由@dependabot[bot]在#30030中升级undici和ccxt
- 修复(Whitebit):将TradFi期货解析为掉期,由@AresArtemius在#30033中提出
- 依赖更新:在/mcp中由@dependabot[bot]在#30032中将@hono/node-server从1.19.14升级到1.19.17
- 依赖更新:在/mcp中由@dependabot[bot]在#30035中将fast-uri从3.1.4升级到3.1.5
- 依赖更新:在/mcp中由@dependabot[bot]在#30031中将ip-address从10.2.0升级到10.5.0
- 修复(BingX):解析持仓强平价格,由@AresArtemius在#30034中提出
- 修复(BingX):解析币本位资金费率响应,由@AresArtemius在#30023中提出
- 修复(Blofin):订单成本为报价量而非保证金,由@mkzung在#29975中提出
- 修复(BingX):忽略无持仓的账户更新,由@AresArtemius在#29948中提出
- Go:从TypeScript生成类型包装器可选局部变量和核心主体局部变量,由@carlotestor在#30041中提出
- 修复(专业版):JS索引订单簿侧因无操作增量构建空洞,由@L1nkus在#30049中提出
- 性能优化(专业版):JS订单簿侧移位无需copyWithin,提速3.3倍,由@L1nkus在#30048中提出
- 功能(C#):从TypeScript生成类型包装器可选标量局部变量,由@carlotestor在#30053中提出
- 修复(Paradex):在parseOrder中从flags数组读取reduceOnly,由@rayBastard在#30065中提出
- 功能(基准测试):跨语言性能基准测试及博客文章,由@pcriadoperez在#30028中提出
- 修复(BingX):拒绝不支持的币本位杠杆层级,由@AresArtemius在#30076中提出
- 修复(BingX):拒绝不支持的币本位持仓模式,由@AresArtemius在#30068中提出
- 修复(Paradex):在parseOrder中省略零触发价格,由@rayBastard在#30069中提出
- 修复(TypeScript):移除真值强制转换,由@carlosmiei在#30080中提出
- 性能优化(JS):getValueFromKeysInArray优化,由@ttodua在#29798中提出
- 性能优化:先检查字符串,由@ttodua在#29804中提出
- 性能优化:类型中的undefined优化,由@ttodua在#29806中提出
- 修复(BingX):限制按ID平仓仅限线性合约,由@AresArtemius在#30088中提出
- 修复(p2b):在handleErrors中从响应根读取errorCode,由@rayBastard在#30098中提出
- 性能优化(go):精确重组,由@ttodua在#30043中提出
- 性能优化(c#):精确优化(c),由@ttodua在#30089中提出
- 性能优化(java):精确优化(c),由@ttodua在#30090中提出
- 修复(btse):从原始比率字段推导出ticker百分比,由@carlotestor在#30093中提出
- 功能(cs):为生成的C#核心(包括createOrder -> Task)及其参数添加类型,由@carlotestor在#30066中提出
- 重构(ts):通过strict-boolean-expressions要求布尔条件,由@carlotestor在#30082中提出
- 修复(krakenfutures):在fetchPositions响应降级时抛出ExchangeNotAvailable,由@akshaykumarhudedmani在#30084中提出
- 修复(xt):通过timeInForce GTX支持postOnly订单,由@rayBastard在#30059中提出
- CI(js):在master自动提交时持久化emitAPI摘要,由@carlotestor在#30111中提出
- bitget parseUtaBalance修复,由@ndubel在#30083中提出
- 功能(cs):将watch* Copy折叠进核心并移除遗留包装器,由@carlotestor在#30110中提出
- 文档:从文档站点和侧边栏移除状态页面,由@carlotestor在#30112中提出
- 修复(p2b):将min_total映射到market limits.cost,由@rayBastard在#30099中提出
- 修复(pacifica):在parseOrder中解析订单符号,并从fetchOrder返回最新订单状态,由@rayBastard在#30097中提出
- 修复(alpaca):为USD计价的加密货币市场声明limits.cost.min为10,由@rayBastard在#30101中提出
- 修复(paradex):在parsePosition中暴露liquidation_price,由@rayBastard在#30096中提出
- 修复(bingx):规范化杠杆方向,由@AresArtemius在#30070中提出
- 修复(xt):满足postOnly检查的strict-boolean-expressions lint,由@rayBastard在#30115中提出
- 修复(alpaca):根据消息而非代码分类错误40310000,由@rayBastard在#30103中提出
- 修复(tokocrypto):从marginTradingEnable读取市场保证金标志,由@rayBastard在#30064中提出
- 修复(bingx):拒绝不支持的Coin-M createOrders,由@AresArtemius在#30091中提出
- 修复(alpaca):无符号的fetchTickers默认返回所有市场,由@rayBastard在#30102中提出
- 修复(alpaca):fetchOHLCV的since参数按天截断,日内范围返回空,由@rayBastard在#30100中提出
- 修复(bingx):通过@rayBastard在#30118中满足反向市场检查的严格布尔表达式lint规则
- 功能(transpiler):通过@ttodua在#30116中仅进行基础测试的转译
- 修复(binance):通过@carlotestor在#30126中从默认fetchMarkets类型中移除'stock'
- 修复(bybit):通过@carlosmiei在#30127中增加fetchLeveragetiers中的分页调用次数
New Contributors
新贡献者
- @factec-kyle made their first contribution in #30015
- @huiboxes made their first contribution in #30040
- @akshaykumarhudedmani made their first contribution in #30084
- @factec-kyle在#30015中做出了首次贡献
- @huiboxes在#30040中做出了首次贡献
- @akshaykumarhudedmani在#30084中做出了首次贡献
Full Changelog: v4.5.75...v4.5.76
完整变更日志:v4.5.75...v4.5.76
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力