ccxt 4.4.21 → 4.4.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +112 -111
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +6 -1
  4. package/dist/cjs/src/abstract/coincatch.js +9 -0
  5. package/dist/cjs/src/alpaca.js +1 -0
  6. package/dist/cjs/src/base/Exchange.js +21 -0
  7. package/dist/cjs/src/bigone.js +3 -0
  8. package/dist/cjs/src/binance.js +172 -44
  9. package/dist/cjs/src/bitfinex.js +4 -0
  10. package/dist/cjs/src/bitflyer.js +58 -0
  11. package/dist/cjs/src/bitget.js +77 -0
  12. package/dist/cjs/src/bitrue.js +3 -0
  13. package/dist/cjs/src/bybit.js +80 -2
  14. package/dist/cjs/src/cex.js +1307 -1381
  15. package/dist/cjs/src/coinbase.js +1 -1
  16. package/dist/cjs/src/coinbaseexchange.js +3 -0
  17. package/dist/cjs/src/coincatch.js +5370 -0
  18. package/dist/cjs/src/coinex.js +63 -1
  19. package/dist/cjs/src/cryptocom.js +1 -1
  20. package/dist/cjs/src/gate.js +103 -3
  21. package/dist/cjs/src/htx.js +1 -7
  22. package/dist/cjs/src/hyperliquid.js +10 -8
  23. package/dist/cjs/src/kucoin.js +27 -59
  24. package/dist/cjs/src/latoken.js +6 -0
  25. package/dist/cjs/src/mexc.js +1 -1
  26. package/dist/cjs/src/oceanex.js +2 -0
  27. package/dist/cjs/src/okcoin.js +1 -0
  28. package/dist/cjs/src/okx.js +74 -0
  29. package/dist/cjs/src/poloniex.js +5 -0
  30. package/dist/cjs/src/pro/coincatch.js +1554 -0
  31. package/js/ccxt.d.ts +9 -3
  32. package/js/ccxt.js +6 -2
  33. package/js/src/abstract/binance.d.ts +21 -0
  34. package/js/src/abstract/binancecoinm.d.ts +21 -0
  35. package/js/src/abstract/binanceus.d.ts +21 -0
  36. package/js/src/abstract/binanceusdm.d.ts +21 -0
  37. package/js/src/abstract/bitflyer.d.ts +1 -0
  38. package/js/src/abstract/bitget.d.ts +3 -0
  39. package/js/src/abstract/cex.d.ts +28 -29
  40. package/js/src/abstract/coincatch.d.ts +97 -0
  41. package/js/src/abstract/coincatch.js +11 -0
  42. package/js/src/abstract/gate.d.ts +5 -0
  43. package/js/src/abstract/gateio.d.ts +5 -0
  44. package/js/src/abstract/kucoin.d.ts +1 -0
  45. package/js/src/abstract/kucoinfutures.d.ts +1 -0
  46. package/js/src/abstract/okx.d.ts +1 -0
  47. package/js/src/alpaca.js +1 -0
  48. package/js/src/base/Exchange.d.ts +8 -2
  49. package/js/src/base/Exchange.js +21 -0
  50. package/js/src/base/types.d.ts +8 -0
  51. package/js/src/bigone.js +3 -0
  52. package/js/src/binance.d.ts +3 -1
  53. package/js/src/binance.js +172 -44
  54. package/js/src/bitfinex.js +4 -0
  55. package/js/src/bitflyer.d.ts +3 -1
  56. package/js/src/bitflyer.js +58 -0
  57. package/js/src/bitget.d.ts +3 -1
  58. package/js/src/bitget.js +77 -0
  59. package/js/src/bitrue.js +3 -0
  60. package/js/src/bybit.d.ts +3 -1
  61. package/js/src/bybit.js +80 -2
  62. package/js/src/cex.d.ts +34 -20
  63. package/js/src/cex.js +1308 -1382
  64. package/js/src/coinbase.js +1 -1
  65. package/js/src/coinbaseexchange.js +3 -0
  66. package/js/src/coincatch.d.ts +130 -0
  67. package/js/src/coincatch.js +5371 -0
  68. package/js/src/coinex.d.ts +1 -0
  69. package/js/src/coinex.js +63 -1
  70. package/js/src/cryptocom.js +1 -1
  71. package/js/src/gate.d.ts +2 -0
  72. package/js/src/gate.js +103 -3
  73. package/js/src/htx.js +1 -7
  74. package/js/src/hyperliquid.js +10 -8
  75. package/js/src/kucoin.d.ts +0 -1
  76. package/js/src/kucoin.js +27 -59
  77. package/js/src/latoken.js +6 -0
  78. package/js/src/mexc.js +1 -1
  79. package/js/src/oceanex.js +2 -0
  80. package/js/src/okcoin.js +1 -0
  81. package/js/src/okx.d.ts +3 -1
  82. package/js/src/okx.js +74 -0
  83. package/js/src/poloniex.js +5 -0
  84. package/js/src/pro/coincatch.d.ts +57 -0
  85. package/js/src/pro/coincatch.js +1555 -0
  86. package/package.json +1 -1
