跳到主内容
精选85ccxt(GitHub Releases)交易所与金融 API

ccxt v4.5.74:多交易所新增接口,Bybit/Exmo 破坏性变更,性能优化与修复

v4.5.74

原文
推荐理由

量化开发者注意:Bybit 经典账户 fetchOrders 已移除,Exmo 下架,需尽快迁移;同时 XT、WooFiPro 等新增了追踪止损、保证金等接口,值得升级体验。

What's Changed

变更内容

  • test: add empty dict test by @ttodua in #29759
  • feat(okx): add fiat deposit and withdrawal endpoints by @kroitor in #29769
  • fix(doc): correct lighter sdk url by @sc0Vu in #29767
  • feat(woo): cancelAllOrders via DELETE /v3/trade/allOrders by @rayBastard in #29763
  • feat(woofipro): add fetchOpenInterest and fetchOpenInterests by @rayBastard in #29764
  • feat(xt): add fetchTradingFee and fetchTradingFees by @rayBastard in #29765
  • test(whitebit): add fetchOpenOrders and fetchClosedOrders static fixtures by @rayBastard in #29768
  • coinex error mapping by @ndubel in #29773
  • fix(ws): retain results resolved without a waiter in ts, php and cs clients by @kroitor in #29772
  • fix(tokocrypto): declare ticker/24hr as dual-shape like binance does by @kroitor in #29777
  • fix(cs): default indexed orderbook snapshot to an empty dict like its siblings by @kroitor in #29776
  • fix(cs): count any inbound ws frame as keepalive liveness by @kroitor in #29778
  • feat(weex): add createTriggerOrder via capi/v3/algoOrder by @rayBastard in #29766
  • fix(bitrue): declare the dapi ticker and klines shapes like their fapi twins by @kroitor in #29780
  • fix(binance): declare the dual-shape ticker/price leaves per the api docs by @kroitor in #29781
  • feat(krakenfutures): add fetchTradingFees by @rayBastard in #29779
  • feat(krakenfutures): add fetchLedger by @rayBastard in #29782
  • fix(ci): guard against entry-point imports in exchange files by @kroitor in #29783
  • fix(weex): enable has flags for implemented unWatchOrderBook methods by @rayBastard in #29784
  • test(whitebit): add fetchMyTrades and fetchOrderTrades static fixtures by @rayBastard in #29785
  • fix(ci): run scoped live tests for first-time exchange integrations by @kroitor in #29787
  • fix(base): take the primary symbol from the selected symbols array in private tests by @kroitor in #29788
  • fix(base): pass the symbol variable instead of a string literal in leverage-tiers and margin-modes tests by @kroitor in #29789
  • fix(cli): prefer the local typescript sources over built artifacts so new integrations work without any build steps by @kroitor in #29790
  • fix(cli): correct the inverted partial-function check that reversed method arguments whenever --param was used by @kroitor in #29791
  • fix(cli): make --no-keys actually strip credentials loaded from the keys files by @kroitor in #29792
  • fix(cli): detect implicit api methods under the ts-sources loader when placing the params object by @kroitor in #29794
  • fix(krakenfutures): fix positions REST fail-open and WS crash regressions by @pcriadoperez in #29713
  • fix(tokocrypto): unwrap data.list envelope in fetchOHLCV for non-USDT markets by @pcriadoperez in #29664
  • chore: reuse go binary in the live-tests section by @carlosmiei in #29712
  • chore(tests): add static tests to Watch methods by @carlosmiei in #29795
  • chore: fix injectWsMessages sleep by @carlosmiei in #29797
  • fix(ci): exclude deleted files from scoped exchange collection by @kroitor in #29799
  • refactor: js prop optim by @ttodua in #29650
  • fix!(exmo): delist by @ttodua in #29796
  • fix(xt): regenerate implicit api to type step-rate endpoints by @kroitor in #29803
  • fix(go): compare numeric sort keys numerically in sortBy by @kroitor in #29802
  • test(whitebit): add deposit history static fixtures by @rayBastard in #29810
  • feat(xt): add trailing stop order creation and cancellation by @rayBastard in #29811
  • fix(nado): watchOrderBook by @sc0Vu in #29808
  • docs(woo): add developer.woox.io as primary doc url by @rayBastard in #29812
  • fix(bitstamp): accumulate currencies locally instead of a shared options scratch key by @kroitor in #29815
  • bitstamp parseOrder id fix by @ndubel in #29809
  • feat(lighter): add ws api by @sc0Vu in #29770
  • fix(go): mirror the javascript delete semantics on missing keys in remove by @kroitor in #29814
  • feat(kucoin): uta fetchPosition new response field updateTime by @Dan-krm in #29805
  • fix(deribit): read baseVolume from stats.volume and quoteVolume from stats.volume_notional by @mkzung in #29807
  • fix(hashkey): omit the zero last price on dormant listings by @kroitor in #29816
  • test(whitebit): add fetchWithdrawals and fetchFundingHistory fixtures by @rayBastard in #29817
  • refactor(woo): dedupe transfer and transaction status parsers by @rayBastard in #29823
  • feat(xt): add trailing stop order fetching by @rayBastard in #29818
  • fix(lbank): unmap the price band ratios from the absolute price limits by @kroitor in #29819
  • feat(xt): add trailing stop orders mass cancellation by @rayBastard in #29826
  • test(whitebit): add transfer and fetchAccounts fixtures, fix fetchAcсounts parsing by @rayBastard in #29824
  • test(whitebit): add deposit address static fixtures by @rayBastard in #29831
  • chore(woo): audit network mappings against live token networks by @rayBastard in #29827
  • fix(php): compare strictly against the filter value in filter by by @kroitor in #29829
  • refactor(xt): replace safeValue with typed safe methods by @rayBastard in #29833
  • test(whitebit): add setLeverage, fetchBorrowInterest, fetchStatus and withdraw fixtures by @rayBastard in #29836
  • chore(woo): remove dead v2 api section by @rayBastard in #29835
  • test(xt): remove stale loadMarkets taker/maker skips by @rayBastard in #29837
  • test(whitebit): add fetchTradingFees static fixtures by @rayBastard in #29844
  • fix(xt): throw NotSupported for market-type guards instead of BadSymbol by @rayBastard in #29845
  • fix(alpaca): quoteVolume was the trade count by @mkzung in #29841
  • chore: add ws static tests to different exchanges by @carlosmiei in #29800
  • fix(toobit): scale swap baseVolume from contracts to base units by @mkzung in #29842
  • fix(delta): read spot quoteVolume from turnover_usd, not the base-denominated turnover by @mkzung in #29840
  • feat(woofipro): add margin mode and position margin methods by @rayBastard in #29821
  • perf(transpile): skip impossible base-method renames by @carlotestor in #29854
  • fix(bitget): price24hPcnt is a ratio, so scale it to a percentage by @mkzung in #29857
  • fix(hashkey): scale swap baseVolume from contracts to base units by @mkzung in #29851
  • fix(poloniex): scale swap baseVolume from contracts to base units by @mkzung in #29852
  • fix(upbit): signed_change_rate is a ratio, so scale it to a percentage by @mkzung in #29855
  • fix(toobit): 'pcp' is a ratio, so scale it to a percentage by @mkzung in #29856
  • fix!(bybit): fetchOrders classic accounts removal by @ttodua in #29847
  • perf(python): drop redundant OrderBookSide getitem override and hoist hot lookups -23% by @carlotestor in #29858
  • perf(php): drop exchangeArray on OrderBookSide update -31% by @carlotestor in #29862
  • fix(test): tolerate quote-side rounding in the ticker volume identity by @kroitor in #29865
  • test(pro): pick most-active market for watchOrderBook live tests by @carlotestor in #29875
  • perf(go): bound OrderBookSide index memmove -12% by @carlotestor in #29861
  • perf(java): skip BigDecimal for the order book amount field -43% by @carlotestor in #29860
  • fix(pro): python ArrayCache tuple index, max_size=0, and clear() reset by @carlotestor in #29870
  • fix(binance): single-flight ws auth via existing client futures by @carlotestor in #29878
  • refactor(pro): type-hint Python ArrayCache by @carlotestor in #29877
  • fix(tests): stop ws OHLCV live tests requesting sub-minute candles by @carlotestor in #29880
  • fix(pro): php ArrayCache field-merge, two-field match, and clear() by @carlotestor in #29871
  • fix(pro): reset ArrayCache maps on clear and stop short-OHLCV stale tails by @carlotestor in #29869
  • refactor(pro): python ArrayCache seen_updates_by_symbol for int counts by @carlotestor in #29884
  • fix(pro): csharp ArrayCacheByTimestamp eviction and in-place merge by @carlotestor in #29872
  • fix(pro): java ArrayCache hashmap, getLimit, BySide, and move-to-end by @carlotestor in #29873
  • 测试:添加空字典测试,由 @ttodua 在 #29759 中完成
  • 功能(OKX):添加法币充值提现端点,由 @kroitor 在 #29769 中完成
  • 修复(文档):更正 lighter SDK 链接,由 @sc0Vu 在 #29767 中完成
  • 功能(WOO):通过 DELETE /v3/trade/allOrders 实现 cancelAllOrders,由 @rayBastard 在 #29763 中完成
  • 功能(WooFiPro):添加 fetchOpenInterest 和 fetchOpenInterests,由 @rayBastard 在 #29764 中完成
  • 功能(XT):添加 fetchTradingFee 和 fetchTradingFees,由 @rayBastard 在 #29765 中完成
  • 测试(WhiteBit):添加 fetchOpenOrders 和 fetchClosedOrders 静态测试夹具,由 @rayBastard 在 #29768 中完成
  • CoinEx 错误映射,由 @ndubel 在 #29773 中完成
  • 修复(WebSocket):在 TS、PHP 和 CS 客户端中保留无等待器解析的结果,由 @kroitor 在 #29772 中完成
  • 修复(Tokocrypto):声明 ticker/24hr 为双形态,与币安一致,由 @kroitor 在 #29777 中完成
  • 修复(C#):默认索引订单簿快照为空字典,与其同类一致,由 @kroitor 在 #29776 中完成
  • 修复(C#):将任何入站 WebSocket 帧计为保持活动状态,由 @kroitor 在 #29778 中完成
  • 功能(Weex):通过 capi/v3/algoOrder 添加 createTriggerOrder,由 @rayBastard 在 #29766 中完成
  • 修复(Bitrue):声明 dapi ticker 和 klines 形态与其 fapi 对应一致,由 @kroitor 在 #29780 中完成
  • 修复(币安):根据 API 文档声明双形态 ticker/price 叶子,由 @kroitor 在 #29781 中完成
  • 功能(Kraken Futures):添加 fetchTradingFees,由 @rayBastard 在 #29779 中完成
  • 功能(Kraken Futures):添加 fetchLedger,由 @rayBastard 在 #29782 中完成
  • 修复(CI):防止交易所文件中的入口点导入,由 @kroitor 在 #29783 中完成
  • 修复(Weex):为已实现的 unWatchOrderBook 方法启用 has 标志,由 @rayBastard 在 #29784 中完成
  • 测试(WhiteBit):添加 fetchMyTrades 和 fetchOrderTrades 静态测试夹具,由 @rayBastard 在 #29785 中完成
  • 修复(CI):对首次交易所集成运行范围限定的实时测试,由 @kroitor 在 #29787 中完成
  • 修复(基础):在私有测试中从所选符号数组取主符号,由 @kroitor 在 #29788 中完成
  • 修复(基础):在杠杆层级和保证金模式测试中传递符号变量而非字符串字面量,由 @kroitor 在 #29789 中完成
  • 修复(cli):优先使用本地 TypeScript 源码而非构建产物,使新集成无需任何构建步骤即可工作,由 @kroitor 在 #29790 中提交
  • 修复(cli):纠正反转的部分函数检查,该检查在使用 --param 时颠倒方法参数顺序,由 @kroitor 在 #29791 中提交
  • 修复(cli):使 --no-keys 真正从密钥文件中剥离加载的凭据,由 @kroitor 在 #29792 中提交
  • 修复(cli):在 ts-sources 加载器下放置参数对象时检测隐式 API 方法,由 @kroitor 在 #29794 中提交
  • 修复(krakenfutures):修复 positions REST 故障开放和 WS 崩溃回归问题,由 @pcriadoperez 在 #29713 中提交
  • 修复(tokocrypto):在 fetchOHLCV 中为非 USDT 市场解包 data.list 信封,由 @pcriadoperez 在 #29664 中提交
  • 杂务:在实时测试部分复用 Go 二进制文件,由 @carlosmiei 在 #29712 中提交
  • 杂务(测试):为 Watch 方法添加静态测试,由 @carlosmiei 在 #29795 中提交
  • 杂务:修复 injectWsMessages 的睡眠问题,由 @carlosmiei 在 #29797 中提交
  • 修复(ci):从限定交易所集合中排除已删除文件,由 @kroitor 在 #29799 中提交
  • 重构:js 属性优化,由 @ttodua 在 #29650 中提交
  • 破坏性修复(exmo):下架,由 @ttodua 在 #29796 中提交
  • 修复(xt):重新生成隐式 API 以对 step-rate 端点进行类型化,由 @kroitor 在 #29803 中提交
  • 修复(go):在 sortBy 中按数值比较数字排序键,由 @kroitor 在 #29802 中提交
  • 测试(whitebit):添加存款历史静态测试夹具,由 @rayBastard 在 #29810 中提交
  • 功能(xt):添加追踪止损订单创建和取消,由 @rayBastard 在 #29811 中提交
  • 修复(nado):watchOrderBook,由 @sc0Vu 在 #29808 中提交
  • 文档(woo):将 developer.woox.io 添加为主要文档 URL,由 @rayBastard 在 #29812 中提交
  • 修复(bitstamp):在本地累积货币而非共享选项临时键,由 @kroitor 在 #29815 中提交
  • bitstamp parseOrder id 修复,由 @ndubel 在 #29809 中提交
  • 功能(lighter):添加 WebSocket API,由 @sc0Vu 在 #29770 中提交
  • 修复(go):在 remove 中镜像 JavaScript 对缺失键的删除语义,由 @kroitor 在 #29814 中提交
  • 功能(kucoin):uta fetchPosition 新响应字段 updateTime,由 @Dan-krm 在 #29805 中提交
  • 修复(deribit):从 stats.volume 读取 baseVolume,从 stats.volume_notional 读取 quoteVolume,由 @mkzung 在 #29807 中提交
  • 修复(hashkey):在休眠列表中省略零最后价格,由 @kroitor 在 #29816 中提出
  • 测试(whitebit):添加 fetchWithdrawals 和 fetchFundingHistory 固定装置,由 @rayBastard 在 #29817 中提出
  • 重构(woo):去重转账和交易状态解析器,由 @rayBastard 在 #29823 中提出
  • 功能(xt):添加追踪止损订单获取,由 @rayBastard 在 #29818 中提出
  • 修复(lbank):将价格区间比率从绝对价格限制中解除映射,由 @kroitor 在 #29819 中提出
  • 功能(xt):添加追踪止损订单批量取消,由 @rayBastard 在 #29826 中提出
  • 测试(whitebit):添加转账和 fetchAccounts 固定装置,修复 fetchAccounts 解析,由 @rayBastard 在 #29824 中提出
  • 测试(whitebit):添加存款地址静态固定装置,由 @rayBastard 在 #29831 中提出
  • 杂务(woo):审计网络映射与实时代币网络,由 @rayBastard 在 #29827 中提出
  • 修复(php):在 filter by 中严格比较过滤值,由 @kroitor 在 #29829 中提出
  • 重构(xt):用类型化安全方法替换 safeValue,由 @rayBastard 在 #29833 中提出
  • 测试(whitebit):添加 setLeverage、fetchBorrowInterest、fetchStatus 和 withdraw 固定装置,由 @rayBastard 在 #29836 中提出
  • 杂务(woo):移除过时的 v2 API 部分,由 @rayBastard 在 #29835 中提出
  • 测试(xt):移除过时的 loadMarkets taker/maker 跳过,由 @rayBastard 在 #29837 中提出
  • 测试(whitebit):添加 fetchTradingFees 静态固定装置,由 @rayBastard 在 #29844 中提出
  • 修复(xt):对市场类型守卫抛出 NotSupported 而不是 BadSymbol,由 @rayBastard 在 #29845 中提出
  • 修复(alpaca):quoteVolume 是交易数量,由 @mkzung 在 #29841 中提出
  • 杂务:为不同交易所添加 ws 静态测试,由 @carlosmiei 在 #29800 中提出
  • 修复(toobit):将 swap baseVolume 从合约缩放为基础单位,由 @mkzung 在 #29842 中提出
  • 修复(delta):从 turnover_usd 读取现货 quoteVolume,而不是基础计价 turnover,由 @mkzung 在 #29840 中提出
  • 功能(woofipro):添加保证金模式和仓位保证金方法,由 @rayBastard 在 #29821 中提出
  • 性能(transpile):跳过不可能的基础方法重命名,由 @carlotestor 在 #29854 中提出
  • 修复(bitget):price24hPcnt 是比率,因此将其缩放为百分比,由 @mkzung 在 #29857 中提出
  • 修复(hashkey):将 swap baseVolume 从合约缩放为基础单位,由 @mkzung 在 #29851 中提出
  • 修复(poloniex):将swap的baseVolume从合约单位缩放为基础单位,由@mkzung在#29852中提出
  • 修复(upbit):signed_change_rate是比率,因此将其缩放为百分比,由@mkzung在#29855中提出
  • 修复(toobit):'pcp'是比率,因此将其缩放为百分比,由@mkzung在#29856中提出
  • 破坏性修复(bybit):fetchOrders移除经典账户支持,由@ttodua在#29847中提出
  • 性能优化(python):移除冗余的OrderBookSide getitem重写并提升热点查找性能-23%,由@carlotestor在#29858中提出
  • 性能优化(php):在OrderBookSide更新时移除exchangeArray,性能提升-31%,由@carlotestor在#29862中提出
  • 修复(测试):在ticker成交量恒等式中容忍报价侧舍入,由@kroitor在#29865中提出
  • 测试(pro):为watchOrderBook实时测试选择最活跃市场,由@carlotestor在#29875中提出
  • 性能优化(go):限制OrderBookSide索引memmove,性能提升-12%,由@carlotestor在#29861中提出
  • 性能优化(java):为订单簿金额字段跳过BigDecimal,性能提升-43%,由@carlotestor在#29860中提出
  • 修复(pro):python ArrayCache元组索引、max_size=0和clear()重置问题,由@carlotestor在#29870中提出
  • 修复(binance):通过现有客户端期货实现单飞ws认证,由@carlotestor在#29878中提出
  • 重构(pro):为Python ArrayCache添加类型提示,由@carlotestor在#29877中提出
  • 修复(测试):停止ws OHLCV实时测试请求亚分钟蜡烛图,由@carlotestor在#29880中提出
  • 修复(pro):php ArrayCache字段合并、双字段匹配和clear()问题,由@carlotestor在#29871中提出
  • 修复(pro):重置ArrayCache映射在clear时并停止短OHLCV过期尾部,由@carlotestor在#29869中提出
  • 重构(pro):python ArrayCache seen_updates_by_symbol用于整数计数,由@carlotestor在#29884中提出
  • 修复(pro):csharp ArrayCacheByTimestamp驱逐和原地合并,由@carlotestor在#29872中提出
  • 修复(pro):java ArrayCache哈希映射、getLimit、BySide和移至末尾,由@carlotestor在#29873中提出

更进一步:量化金融体系

看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力

进入量化体系 →

相似阅读

另一事件,读法相近