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.
- package/README.md +112 -111
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +6 -1
- package/dist/cjs/src/abstract/coincatch.js +9 -0
- package/dist/cjs/src/alpaca.js +1 -0
- package/dist/cjs/src/base/Exchange.js +21 -0
- package/dist/cjs/src/bigone.js +3 -0
- package/dist/cjs/src/binance.js +172 -44
- package/dist/cjs/src/bitfinex.js +4 -0
- package/dist/cjs/src/bitflyer.js +58 -0
- package/dist/cjs/src/bitget.js +77 -0
- package/dist/cjs/src/bitrue.js +3 -0
- package/dist/cjs/src/bybit.js +80 -2
- package/dist/cjs/src/cex.js +1307 -1381
- package/dist/cjs/src/coinbase.js +1 -1
- package/dist/cjs/src/coinbaseexchange.js +3 -0
- package/dist/cjs/src/coincatch.js +5370 -0
- package/dist/cjs/src/coinex.js +63 -1
- package/dist/cjs/src/cryptocom.js +1 -1
- package/dist/cjs/src/gate.js +103 -3
- package/dist/cjs/src/htx.js +1 -7
- package/dist/cjs/src/hyperliquid.js +10 -8
- package/dist/cjs/src/kucoin.js +27 -59
- package/dist/cjs/src/latoken.js +6 -0
- package/dist/cjs/src/mexc.js +1 -1
- package/dist/cjs/src/oceanex.js +2 -0
- package/dist/cjs/src/okcoin.js +1 -0
- package/dist/cjs/src/okx.js +74 -0
- package/dist/cjs/src/poloniex.js +5 -0
- package/dist/cjs/src/pro/coincatch.js +1554 -0
- package/js/ccxt.d.ts +9 -3
- package/js/ccxt.js +6 -2
- package/js/src/abstract/binance.d.ts +21 -0
- package/js/src/abstract/binancecoinm.d.ts +21 -0
- package/js/src/abstract/binanceus.d.ts +21 -0
- package/js/src/abstract/binanceusdm.d.ts +21 -0
- package/js/src/abstract/bitflyer.d.ts +1 -0
- package/js/src/abstract/bitget.d.ts +3 -0
- package/js/src/abstract/cex.d.ts +28 -29
- package/js/src/abstract/coincatch.d.ts +97 -0
- package/js/src/abstract/coincatch.js +11 -0
- package/js/src/abstract/gate.d.ts +5 -0
- package/js/src/abstract/gateio.d.ts +5 -0
- package/js/src/abstract/kucoin.d.ts +1 -0
- package/js/src/abstract/kucoinfutures.d.ts +1 -0
- package/js/src/abstract/okx.d.ts +1 -0
- package/js/src/alpaca.js +1 -0
- package/js/src/base/Exchange.d.ts +8 -2
- package/js/src/base/Exchange.js +21 -0
- package/js/src/base/types.d.ts +8 -0
- package/js/src/bigone.js +3 -0
- package/js/src/binance.d.ts +3 -1
- package/js/src/binance.js +172 -44
- package/js/src/bitfinex.js +4 -0
- package/js/src/bitflyer.d.ts +3 -1
- package/js/src/bitflyer.js +58 -0
- package/js/src/bitget.d.ts +3 -1
- package/js/src/bitget.js +77 -0
- package/js/src/bitrue.js +3 -0
- package/js/src/bybit.d.ts +3 -1
- package/js/src/bybit.js +80 -2
- package/js/src/cex.d.ts +34 -20
- package/js/src/cex.js +1308 -1382
- package/js/src/coinbase.js +1 -1
- package/js/src/coinbaseexchange.js +3 -0
- package/js/src/coincatch.d.ts +130 -0
- package/js/src/coincatch.js +5371 -0
- package/js/src/coinex.d.ts +1 -0
- package/js/src/coinex.js +63 -1
- package/js/src/cryptocom.js +1 -1
- package/js/src/gate.d.ts +2 -0
- package/js/src/gate.js +103 -3
- package/js/src/htx.js +1 -7
- package/js/src/hyperliquid.js +10 -8
- package/js/src/kucoin.d.ts +0 -1
- package/js/src/kucoin.js +27 -59
- package/js/src/latoken.js +6 -0
- package/js/src/mexc.js +1 -1
- package/js/src/oceanex.js +2 -0
- package/js/src/okcoin.js +1 -0
- package/js/src/okx.d.ts +3 -1
- package/js/src/okx.js +74 -0
- package/js/src/poloniex.js +5 -0
- package/js/src/pro/coincatch.d.ts +57 -0
- package/js/src/pro/coincatch.js +1555 -0
- 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
|
}
|
package/js/src/poloniex.js
CHANGED
|
@@ -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
|
+
}
|