精选75ccxt(GitHub Releases)交易所与金融 API
ccxt v4.5.71:多语言双栈修复、OKX资金费率、BitMart下架
v4.5.71
What's Changed
- feat(aster): memoize walletAddress by @carlosmiei in #29342
- chore: add imgs to .gitattributes by @carlosmiei in #29343
- chore: update name by @carlosmiei in #29344
- chore: Try new img cs by @carlosmiei in #29345
- chore: disable part os of release temporarily by @carlosmiei in #29347
- chore: restore release.yml by @carlosmiei in #29348
- fix(okx): support fetchFundingRate(s) for XPERP futures by @rayBastard in #29350
- test(structure): start requiring strict structure by @ttodua in #25823
- fix(php): disable php8.5 warnings by @carlosmiei in #29351
- chore: update examples by @carlosmiei in #29358
- fix(js): enable dual-stack Happy Eyeballs on undici (10ms floor) by @carlotestor in #29352
- fix(go): explicit dual-stack DialContext in exchange.go (FallbackDelay=1ns) by @carlotestor in #29357
- fix(java): remove preferIPv4Stack for dual-stack IPv6 by @carlotestor in #29356
- fix(aster): encode privateKey before keccak hash cache by @carlotestor in #29360
- fix(cs): explicit dual-stack REST/WS (runtime HE; no delay knob on netstandard) by @carlotestor in #29355
- fix(php): explicit dual-stack curl + 1ms Happy Eyeballs timeout by @carlotestor in #29354
- fix(bybit): private ws methods Authentication error handling by @carlosmiei in #29362
- fix(python): explicit dual-stack aiohttp connector (happy_eyeballs_delay=0) by @carlotestor in #29353
- update eslint cache-strategy by @frosty00 in #29363
- chore(php): remove unused/delisted by @ttodua in #29367
- feat: orderbook copy across langs by @ttodua in #29280
- chore: try to fix some tests by @carlosmiei in #29371
- delist: remove bitmart by @carlosmiei in #29376
- chore(php): update reactphp-http-proxy version to 1.10 by @ttodua in #29366
- chore: bitmart leftovers by @carlosmiei in #29378
- chore: remove bitmart and id test by @carlosmiei in #29382
- chore(build): point ast-transpiler at GitHub master by @carlotestor in #29372
- feat(transpile): rm using null as the key parameter for array_key_exi… by @carlosmiei in #29385
- chore: expose timed out tests by @carlosmiei in #29377
- blofin: fill market limits (#23973) + fix inverse swap parsing by @kroitor in #29386
- fix(python): remove setuptools from runtime dependencies by @kroitor in #29387
- okx: fill limits.amount.max from maxLmtSz by @kroitor in #29388
- fix(poloniex): handle_order crash on fill events for uncached orders by @kroitor in #29389
- fix(python): pytest collect guard for the shipped ccxt/test harness (#29383) by @kroitor in #29390
- chore(deps): bump ast-transpiler lock to master (Java emit idempotency) by @carlotestor in #29391
- fix(mexc): prevent concurrent listenKey fetch race in ws authenticate by @kroitor in #29392
- fix(mexc): transpiler-safe comments in ws authenticate (php build hotfix) by @kroitor in #29394
- feat(bingx): anchor spot daily candles to UTC by default (timeZone option) by @kroitor in #29395
- fix(bingx): add timeZone to spot ohlcv request fixture by @kroitor in #29396
- chore(deps): bump ast-transpiler lock for java bare-rethrow fix by @kroitor in #29397
- fix(base): stop infinite loadOrderBook recursion on snapshot failure (all languages) by @kroitor in #29398
- fix(base): route loadOrderBook snapshots through the safe fetch + go orderbook reset by @kroitor in #29400
- fix(ws): match cache rows by symbol and id to survive cross-symbol order-id collisions by @kroitor in #29401
- fix(bybit): align fetchOHLCV start up to the interval boundary by @kroitor in #29402
- fix(htx): remove the messageHash-keyed subscription on ws error by @kroitor in #29404
- fix(examples): undefined loop in async-gather-concurrency.py [skip ci] by @kroitor in #29406
- fix(krakenfutures): guard parsePositions against missing openPositions + map INSUFFICIENT_MARGIN by @kroitor in #29407
- chore(deps): bump ast-transpiler lock to master HEAD by @carlotestor in #29410
- chore(java): silence varargs warnings in credential init by @kroitor in #29408
- fix(build): remove global.checker from C# transpiler wrapper by @carlotestor in #29405
- perf(build): go transpile single-process piscina threads by @carlotestor in #29380
- perf(build): java transpile single-process piscina threads by @carlotestor in #29379
- fix(coinone): migrate createOrder and fetchOpenOrders to the v2.1 api by @kroitor in #29411
- refactor(playground): replace the JavaScript tab with TypeScript by @pcriadoperez in #29409
- chore: skip btcbox live tests by @carlosmiei in #29413
- fix(bitget): send the execute prices for attached take profit and stop loss by @kroitor in #29414
- perf(build): csharp transpile single-process piscina threads by @carlotestor in #29381
- fix(kucoin,bitvavo): map cancel-after-fill errors to OrderNotFound by @kroitor in #29422
- fix(coinone): parse v2.1 open-order fills by @ShiroKSH in #29420
- fix(bingx): restore the 0x prefix on evm deposit addresses by @kroitor in #29423
- perf(build): skip unchanged exchanges and up-to-date stages in the go/java/cs transpilers unless --force by @carlotestor in #29419
- fix(transpile): keep the negation outside php string-method emissions by @kroitor in #29424
- playground: enable the Go runner in production by @carlotestor in #29418
- fix(bybit): derive the used balance from the margin fields in the wallet stream by @kroitor in #29425
- chore: abstract the exchange name out of the time difference comment by @kroitor in #29427
- chore: fix docstrings naming the wrong exchange by @kroitor in #29428
- chore(docs): build docs + playground images for amd64 on the new box by @pcriadoperez in #29429
- chore: abstract the seed patterns out of the docstrings by @kroitor in #29431
- fix(kucoineu): set only spot by @ttodua in #29432
- chore: fix typos in the inline comments by @kroitor in #29434
- fix(coinbaseinternational): send amount instead of ammount in transfer by @kroitor in #29435
- fix(p2b): reset the order book on full depth updates in the stream by @kroitor in #29436
- fix(xt): derive the order side for stop loss and take profit entries by @kroitor in #29438
- fix(bitget): guard the execute price when editing spot plan orders by @kroitor in #29439
- docs: modernize the php async dependency instructions by @kroitor in #29440
- chore(bybit): rename the filterExecTypes option to execType by @kroitor in #29441
- docs: mark the symbol as optional in the cancelAllOrders docstrings by @kroitor in #29442
- docs: clean up three cancelAllOrders docstrings by @kroitor in #29443
- fix(python): guard the ws receive callback against cancelled tasks by @kroitor in #29445
- perf(build): stage cleanups from REST/WS profile (no concurrent REST+WS) by @carlotestor in #29437
- docs: fix the watchOrderBookForSymbols return description by @kroitor in #29446
- update js.yml to use lint instead of eslint (to reuse the cache) by @frosty00 in #29450
- fix(playground): load OpenRouter free models dynamically at startup by @carlotestor in #29452
- playground: skip sum.golang.org for ccxt's own go module during provisioning by @carlotestor in #29426
- fix(playground): unbreak webpack next dev on undici in instrumentation by @carlotestor in #29456
- fix(playground): responsive mobile layout for docs playground by @carlotestor in #29453
- fix(kucoin): accumulate the average fill price in the spot order stream by @kroitor in #29458
- fix(bybit): stop ws trade ops from hanging on auth errors without a reqId by @kroitor in #29459
- chore: strip redundant trailing undefined arguments by @kroitor in #29460
- coinex - parseTransaction fee_ccy field fallback by @kroitor in #29461
- indodax - parseOrder filled amount from receive_{base} field by @kroitor in #29462
- fix(blockchaincom,woofipro): resolve PHP null array offset deprecations by @carlotestor in #29467
- feat(playground): generate AI assistant code for all languages by @carlotestor in #29465
- fix(coinbase): swap flag enable by @ttodua in #29448
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力