ccxt 4.4.78__py2.py3-none-any.whl → 4.4.82__py2.py3-none-any.whl
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.
- ccxt/__init__.py +1 -1
- ccxt/abstract/bitmart.py +1 -0
- ccxt/apex.py +21 -31
- ccxt/ascendex.py +23 -6
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/apex.py +21 -31
- ccxt/async_support/ascendex.py +23 -6
- ccxt/async_support/base/exchange.py +5 -1
- ccxt/async_support/bigone.py +17 -14
- ccxt/async_support/binance.py +6 -0
- ccxt/async_support/bingx.py +16 -35
- ccxt/async_support/bitfinex.py +120 -82
- ccxt/async_support/bitget.py +58 -66
- ccxt/async_support/bitmart.py +7 -2
- ccxt/async_support/bitmex.py +8 -1
- ccxt/async_support/bitopro.py +5 -1
- ccxt/async_support/bitrue.py +2 -1
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitteam.py +2 -0
- ccxt/async_support/bitvavo.py +25 -10
- ccxt/async_support/btcalpha.py +1 -1
- ccxt/async_support/btcmarkets.py +1 -1
- ccxt/async_support/btcturk.py +1 -1
- ccxt/async_support/bybit.py +29 -15
- ccxt/async_support/coinbase.py +3 -15
- ccxt/async_support/coinex.py +1 -0
- ccxt/async_support/coinlist.py +1 -0
- ccxt/async_support/coinone.py +1 -0
- ccxt/async_support/delta.py +3 -0
- ccxt/async_support/deribit.py +1 -0
- ccxt/async_support/hollaex.py +1 -0
- ccxt/async_support/htx.py +9 -5
- ccxt/async_support/huobijp.py +1 -0
- ccxt/async_support/hyperliquid.py +14 -0
- ccxt/async_support/kraken.py +2 -0
- ccxt/async_support/okx.py +2 -3
- ccxt/async_support/oxfun.py +21 -1
- ccxt/async_support/poloniex.py +1 -0
- ccxt/async_support/timex.py +2 -2
- ccxt/async_support/upbit.py +43 -21
- ccxt/async_support/whitebit.py +65 -12
- ccxt/base/exchange.py +20 -2
- ccxt/bigone.py +17 -14
- ccxt/binance.py +6 -0
- ccxt/bingx.py +16 -35
- ccxt/bitfinex.py +120 -82
- ccxt/bitget.py +58 -66
- ccxt/bitmart.py +7 -2
- ccxt/bitmex.py +8 -1
- ccxt/bitopro.py +5 -1
- ccxt/bitrue.py +2 -1
- ccxt/bitso.py +1 -1
- ccxt/bitteam.py +2 -0
- ccxt/bitvavo.py +25 -10
- ccxt/btcalpha.py +1 -1
- ccxt/btcmarkets.py +1 -1
- ccxt/btcturk.py +1 -1
- ccxt/bybit.py +29 -15
- ccxt/coinbase.py +3 -15
- ccxt/coinex.py +1 -0
- ccxt/coinlist.py +1 -0
- ccxt/coinone.py +1 -0
- ccxt/delta.py +3 -0
- ccxt/deribit.py +1 -0
- ccxt/hollaex.py +1 -0
- ccxt/htx.py +9 -5
- ccxt/huobijp.py +1 -0
- ccxt/hyperliquid.py +14 -0
- ccxt/kraken.py +2 -0
- ccxt/okx.py +2 -3
- ccxt/oxfun.py +21 -1
- ccxt/poloniex.py +1 -0
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/binance.py +3 -3
- ccxt/pro/coinbase.py +41 -53
- ccxt/pro/hyperliquid.py +10 -2
- ccxt/pro/upbit.py +42 -0
- ccxt/test/tests_async.py +0 -1
- ccxt/test/tests_sync.py +0 -1
- ccxt/timex.py +2 -2
- ccxt/upbit.py +43 -21
- ccxt/whitebit.py +65 -12
- {ccxt-4.4.78.dist-info → ccxt-4.4.82.dist-info}/METADATA +9 -13
- {ccxt-4.4.78.dist-info → ccxt-4.4.82.dist-info}/RECORD +87 -87
- {ccxt-4.4.78.dist-info → ccxt-4.4.82.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.78.dist-info → ccxt-4.4.82.dist-info}/WHEEL +0 -0
- {ccxt-4.4.78.dist-info → ccxt-4.4.82.dist-info}/top_level.txt +0 -0
ccxt/pro/coinbase.py
CHANGED
@@ -78,7 +78,7 @@ class coinbase(ccxt.async_support.coinbase):
|
|
78
78
|
messageHash = messageHash + '::' + ','.join(symbol)
|
79
79
|
elif symbol is not None:
|
80
80
|
market = self.market(symbol)
|
81
|
-
messageHash = name + '::' +
|
81
|
+
messageHash = name + '::' + symbol
|
82
82
|
productIds = [market['id']]
|
83
83
|
url = self.urls['api']['ws']
|
84
84
|
subscribe = {
|
@@ -115,7 +115,7 @@ class coinbase(ccxt.async_support.coinbase):
|
|
115
115
|
market = self.market(symbol)
|
116
116
|
marketId = market['id']
|
117
117
|
productIds.append(marketId)
|
118
|
-
messageHashes.append(name + '::' +
|
118
|
+
messageHashes.append(name + '::' + symbol)
|
119
119
|
url = self.urls['api']['ws']
|
120
120
|
subscribe = {
|
121
121
|
'type': 'subscribe',
|
@@ -176,8 +176,11 @@ class coinbase(ccxt.async_support.coinbase):
|
|
176
176
|
if symbols is None:
|
177
177
|
symbols = self.symbols
|
178
178
|
name = 'ticker_batch'
|
179
|
-
|
179
|
+
ticker = await self.subscribe_multiple(name, False, symbols, params)
|
180
180
|
if self.newUpdates:
|
181
|
+
tickers = {}
|
182
|
+
symbol = ticker['symbol']
|
183
|
+
tickers[symbol] = ticker
|
181
184
|
return tickers
|
182
185
|
return self.tickers
|
183
186
|
|
@@ -272,7 +275,7 @@ class coinbase(ccxt.async_support.coinbase):
|
|
272
275
|
#
|
273
276
|
#
|
274
277
|
channel = self.safe_string(message, 'channel')
|
275
|
-
events = self.
|
278
|
+
events = self.safe_list(message, 'events', [])
|
276
279
|
datetime = self.safe_string(message, 'timestamp')
|
277
280
|
timestamp = self.parse8601(datetime)
|
278
281
|
newTickers = []
|
@@ -281,31 +284,18 @@ class coinbase(ccxt.async_support.coinbase):
|
|
281
284
|
tickers = self.safe_list(tickersObj, 'tickers', [])
|
282
285
|
for j in range(0, len(tickers)):
|
283
286
|
ticker = tickers[j]
|
287
|
+
wsMarketId = self.safe_string(ticker, 'product_id')
|
288
|
+
if wsMarketId is None:
|
289
|
+
continue
|
284
290
|
result = self.parse_ws_ticker(ticker)
|
285
291
|
result['timestamp'] = timestamp
|
286
292
|
result['datetime'] = datetime
|
287
293
|
symbol = result['symbol']
|
288
294
|
self.tickers[symbol] = result
|
289
|
-
wsMarketId = self.safe_string(ticker, 'product_id')
|
290
|
-
if wsMarketId is None:
|
291
|
-
continue
|
292
|
-
messageHash = channel + '::' + wsMarketId
|
293
295
|
newTickers.append(result)
|
296
|
+
messageHash = channel + '::' + symbol
|
294
297
|
client.resolve(result, messageHash)
|
295
|
-
|
296
|
-
client.resolve(result, messageHash + 'C') # sometimes we subscribe to BTC/USDC and coinbase returns BTC/USD
|
297
|
-
messageHashes = self.find_message_hashes(client, 'ticker_batch::')
|
298
|
-
for i in range(0, len(messageHashes)):
|
299
|
-
messageHash = messageHashes[i]
|
300
|
-
parts = messageHash.split('::')
|
301
|
-
symbolsString = parts[1]
|
302
|
-
symbols = symbolsString.split(',')
|
303
|
-
tickers = self.filter_by_array(newTickers, 'symbol', symbols)
|
304
|
-
if not self.is_empty(tickers):
|
305
|
-
client.resolve(tickers, messageHash)
|
306
|
-
if messageHash.endswith('USD'):
|
307
|
-
client.resolve(tickers, messageHash + 'C') # sometimes we subscribe to BTC/USDC and coinbase returns BTC/USD
|
308
|
-
return message
|
298
|
+
self.try_resolve_usdc(client, messageHash, result)
|
309
299
|
|
310
300
|
def parse_ws_ticker(self, ticker, market=None):
|
311
301
|
#
|
@@ -470,13 +460,13 @@ class coinbase(ccxt.async_support.coinbase):
|
|
470
460
|
# ]
|
471
461
|
# }
|
472
462
|
#
|
473
|
-
events = self.
|
463
|
+
events = self.safe_list(message, 'events')
|
474
464
|
event = self.safe_value(events, 0)
|
475
|
-
trades = self.
|
476
|
-
trade = self.
|
465
|
+
trades = self.safe_list(event, 'trades')
|
466
|
+
trade = self.safe_dict(trades, 0)
|
477
467
|
marketId = self.safe_string(trade, 'product_id')
|
478
|
-
messageHash = 'market_trades::' + marketId
|
479
468
|
symbol = self.safe_symbol(marketId)
|
469
|
+
messageHash = 'market_trades::' + symbol
|
480
470
|
tradesArray = self.safe_value(self.trades, symbol)
|
481
471
|
if tradesArray is None:
|
482
472
|
tradesLimit = self.safe_integer(self.options, 'tradesLimit', 1000)
|
@@ -484,14 +474,12 @@ class coinbase(ccxt.async_support.coinbase):
|
|
484
474
|
self.trades[symbol] = tradesArray
|
485
475
|
for i in range(0, len(events)):
|
486
476
|
currentEvent = events[i]
|
487
|
-
currentTrades = self.
|
477
|
+
currentTrades = self.safe_list(currentEvent, 'trades')
|
488
478
|
for j in range(0, len(currentTrades)):
|
489
479
|
item = currentTrades[i]
|
490
480
|
tradesArray.append(self.parse_trade(item))
|
491
481
|
client.resolve(tradesArray, messageHash)
|
492
|
-
|
493
|
-
client.resolve(tradesArray, messageHash + 'C') # sometimes we subscribe to BTC/USDC and coinbase returns BTC/USD
|
494
|
-
return message
|
482
|
+
self.try_resolve_usdc(client, messageHash, tradesArray)
|
495
483
|
|
496
484
|
def handle_order(self, client, message):
|
497
485
|
#
|
@@ -522,14 +510,14 @@ class coinbase(ccxt.async_support.coinbase):
|
|
522
510
|
# ]
|
523
511
|
# }
|
524
512
|
#
|
525
|
-
events = self.
|
513
|
+
events = self.safe_list(message, 'events')
|
526
514
|
marketIds = []
|
527
515
|
if self.orders is None:
|
528
516
|
limit = self.safe_integer(self.options, 'ordersLimit', 1000)
|
529
517
|
self.orders = ArrayCacheBySymbolById(limit)
|
530
518
|
for i in range(0, len(events)):
|
531
519
|
event = events[i]
|
532
|
-
responseOrders = self.
|
520
|
+
responseOrders = self.safe_list(event, 'orders')
|
533
521
|
for j in range(0, len(responseOrders)):
|
534
522
|
responseOrder = responseOrders[j]
|
535
523
|
parsed = self.parse_ws_order(responseOrder)
|
@@ -540,12 +528,11 @@ class coinbase(ccxt.async_support.coinbase):
|
|
540
528
|
cachedOrders.append(parsed)
|
541
529
|
for i in range(0, len(marketIds)):
|
542
530
|
marketId = marketIds[i]
|
543
|
-
|
531
|
+
symbol = self.safe_symbol(marketId)
|
532
|
+
messageHash = 'user::' + symbol
|
544
533
|
client.resolve(self.orders, messageHash)
|
545
|
-
|
546
|
-
client.resolve(self.orders, messageHash + 'C') # sometimes we subscribe to BTC/USDC and coinbase returns BTC/USD
|
534
|
+
self.try_resolve_usdc(client, messageHash, self.orders)
|
547
535
|
client.resolve(self.orders, 'user')
|
548
|
-
return message
|
549
536
|
|
550
537
|
def parse_ws_order(self, order, market=None):
|
551
538
|
#
|
@@ -621,7 +608,7 @@ class coinbase(ccxt.async_support.coinbase):
|
|
621
608
|
# {
|
622
609
|
# "side": "bid",
|
623
610
|
# "event_time": "1970-01-01T00:00:00Z",
|
624
|
-
# "price_level": "21921.
|
611
|
+
# "price_level": "21921.74",
|
625
612
|
# "new_quantity": "0.06317902"
|
626
613
|
# },
|
627
614
|
# {
|
@@ -635,34 +622,35 @@ class coinbase(ccxt.async_support.coinbase):
|
|
635
622
|
# ]
|
636
623
|
# }
|
637
624
|
#
|
638
|
-
events = self.
|
625
|
+
events = self.safe_list(message, 'events')
|
639
626
|
datetime = self.safe_string(message, 'timestamp')
|
640
627
|
for i in range(0, len(events)):
|
641
628
|
event = events[i]
|
642
|
-
updates = self.
|
629
|
+
updates = self.safe_list(event, 'updates', [])
|
643
630
|
marketId = self.safe_string(event, 'product_id')
|
644
631
|
# sometimes we subscribe to BTC/USDC and coinbase returns BTC/USD, are aliases
|
645
632
|
market = self.safe_market(marketId)
|
646
|
-
messageHash = 'level2::' + market['id']
|
647
633
|
symbol = market['symbol']
|
634
|
+
messageHash = 'level2::' + symbol
|
648
635
|
subscription = self.safe_value(client.subscriptions, messageHash, {})
|
649
636
|
limit = self.safe_integer(subscription, 'limit')
|
650
637
|
type = self.safe_string(event, 'type')
|
651
638
|
if type == 'snapshot':
|
652
639
|
self.orderbooks[symbol] = self.order_book({}, limit)
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
640
|
+
# unknown bug, can't reproduce, but sometimes orderbook is None
|
641
|
+
if not (symbol in self.orderbooks) and self.orderbooks[symbol] is None:
|
642
|
+
continue
|
643
|
+
orderbook = self.orderbooks[symbol]
|
644
|
+
self.handle_order_book_helper(orderbook, updates)
|
645
|
+
orderbook['timestamp'] = self.parse8601(datetime)
|
646
|
+
orderbook['datetime'] = datetime
|
647
|
+
orderbook['symbol'] = symbol
|
648
|
+
client.resolve(orderbook, messageHash)
|
649
|
+
self.try_resolve_usdc(client, messageHash, orderbook)
|
650
|
+
|
651
|
+
def try_resolve_usdc(self, client, messageHash, result):
|
652
|
+
if messageHash.endswith('/USD') or messageHash.endswith('-USD'):
|
653
|
+
client.resolve(result, messageHash + 'C') # when subscribing to BTC/USDC and coinbase returns BTC/USD, so resolve USDC too
|
666
654
|
|
667
655
|
def handle_subscription_status(self, client, message):
|
668
656
|
#
|
ccxt/pro/hyperliquid.py
CHANGED
@@ -103,7 +103,11 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
103
103
|
await self.load_markets()
|
104
104
|
order, globalParams = self.parseCreateEditOrderArgs(None, symbol, type, side, amount, price, params)
|
105
105
|
orders = await self.create_orders_ws([order], globalParams)
|
106
|
-
|
106
|
+
parsedOrder = orders[0]
|
107
|
+
orderInfo = self.safe_dict(parsedOrder, 'info')
|
108
|
+
# handle potential error here
|
109
|
+
self.handle_errors(None, None, None, None, None, self.json(orderInfo), orderInfo, None, None)
|
110
|
+
return parsedOrder
|
107
111
|
|
108
112
|
async def edit_order_ws(self, id: str, symbol: str, type: str, side: str, amount: Num = None, price: Num = None, params={}):
|
109
113
|
"""
|
@@ -140,7 +144,11 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
140
144
|
dataObject = self.safe_dict(responseObject, 'data', {})
|
141
145
|
statuses = self.safe_list(dataObject, 'statuses', [])
|
142
146
|
first = self.safe_dict(statuses, 0, {})
|
143
|
-
|
147
|
+
parsedOrder = self.parse_order(first, market)
|
148
|
+
orderInfo = self.safe_dict(parsedOrder, 'info')
|
149
|
+
# handle potential error here
|
150
|
+
self.handle_errors(None, None, None, None, None, self.json(orderInfo), orderInfo, None, None)
|
151
|
+
return parsedOrder
|
144
152
|
|
145
153
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
146
154
|
"""
|
ccxt/pro/upbit.py
CHANGED
@@ -8,6 +8,7 @@ from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById
|
|
8
8
|
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
|
+
from ccxt.base.errors import NotSupported
|
11
12
|
|
12
13
|
|
13
14
|
class upbit(ccxt.async_support.upbit):
|
@@ -21,6 +22,7 @@ class upbit(ccxt.async_support.upbit):
|
|
21
22
|
'watchTickers': True,
|
22
23
|
'watchTrades': True,
|
23
24
|
'watchTradesForSymbols': True,
|
25
|
+
'watchOHLCV': True,
|
24
26
|
'watchOrders': True,
|
25
27
|
'watchMyTrades': True,
|
26
28
|
'watchBalance': True,
|
@@ -190,6 +192,25 @@ class upbit(ccxt.async_support.upbit):
|
|
190
192
|
orderbook = await self.watch_public(symbol, 'orderbook')
|
191
193
|
return orderbook.limit()
|
192
194
|
|
195
|
+
async def watch_ohlcv(self, symbol: str, timeframe='1s', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
196
|
+
"""
|
197
|
+
watches information an OHLCV with timestamp, openingPrice, highPrice, lowPrice, tradePrice, baseVolume in 1s.
|
198
|
+
|
199
|
+
https://docs.upbit.com/kr/reference/websocket-candle for Upbit KR
|
200
|
+
https://global-docs.upbit.com/reference/websocket-candle for Upbit Global
|
201
|
+
|
202
|
+
:param str symbol: unified market symbol of the market orders were made in
|
203
|
+
:param str timeframe: specifies the OHLCV candle interval to watch. As of now, Upbit only supports 1s candles.
|
204
|
+
:param int [since]: the earliest time in ms to fetch orders for
|
205
|
+
:param int [limit]: the maximum number of order structures to retrieve
|
206
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
207
|
+
:returns OHLCV[]: a list of `OHLCV structures <https://docs.ccxt.com/#/?id=ohlcv-structure>`
|
208
|
+
"""
|
209
|
+
if timeframe != '1s':
|
210
|
+
raise NotSupported(self.id + ' watchOHLCV does not support' + timeframe + ' candle.')
|
211
|
+
timeFrameOHLCV = 'candle.' + timeframe
|
212
|
+
return await self.watch_public(symbol, timeFrameOHLCV)
|
213
|
+
|
193
214
|
def handle_ticker(self, client: Client, message):
|
194
215
|
# 2020-03-17T23:07:36.511Z "onMessage" <Buffer 7b 22 74 79 70 65 22 3a 22 74 69 63 6b 65 72 22 2c 22 63 6f 64 65 22 3a 22 42 54 43 2d 45 54 48 22 2c 22 6f 70 65 6e 69 6e 67 5f 70 72 69 63 65 22 3a ... >
|
195
216
|
# {type: "ticker",
|
@@ -313,6 +334,26 @@ class upbit(ccxt.async_support.upbit):
|
|
313
334
|
messageHash = 'trade:' + marketId
|
314
335
|
client.resolve(stored, messageHash)
|
315
336
|
|
337
|
+
def handle_ohlcv(self, client: Client, message):
|
338
|
+
# {
|
339
|
+
# type: 'candle.1s',
|
340
|
+
# code: 'KRW-USDT',
|
341
|
+
# candle_date_time_utc: '2025-04-22T09:50:34',
|
342
|
+
# candle_date_time_kst: '2025-04-22T18:50:34',
|
343
|
+
# opening_price: 1438,
|
344
|
+
# high_price: 1438,
|
345
|
+
# low_price: 1438,
|
346
|
+
# trade_price: 1438,
|
347
|
+
# candle_acc_trade_volume: 1145.8935,
|
348
|
+
# candle_acc_trade_price: 1647794.853,
|
349
|
+
# timestamp: 1745315434125,
|
350
|
+
# stream_type: 'REALTIME'
|
351
|
+
# }
|
352
|
+
marketId = self.safe_string(message, 'code')
|
353
|
+
messageHash = 'candle.1s:' + marketId
|
354
|
+
ohlcv = self.parse_ohlcv(message)
|
355
|
+
client.resolve(ohlcv, messageHash)
|
356
|
+
|
316
357
|
async def authenticate(self, params={}):
|
317
358
|
self.check_required_credentials()
|
318
359
|
wsOptions: dict = self.safe_dict(self.options, 'ws', {})
|
@@ -611,6 +652,7 @@ class upbit(ccxt.async_support.upbit):
|
|
611
652
|
'trade': self.handle_trades,
|
612
653
|
'myOrder': self.handle_my_order,
|
613
654
|
'myAsset': self.handle_balance,
|
655
|
+
'candle.1s': self.handle_ohlcv,
|
614
656
|
}
|
615
657
|
methodName = self.safe_string(message, 'type')
|
616
658
|
method = self.safe_value(methods, methodName)
|
ccxt/test/tests_async.py
CHANGED
ccxt/test/tests_sync.py
CHANGED
ccxt/timex.py
CHANGED
@@ -1526,7 +1526,7 @@ class timex(Exchange, ImplicitAPI):
|
|
1526
1526
|
'cost': feeCost,
|
1527
1527
|
'currency': feeCurrency,
|
1528
1528
|
}
|
1529
|
-
return {
|
1529
|
+
return self.safe_trade({
|
1530
1530
|
'info': trade,
|
1531
1531
|
'id': id,
|
1532
1532
|
'timestamp': timestamp,
|
@@ -1540,7 +1540,7 @@ class timex(Exchange, ImplicitAPI):
|
|
1540
1540
|
'cost': cost,
|
1541
1541
|
'takerOrMaker': takerOrMaker,
|
1542
1542
|
'fee': fee,
|
1543
|
-
}
|
1543
|
+
})
|
1544
1544
|
|
1545
1545
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
1546
1546
|
#
|
ccxt/upbit.py
CHANGED
@@ -491,7 +491,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
491
491
|
def fetch_markets(self, params={}) -> List[Market]:
|
492
492
|
"""
|
493
493
|
|
494
|
-
https://docs.upbit.com/reference
|
494
|
+
https://docs.upbit.com/kr/reference/마켓-코드-조회
|
495
|
+
https://global-docs.upbit.com/reference/listing-market-list
|
495
496
|
|
496
497
|
retrieves data on all markets for upbit
|
497
498
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -586,7 +587,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
586
587
|
def fetch_balance(self, params={}) -> Balances:
|
587
588
|
"""
|
588
589
|
|
589
|
-
https://docs.upbit.com/reference
|
590
|
+
https://docs.upbit.com/kr/reference/전체-계좌-조회
|
591
|
+
https://global-docs.upbit.com/reference/overall-account-inquiry
|
590
592
|
|
591
593
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
592
594
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -611,7 +613,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
611
613
|
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}) -> OrderBooks:
|
612
614
|
"""
|
613
615
|
|
614
|
-
https://docs.upbit.com/reference
|
616
|
+
https://docs.upbit.com/kr/reference/호가-정보-조회
|
617
|
+
https://global-docs.upbit.com/reference/order-book-list
|
615
618
|
|
616
619
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
617
620
|
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
|
@@ -677,7 +680,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
677
680
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
678
681
|
"""
|
679
682
|
|
680
|
-
https://docs.upbit.com/reference
|
683
|
+
https://docs.upbit.com/kr/reference/호가-정보-조회
|
684
|
+
https://global-docs.upbit.com/reference/order-book-list
|
681
685
|
|
682
686
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
683
687
|
:param str symbol: unified symbol of the market to fetch the order book for
|
@@ -747,7 +751,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
747
751
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
748
752
|
"""
|
749
753
|
|
750
|
-
https://docs.upbit.com/reference/ticker
|
754
|
+
https://docs.upbit.com/kr/reference/ticker현재가-정보
|
755
|
+
https://global-docs.upbit.com/reference/tickers
|
751
756
|
|
752
757
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
753
758
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
@@ -804,7 +809,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
804
809
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
805
810
|
"""
|
806
811
|
|
807
|
-
https://docs.upbit.com/reference/ticker
|
812
|
+
https://docs.upbit.com/kr/reference/ticker현재가-정보
|
813
|
+
https://global-docs.upbit.com/reference/tickers
|
808
814
|
|
809
815
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
810
816
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
@@ -885,7 +891,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
885
891
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
886
892
|
"""
|
887
893
|
|
888
|
-
https://docs.upbit.com/reference
|
894
|
+
https://docs.upbit.com/kr/reference/최근-체결-내역
|
895
|
+
https://global-docs.upbit.com/reference/today-trades-history
|
889
896
|
|
890
897
|
get the list of most recent trades for a particular symbol
|
891
898
|
:param str symbol: unified symbol of the market to fetch trades for
|
@@ -930,7 +937,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
930
937
|
def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
|
931
938
|
"""
|
932
939
|
|
933
|
-
https://docs.upbit.com/reference
|
940
|
+
https://docs.upbit.com/kr/reference/주문-가능-정보
|
941
|
+
https://global-docs.upbit.com/reference/available-order-information
|
934
942
|
|
935
943
|
fetch the trading fees for a market
|
936
944
|
:param str symbol: unified market symbol
|
@@ -961,7 +969,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
961
969
|
# },
|
962
970
|
# "bid_account": {
|
963
971
|
# "currency": "KRW",
|
964
|
-
# "balance": "0.
|
972
|
+
# "balance": "0.34202415",
|
965
973
|
# "locked": "4999.99999922",
|
966
974
|
# "avg_buy_price": "0",
|
967
975
|
# "avg_buy_price_modified": True,
|
@@ -1040,7 +1048,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1040
1048
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
1041
1049
|
"""
|
1042
1050
|
|
1043
|
-
https://docs.upbit.com/reference
|
1051
|
+
https://docs.upbit.com/kr/reference/분minute-캔들-1
|
1052
|
+
https://global-docs.upbit.com/reference/minutes
|
1044
1053
|
|
1045
1054
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
1046
1055
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
@@ -1126,7 +1135,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1126
1135
|
"""
|
1127
1136
|
create a trade order
|
1128
1137
|
|
1129
|
-
https://docs.upbit.com/reference
|
1138
|
+
https://docs.upbit.com/kr/reference/주문하기
|
1130
1139
|
https://global-docs.upbit.com/reference/order
|
1131
1140
|
|
1132
1141
|
:param str symbol: unified symbol of the market to create an order in
|
@@ -1220,7 +1229,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1220
1229
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
1221
1230
|
"""
|
1222
1231
|
|
1223
|
-
https://docs.upbit.com/reference
|
1232
|
+
https://docs.upbit.com/kr/reference/주문-취소
|
1233
|
+
https://global-docs.upbit.com/reference/order-cancel
|
1224
1234
|
|
1225
1235
|
cancels an open order
|
1226
1236
|
:param str id: order id
|
@@ -1257,7 +1267,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1257
1267
|
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}) -> Order:
|
1258
1268
|
"""
|
1259
1269
|
|
1260
|
-
https://docs.upbit.com/reference
|
1270
|
+
https://docs.upbit.com/kr/reference/취소-후-재주문
|
1271
|
+
https://global-docs.upbit.com/reference/cancel-and-new
|
1261
1272
|
|
1262
1273
|
canceled existing order and create new order. It's only generated same side and symbol canceled order. it returns the data of the canceled order, except for `new_order_uuid` and `new_identifier`. to get the details of the new order, use `fetchOrder(new_order_uuid)`.
|
1263
1274
|
:param str id: the uuid of the previous order you want to edit.
|
@@ -1357,7 +1368,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1357
1368
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1358
1369
|
"""
|
1359
1370
|
|
1360
|
-
https://docs.upbit.com/reference
|
1371
|
+
https://docs.upbit.com/kr/reference/입금-리스트-조회
|
1372
|
+
https://global-docs.upbit.com/reference/deposit-list-inquiry
|
1361
1373
|
|
1362
1374
|
fetch all deposits made to an account
|
1363
1375
|
:param str code: unified currency code
|
@@ -1400,6 +1412,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1400
1412
|
"""
|
1401
1413
|
fetch information on a deposit
|
1402
1414
|
|
1415
|
+
https://docs.upbit.com/kr/reference/개별-입금-조회
|
1403
1416
|
https://global-docs.upbit.com/reference/individual-deposit-inquiry
|
1404
1417
|
|
1405
1418
|
:param str id: the unique id for the deposit
|
@@ -1437,7 +1450,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1437
1450
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1438
1451
|
"""
|
1439
1452
|
|
1440
|
-
https://docs.upbit.com/reference
|
1453
|
+
https://docs.upbit.com/kr/reference/전체-출금-조회
|
1454
|
+
https://global-docs.upbit.com/reference/withdrawal-list-inquiry
|
1441
1455
|
|
1442
1456
|
fetch all withdrawals made from an account
|
1443
1457
|
:param str code: unified currency code
|
@@ -1480,6 +1494,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1480
1494
|
"""
|
1481
1495
|
fetch data on a currency withdrawal via the withdrawal id
|
1482
1496
|
|
1497
|
+
https://docs.upbit.com/kr/reference/개별-출금-조회
|
1483
1498
|
https://global-docs.upbit.com/reference/individual-withdrawal-inquiry
|
1484
1499
|
|
1485
1500
|
:param str id: the unique id for the withdrawal
|
@@ -1768,6 +1783,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1768
1783
|
"""
|
1769
1784
|
fetch all unfilled currently open orders
|
1770
1785
|
|
1786
|
+
https://docs.upbit.com/kr/reference/대기-주문-조회
|
1771
1787
|
https://global-docs.upbit.com/reference/open-order
|
1772
1788
|
|
1773
1789
|
:param str symbol: unified market symbol
|
@@ -1814,6 +1830,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1814
1830
|
"""
|
1815
1831
|
fetches information on multiple closed orders made by the user
|
1816
1832
|
|
1833
|
+
https://docs.upbit.com/kr/reference/종료-주문-조회
|
1817
1834
|
https://global-docs.upbit.com/reference/closed-order
|
1818
1835
|
|
1819
1836
|
:param str symbol: unified market symbol of the market orders were made in
|
@@ -1866,6 +1883,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1866
1883
|
"""
|
1867
1884
|
fetches information on multiple canceled orders made by the user
|
1868
1885
|
|
1886
|
+
https://docs.upbit.com/kr/reference/종료-주문-조회
|
1869
1887
|
https://global-docs.upbit.com/reference/closed-order
|
1870
1888
|
|
1871
1889
|
:param str symbol: unified market symbol of the market orders were made in
|
@@ -1917,7 +1935,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1917
1935
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
1918
1936
|
"""
|
1919
1937
|
|
1920
|
-
https://docs.upbit.com/reference
|
1938
|
+
https://docs.upbit.com/kr/reference/개별-주문-조회
|
1939
|
+
https://global-docs.upbit.com/reference/individual-order-inquiry
|
1921
1940
|
|
1922
1941
|
fetches information on an order made by the user
|
1923
1942
|
:param str id: order id
|
@@ -1978,7 +1997,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
1978
1997
|
def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
|
1979
1998
|
"""
|
1980
1999
|
|
1981
|
-
https://docs.upbit.com/reference
|
2000
|
+
https://docs.upbit.com/kr/reference/전체-입금-주소-조회
|
2001
|
+
https://global-docs.upbit.com/reference/general-deposit-address-inquiry
|
1982
2002
|
|
1983
2003
|
fetch deposit addresses for multiple currencies and chain types
|
1984
2004
|
:param str[]|None codes: list of unified currency codes, default is None
|
@@ -2034,7 +2054,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
2034
2054
|
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
2035
2055
|
"""
|
2036
2056
|
|
2037
|
-
https://docs.upbit.com/reference
|
2057
|
+
https://docs.upbit.com/kr/reference/개별-입금-주소-조회
|
2058
|
+
https://global-docs.upbit.com/reference/individual-deposit-address-inquiry
|
2038
2059
|
|
2039
2060
|
fetch the deposit address for a currency associated with self account
|
2040
2061
|
:param str code: unified currency code
|
@@ -2065,7 +2086,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
2065
2086
|
def create_deposit_address(self, code: str, params={}) -> DepositAddress:
|
2066
2087
|
"""
|
2067
2088
|
|
2068
|
-
https://docs.upbit.com/reference
|
2089
|
+
https://docs.upbit.com/kr/reference/입금-주소-생성-요청
|
2090
|
+
https://global-docs.upbit.com/reference/deposit-address-generation
|
2069
2091
|
|
2070
2092
|
create a currency deposit address
|
2071
2093
|
:param str code: unified currency code of the currency for the deposit address
|
@@ -2102,8 +2124,8 @@ class upbit(Exchange, ImplicitAPI):
|
|
2102
2124
|
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
2103
2125
|
"""
|
2104
2126
|
|
2105
|
-
https://docs.upbit.com/reference/디지털자산-출금하기
|
2106
|
-
https://docs.upbit.com/reference
|
2127
|
+
https://docs.upbit.com/kr/reference/디지털자산-출금하기
|
2128
|
+
https://global-docs.upbit.com/reference/withdrawal-digital-assets
|
2107
2129
|
|
2108
2130
|
make a withdrawal
|
2109
2131
|
:param str code: unified currency code
|