package/js/src/okx.js CHANGED
@@ -96,6 +96,8 @@ export default class okx extends Exchange {
96
96
  'fetchLedgerEntry': undefined,
97
97
  'fetchLeverage': true,
98
98
  'fetchLeverageTiers': false,
99
+ 'fetchLongShortRatio': false,
100
+ 'fetchLongShortRatioHistory': true,
99
101
  'fetchMarginAdjustmentHistory': true,
100
102
  'fetchMarketLeverageTiers': true,
101
103
  'fetchMarkets': true,
@@ -238,6 +240,7 @@ export default class okx extends Exchange {
238
240
  'rubik/stat/margin/loan-ratio': 4,
239
241
  // long/short
240
242
  'rubik/stat/contracts/long-short-account-ratio': 4,
243
+ 'rubik/stat/contracts/long-short-account-ratio-contract': 4,
241
244
  'rubik/stat/contracts/open-interest-volume': 4,
242
245
  'rubik/stat/option/open-interest-volume': 4,
243
246
  // put/call
@@ -8500,4 +8503,75 @@ export default class okx extends Exchange {
8500
8503
  const positions = this.parsePositions(data, symbols, params);
8501
8504
  return this.filterBySinceLimit(positions, since, limit);
8502
8505
  }
8506
+ async fetchLongShortRatioHistory(symbol = undefined, timeframe = undefined, since = undefined, limit = undefined, params = {}) {
8507
+ /**
8508
+ * @method
8509
+ * @name okx#fetchLongShortRatioHistory
8510
+ * @description fetches the long short ratio history for a unified market symbol
8511
+ * @see https://www.okx.com/docs-v5/en/#trading-statistics-rest-api-get-contract-long-short-ratio
8512
+ * @param {string} symbol unified symbol of the market to fetch the long short ratio for
8513
+ * @param {string} [timeframe] the period for the ratio
8514
+ * @param {int} [since] the earliest time in ms to fetch ratios for
8515
+ * @param {int} [limit] the maximum number of long short ratio structures to retrieve
8516
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
8517
+ * @param {int} [params.until] timestamp in ms of the latest ratio to fetch
8518
+ * @returns {object[]} an array of [long short ratio structures]{@link https://docs.ccxt.com/#/?id=long-short-ratio-structure}
8519
+ */
8520
+ await this.loadMarkets();
8521
+ const market = this.market(symbol);
8522
+ const request = {
8523
+ 'instId': market['id'],
8524
+ };
8525
+ const until = this.safeString2(params, 'until', 'end');
8526
+ params = this.omit(params, 'until');
8527
+ if (until !== undefined) {
8528
+ request['end'] = until;
8529
+ }
8530
+ if (timeframe !== undefined) {
8531
+ request['period'] = timeframe;
8532
+ }
8533
+ if (since !== undefined) {
8534
+ request['begin'] = since;
8535
+ }
8536
+ if (limit !== undefined) {
8537
+ request['limit'] = limit;
8538
+ }
8539
+ const response = await this.publicGetRubikStatContractsLongShortAccountRatioContract(this.extend(request, params));
8540
+ //
8541
+ // {
8542
+ // "code": "0",
8543
+ // "data": [
8544
+ // ["1729323600000", "0.9398602814619824"],
8545
+ // ["1729323300000", "0.9398602814619824"],
8546
+ // ["1729323000000", "0.9398602814619824"],
8547
+ // ],
8548
+ // "msg": ""
8549
+ // }
8550
+ //
8551
+ const data = this.safeList(response, 'data', []);
8552
+ const result = [];
8553
+ for (let i = 0; i < data.length; i++) {
8554
+ const entry = data[i];
8555
+ result.push({
8556
+ 'timestamp': this.safeString(entry, 0),
8557
+ 'longShortRatio': this.safeString(entry, 1),
8558
+ });
8559
+ }
8560
+ return this.parseLongShortRatioHistory(result, market);
8561
+ }
8562
+ parseLongShortRatio(info, market = undefined) {
8563
+ const timestamp = this.safeInteger(info, 'timestamp');
8564
+ let symbol = undefined;
8565
+ if (market !== undefined) {
8566
+ symbol = market['symbol'];
8567
+ }
8568
+ return {
8569
+ 'info': info,
8570
+ 'symbol': symbol,
8571
+ 'timestamp': timestamp,
8572
+ 'datetime': this.iso8601(timestamp),
8573
+ 'timeframe': undefined,
8574
+ 'longShortRatio': this.safeNumber(info, 'longShortRatio'),
8575
+ };
8576
+ }
8503
8577
  }
@@ -50,7 +50,12 @@ export default class poloniex extends Exchange {
50
50
  'fetchDepositsWithdrawals': true,
51
51
  'fetchDepositWithdrawFee': 'emulated',
52
52
  'fetchDepositWithdrawFees': true,
53
+ 'fetchFundingHistory': false,
54
+ 'fetchFundingInterval': false,
55
+ 'fetchFundingIntervals': false,
53
56
  'fetchFundingRate': false,
57
+ 'fetchFundingRateHistory': false,
58
+ 'fetchFundingRates': false,
54
59
  'fetchMarginMode': false,
55
60
  'fetchMarkets': true,
56
61
  'fetchMyTrades': true,
@@ -0,0 +1,57 @@
1
+ import coincatchRest from '../coincatch.js';
2
+ import type { Balances, Dict, Int, Market, OHLCV, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade } from '../base/types.js';
3
+ import Client from '../base/ws/Client.js';
4
+ export default class coincatch extends coincatchRest {
5
+ describe(): any;
6
+ getMarketFromArg(entry: any): import("../base/types.js").MarketInterface;
7
+ authenticate(params?: {}): Promise<any>;
8
+ watchPublic(messageHash: any, subscribeHash: any, args: any, params?: {}): Promise<any>;
9
+ unWatchPublic(messageHash: any, args: any, params?: {}): Promise<any>;
10
+ watchPrivate(messageHash: any, subscribeHash: any, args: any, params?: {}): Promise<any>;
11
+ watchPrivateMultiple(messageHashes: any, subscribeHashes: any, args: any, params?: {}): Promise<any>;
12
+ handleAuthenticate(client: Client, message: any): void;
13
+ watchPublicMultiple(messageHashes: any, subscribeHashes: any, argsArray: any, params?: {}): Promise<any>;
14
+ unWatchChannel(symbol: string, channel: string, messageHashTopic: string, params?: {}): Promise<any>;
15
+ getPublicInstTypeAndId(market: Market): any[];
16
+ handleDMCBLMarketByMessageHashes(market: Market, hash: string, client: Client, timeframe?: Str): import("../base/types.js").MarketInterface;
17
+ watchTicker(symbol: string, params?: {}): Promise<Ticker>;
18
+ unWatchTicker(symbol: string, params?: {}): Promise<any>;
19
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
20
+ handleTicker(client: Client, message: any): void;
21
+ parseWsTicker(ticker: any, market?: any): Ticker;
22
+ watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
23
+ unWatchOHLCV(symbol: string, timeframe?: string, params?: {}): Promise<any>;
24
+ handleOHLCV(client: Client, message: any): void;
25
+ parseWsOHLCV(ohlcv: any, market?: Market): OHLCV;
26
+ watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
27
+ unWatchOrderBook(symbol: string, params?: {}): Promise<any>;
28
+ watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
29
+ handleOrderBook(client: Client, message: any): void;
30
+ handleCheckSumError(client: Client, symbol: string, messageHash: string): Promise<void>;
31
+ handleDelta(bookside: any, delta: any): void;
32
+ handleDeltas(bookside: any, deltas: any): void;
33
+ watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
34
+ watchTradesForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
35
+ unWatchTrades(symbol: string, params?: {}): Promise<any>;
36
+ handleTrades(client: Client, message: any): void;
37
+ parseWsTrade(trade: any, market?: any): Trade;
38
+ watchBalance(params?: {}): Promise<Balances>;
39
+ handleBalance(client: Client, message: any): void;
40
+ watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
41
+ handleOrder(client: Client, message: any): void;
42
+ parseWsOrder(order: Dict, market?: Market): Order;
43
+ watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?: {}): Promise<Position[]>;
44
+ getPrivateInstType(market: Market): "umcbl" | "dmcbl";
45
+ handlePositions(client: Client, message: any): void;
46
+ parseWsPosition(position: any, market?: any): Position;
47
+ handleErrorMessage(client: Client, message: any): boolean;
48
+ handleMessage(client: Client, message: any): void;
49
+ ping(client: Client): string;
50
+ handlePong(client: Client, message: any): any;
51
+ handleSubscriptionStatus(client: Client, message: any): any;
52
+ handleUnSubscriptionStatus(client: Client, message: any): any;
53
+ handleOrderBookUnSubscription(client: Client, message: any): void;
54
+ handleTradesUnSubscription(client: Client, message: any): void;
55
+ handleTickerUnSubscription(client: Client, message: any): void;
56
+ handleOHLCVUnSubscription(client: Client, message: any): void;
57
+ }