ccxt 4.3.53__py2.py3-none-any.whl → 4.3.55__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/kucoin.py +3 -0
- ccxt/abstract/kucoinfutures.py +3 -0
- ccxt/ace.py +1 -1
- ccxt/alpaca.py +1 -1
- ccxt/ascendex.py +6 -4
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/ace.py +1 -1
- ccxt/async_support/alpaca.py +1 -1
- ccxt/async_support/ascendex.py +6 -4
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bigone.py +1 -1
- ccxt/async_support/binance.py +6 -6
- ccxt/async_support/bingx.py +4 -4
- ccxt/async_support/bit2c.py +1 -1
- ccxt/async_support/bitbank.py +1 -1
- ccxt/async_support/bitbns.py +1 -1
- ccxt/async_support/bitfinex.py +1 -1
- ccxt/async_support/bitfinex2.py +1 -1
- ccxt/async_support/bitflyer.py +1 -1
- ccxt/async_support/bitget.py +2 -2
- ccxt/async_support/bithumb.py +1 -1
- ccxt/async_support/bitmart.py +3 -3
- ccxt/async_support/bitmex.py +1 -1
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +1 -1
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitstamp.py +1 -1
- ccxt/async_support/bitteam.py +1 -1
- ccxt/async_support/bitvavo.py +2 -2
- ccxt/async_support/bl3p.py +1 -1
- ccxt/async_support/blockchaincom.py +28 -28
- ccxt/async_support/blofin.py +1 -1
- ccxt/async_support/btcalpha.py +4 -11
- ccxt/async_support/btcbox.py +1 -1
- ccxt/async_support/btcmarkets.py +1 -1
- ccxt/async_support/btcturk.py +1 -1
- ccxt/async_support/bybit.py +2 -2
- ccxt/async_support/cex.py +2 -2
- ccxt/async_support/coinbase.py +33 -33
- ccxt/async_support/coinbaseexchange.py +1 -1
- ccxt/async_support/coinbaseinternational.py +1 -1
- ccxt/async_support/coincheck.py +1 -1
- ccxt/async_support/coinex.py +2 -2
- ccxt/async_support/coinlist.py +2 -2
- ccxt/async_support/coinmate.py +1 -1
- ccxt/async_support/coinmetro.py +1 -1
- ccxt/async_support/coinone.py +1 -1
- ccxt/async_support/coinsph.py +1 -1
- ccxt/async_support/coinspot.py +1 -1
- ccxt/async_support/cryptocom.py +1 -1
- ccxt/async_support/currencycom.py +1 -1
- ccxt/async_support/delta.py +2 -2
- ccxt/async_support/deribit.py +4 -4
- ccxt/async_support/digifinex.py +2 -2
- ccxt/async_support/exmo.py +2 -2
- ccxt/async_support/gate.py +2 -2
- ccxt/async_support/gemini.py +1 -1
- ccxt/async_support/hitbtc.py +1 -1
- ccxt/async_support/hollaex.py +1 -1
- ccxt/async_support/htx.py +3 -3
- ccxt/async_support/huobijp.py +1 -1
- ccxt/async_support/hyperliquid.py +2 -2
- ccxt/async_support/idex.py +1 -1
- ccxt/async_support/independentreserve.py +1 -1
- ccxt/async_support/indodax.py +1 -1
- ccxt/async_support/kraken.py +2 -2
- ccxt/async_support/kucoin.py +127 -46
- ccxt/async_support/kucoinfutures.py +1 -1
- ccxt/async_support/kuna.py +1 -1
- ccxt/async_support/latoken.py +1 -1
- ccxt/async_support/lbank.py +1 -1
- ccxt/async_support/luno.py +1 -1
- ccxt/async_support/lykke.py +1 -1
- ccxt/async_support/mercado.py +1 -1
- ccxt/async_support/mexc.py +1 -1
- ccxt/async_support/ndax.py +1 -1
- ccxt/async_support/novadax.py +1 -1
- ccxt/async_support/oceanex.py +1 -1
- ccxt/async_support/okcoin.py +1 -1
- ccxt/async_support/okx.py +3 -3
- ccxt/async_support/onetrading.py +1 -1
- ccxt/async_support/oxfun.py +2 -2
- ccxt/async_support/p2b.py +1 -1
- ccxt/async_support/paymium.py +1 -1
- ccxt/async_support/phemex.py +30 -3
- ccxt/async_support/poloniex.py +6 -4
- ccxt/async_support/poloniexfutures.py +1 -1
- ccxt/async_support/probit.py +1 -1
- ccxt/async_support/timex.py +1 -1
- ccxt/async_support/tokocrypto.py +1 -1
- ccxt/async_support/tradeogre.py +1 -1
- ccxt/async_support/upbit.py +1 -1
- ccxt/async_support/vertex.py +2 -2
- ccxt/async_support/wavesexchange.py +1 -1
- ccxt/async_support/wazirx.py +1 -1
- ccxt/async_support/whitebit.py +2 -2
- ccxt/async_support/woo.py +31 -23
- ccxt/async_support/woofipro.py +3 -3
- ccxt/async_support/yobit.py +1 -1
- ccxt/async_support/zaif.py +1 -1
- ccxt/async_support/zonda.py +1 -1
- ccxt/base/exchange.py +1 -1
- ccxt/base/types.py +4 -1
- ccxt/bigone.py +1 -1
- ccxt/binance.py +6 -6
- ccxt/bingx.py +4 -4
- ccxt/bit2c.py +1 -1
- ccxt/bitbank.py +1 -1
- ccxt/bitbns.py +1 -1
- ccxt/bitfinex.py +1 -1
- ccxt/bitfinex2.py +1 -1
- ccxt/bitflyer.py +1 -1
- ccxt/bitget.py +2 -2
- ccxt/bithumb.py +1 -1
- ccxt/bitmart.py +3 -3
- ccxt/bitmex.py +1 -1
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +1 -1
- ccxt/bitso.py +1 -1
- ccxt/bitstamp.py +1 -1
- ccxt/bitteam.py +1 -1
- ccxt/bitvavo.py +2 -2
- ccxt/bl3p.py +1 -1
- ccxt/blockchaincom.py +28 -28
- ccxt/blofin.py +1 -1
- ccxt/btcalpha.py +4 -11
- ccxt/btcbox.py +1 -1
- ccxt/btcmarkets.py +1 -1
- ccxt/btcturk.py +1 -1
- ccxt/bybit.py +2 -2
- ccxt/cex.py +2 -2
- ccxt/coinbase.py +33 -33
- ccxt/coinbaseexchange.py +1 -1
- ccxt/coinbaseinternational.py +1 -1
- ccxt/coincheck.py +1 -1
- ccxt/coinex.py +2 -2
- ccxt/coinlist.py +2 -2
- ccxt/coinmate.py +1 -1
- ccxt/coinmetro.py +1 -1
- ccxt/coinone.py +1 -1
- ccxt/coinsph.py +1 -1
- ccxt/coinspot.py +1 -1
- ccxt/cryptocom.py +1 -1
- ccxt/currencycom.py +1 -1
- ccxt/delta.py +2 -2
- ccxt/deribit.py +4 -4
- ccxt/digifinex.py +2 -2
- ccxt/exmo.py +2 -2
- ccxt/gate.py +2 -2
- ccxt/gemini.py +1 -1
- ccxt/hitbtc.py +1 -1
- ccxt/hollaex.py +1 -1
- ccxt/htx.py +3 -3
- ccxt/huobijp.py +1 -1
- ccxt/hyperliquid.py +2 -2
- ccxt/idex.py +1 -1
- ccxt/independentreserve.py +1 -1
- ccxt/indodax.py +1 -1
- ccxt/kraken.py +2 -2
- ccxt/kucoin.py +127 -46
- ccxt/kucoinfutures.py +1 -1
- ccxt/kuna.py +1 -1
- ccxt/latoken.py +1 -1
- ccxt/lbank.py +1 -1
- ccxt/luno.py +1 -1
- ccxt/lykke.py +1 -1
- ccxt/mercado.py +1 -1
- ccxt/mexc.py +1 -1
- ccxt/ndax.py +1 -1
- ccxt/novadax.py +1 -1
- ccxt/oceanex.py +1 -1
- ccxt/okcoin.py +1 -1
- ccxt/okx.py +3 -3
- ccxt/onetrading.py +1 -1
- ccxt/oxfun.py +2 -2
- ccxt/p2b.py +1 -1
- ccxt/paymium.py +1 -1
- ccxt/phemex.py +30 -3
- ccxt/poloniex.py +6 -4
- ccxt/poloniexfutures.py +1 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/binance.py +3 -3
- ccxt/pro/bitvavo.py +2 -2
- ccxt/pro/bybit.py +20 -14
- ccxt/pro/cex.py +3 -3
- ccxt/pro/coinbase.py +22 -1
- ccxt/pro/cryptocom.py +1 -1
- ccxt/pro/gate.py +2 -2
- ccxt/pro/hitbtc.py +1 -1
- ccxt/pro/kraken.py +2 -2
- ccxt/pro/kucoin.py +65 -28
- ccxt/pro/okx.py +2 -2
- ccxt/pro/oxfun.py +2 -2
- ccxt/pro/poloniex.py +1 -1
- ccxt/pro/vertex.py +2 -2
- ccxt/probit.py +1 -1
- ccxt/test/{test_async.py → tests_async.py} +27 -280
- ccxt/test/tests_helpers.py +284 -0
- ccxt/test/tests_init.py +35 -0
- ccxt/test/{test_sync.py → tests_sync.py} +27 -282
- ccxt/timex.py +1 -1
- ccxt/tokocrypto.py +1 -1
- ccxt/tradeogre.py +1 -1
- ccxt/upbit.py +1 -1
- ccxt/vertex.py +2 -2
- ccxt/wavesexchange.py +1 -1
- ccxt/wazirx.py +1 -1
- ccxt/whitebit.py +2 -2
- ccxt/woo.py +31 -23
- ccxt/woofipro.py +3 -3
- ccxt/yobit.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +1 -1
- {ccxt-4.3.53.dist-info → ccxt-4.3.55.dist-info}/METADATA +5 -5
- {ccxt-4.3.53.dist-info → ccxt-4.3.55.dist-info}/RECORD +219 -252
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- {ccxt-4.3.53.dist-info → ccxt-4.3.55.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.3.53.dist-info → ccxt-4.3.55.dist-info}/WHEEL +0 -0
- {ccxt-4.3.53.dist-info → ccxt-4.3.55.dist-info}/top_level.txt +0 -0
ccxt/pro/bitvavo.py
CHANGED
@@ -510,7 +510,7 @@ class bitvavo(ccxt.async_support.bitvavo):
|
|
510
510
|
:param str type: 'market' or 'limit'
|
511
511
|
:param str side: 'buy' or 'sell'
|
512
512
|
:param float amount: how much of currency you want to trade in units of base currency
|
513
|
-
:param float price: the price at which the order is to be
|
513
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
514
514
|
:param dict [params]: extra parameters specific to the bitvavo api endpoint
|
515
515
|
:param str [params.timeInForce]: "GTC", "IOC", or "PO"
|
516
516
|
:param float [params.stopPrice]: The price at which a trigger order is triggered at
|
@@ -539,7 +539,7 @@ class bitvavo(ccxt.async_support.bitvavo):
|
|
539
539
|
:param str type: 'market' or 'limit'
|
540
540
|
:param str side: 'buy' or 'sell'
|
541
541
|
:param float [amount]: how much of currency you want to trade in units of base currency
|
542
|
-
:param float [price]: the price at which the order is to be
|
542
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
543
543
|
:param dict [params]: extra parameters specific to the bitvavo api endpoint
|
544
544
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
545
545
|
"""
|
ccxt/pro/bybit.py
CHANGED
@@ -142,7 +142,7 @@ class bybit(ccxt.async_support.bybit):
|
|
142
142
|
self.options['requestId'] = requestId
|
143
143
|
return requestId
|
144
144
|
|
145
|
-
def get_url_by_market_type(self, symbol: Str = None, isPrivate=False, method: Str = None, params={}):
|
145
|
+
async def get_url_by_market_type(self, symbol: Str = None, isPrivate=False, method: Str = None, params={}):
|
146
146
|
accessibility = 'private' if isPrivate else 'public'
|
147
147
|
isUsdcSettled = None
|
148
148
|
isSpot = None
|
@@ -160,7 +160,13 @@ class bybit(ccxt.async_support.bybit):
|
|
160
160
|
isUsdcSettled = (defaultSettle == 'USDC')
|
161
161
|
isSpot = (type == 'spot')
|
162
162
|
if isPrivate:
|
163
|
-
|
163
|
+
unified = await self.isUnifiedEnabled()
|
164
|
+
isUnifiedMargin = self.safe_bool(unified, 0, False)
|
165
|
+
isUnifiedAccount = self.safe_bool(unified, 1, False)
|
166
|
+
if isUsdcSettled and not isUnifiedMargin and not isUnifiedAccount:
|
167
|
+
url = url[accessibility]['usdc']
|
168
|
+
else:
|
169
|
+
url = url[accessibility]['contract']
|
164
170
|
else:
|
165
171
|
if isSpot:
|
166
172
|
url = url[accessibility]['spot']
|
@@ -187,7 +193,7 @@ class bybit(ccxt.async_support.bybit):
|
|
187
193
|
:param str type: 'market' or 'limit'
|
188
194
|
:param str side: 'buy' or 'sell'
|
189
195
|
:param float amount: how much of currency you want to trade in units of base currency
|
190
|
-
:param float [price]: the price at which the order is to be
|
196
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
191
197
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
192
198
|
:param str [params.timeInForce]: "GTC", "IOC", "FOK"
|
193
199
|
:param bool [params.postOnly]: True or False whether the order is post-only
|
@@ -236,7 +242,7 @@ class bybit(ccxt.async_support.bybit):
|
|
236
242
|
:param str type: 'market' or 'limit'
|
237
243
|
:param str side: 'buy' or 'sell'
|
238
244
|
:param float amount: how much of currency you want to trade in units of base currency
|
239
|
-
:param float price: the price at which the order is to be
|
245
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
240
246
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
241
247
|
:param float [params.triggerPrice]: The price that a trigger order is triggered at
|
242
248
|
:param float [params.stopLossPrice]: The price that a stop loss order is triggered at
|
@@ -313,7 +319,7 @@ class bybit(ccxt.async_support.bybit):
|
|
313
319
|
market = self.market(symbol)
|
314
320
|
symbol = market['symbol']
|
315
321
|
messageHash = 'ticker:' + symbol
|
316
|
-
url = self.get_url_by_market_type(symbol, False, 'watchTicker', params)
|
322
|
+
url = await self.get_url_by_market_type(symbol, False, 'watchTicker', params)
|
317
323
|
params = self.clean_params(params)
|
318
324
|
options = self.safe_value(self.options, 'watchTicker', {})
|
319
325
|
topic = self.safe_string(options, 'name', 'tickers')
|
@@ -335,7 +341,7 @@ class bybit(ccxt.async_support.bybit):
|
|
335
341
|
await self.load_markets()
|
336
342
|
symbols = self.market_symbols(symbols, None, False)
|
337
343
|
messageHashes = []
|
338
|
-
url = self.get_url_by_market_type(symbols[0], False, 'watchTickers', params)
|
344
|
+
url = await self.get_url_by_market_type(symbols[0], False, 'watchTickers', params)
|
339
345
|
params = self.clean_params(params)
|
340
346
|
options = self.safe_value(self.options, 'watchTickers', {})
|
341
347
|
topic = self.safe_string(options, 'name', 'tickers')
|
@@ -510,7 +516,7 @@ class bybit(ccxt.async_support.bybit):
|
|
510
516
|
await self.load_markets()
|
511
517
|
market = self.market(symbol)
|
512
518
|
symbol = market['symbol']
|
513
|
-
url = self.get_url_by_market_type(symbol, False, 'watchOHLCV', params)
|
519
|
+
url = await self.get_url_by_market_type(symbol, False, 'watchOHLCV', params)
|
514
520
|
params = self.clean_params(params)
|
515
521
|
ohlcv = None
|
516
522
|
timeframeId = self.safe_string(self.timeframes, timeframe, timeframe)
|
@@ -619,7 +625,7 @@ class bybit(ccxt.async_support.bybit):
|
|
619
625
|
if symbolsLength == 0:
|
620
626
|
raise ArgumentsRequired(self.id + ' watchOrderBookForSymbols() requires a non-empty array of symbols')
|
621
627
|
symbols = self.market_symbols(symbols)
|
622
|
-
url = self.get_url_by_market_type(symbols[0], False, 'watchOrderBook', params)
|
628
|
+
url = await self.get_url_by_market_type(symbols[0], False, 'watchOrderBook', params)
|
623
629
|
params = self.clean_params(params)
|
624
630
|
market = self.market(symbols[0])
|
625
631
|
if limit is None:
|
@@ -737,7 +743,7 @@ class bybit(ccxt.async_support.bybit):
|
|
737
743
|
if symbolsLength == 0:
|
738
744
|
raise ArgumentsRequired(self.id + ' watchTradesForSymbols() requires a non-empty array of symbols')
|
739
745
|
params = self.clean_params(params)
|
740
|
-
url = self.get_url_by_market_type(symbols[0], False, 'watchTrades', params)
|
746
|
+
url = await self.get_url_by_market_type(symbols[0], False, 'watchTrades', params)
|
741
747
|
topics = []
|
742
748
|
messageHashes = []
|
743
749
|
for i in range(0, len(symbols)):
|
@@ -887,7 +893,7 @@ class bybit(ccxt.async_support.bybit):
|
|
887
893
|
if symbol is not None:
|
888
894
|
symbol = self.symbol(symbol)
|
889
895
|
messageHash += ':' + symbol
|
890
|
-
url = self.get_url_by_market_type(symbol, True, method, params)
|
896
|
+
url = await self.get_url_by_market_type(symbol, True, method, params)
|
891
897
|
await self.authenticate(url)
|
892
898
|
topicByMarket: dict = {
|
893
899
|
'spot': 'ticketInfo',
|
@@ -1006,7 +1012,7 @@ class bybit(ccxt.async_support.bybit):
|
|
1006
1012
|
symbols = self.market_symbols(symbols)
|
1007
1013
|
messageHash = '::' + ','.join(symbols)
|
1008
1014
|
firstSymbol = self.safe_string(symbols, 0)
|
1009
|
-
url = self.get_url_by_market_type(firstSymbol, True, method, params)
|
1015
|
+
url = await self.get_url_by_market_type(firstSymbol, True, method, params)
|
1010
1016
|
messageHash = 'positions' + messageHash
|
1011
1017
|
client = self.client(url)
|
1012
1018
|
await self.authenticate(url)
|
@@ -1141,7 +1147,7 @@ class bybit(ccxt.async_support.bybit):
|
|
1141
1147
|
await self.load_markets()
|
1142
1148
|
market = self.market(symbol)
|
1143
1149
|
symbol = market['symbol']
|
1144
|
-
url = self.get_url_by_market_type(symbol, False, 'watchLiquidations', params)
|
1150
|
+
url = await self.get_url_by_market_type(symbol, False, 'watchLiquidations', params)
|
1145
1151
|
params = self.clean_params(params)
|
1146
1152
|
messageHash = 'liquidations::' + symbol
|
1147
1153
|
topic = 'liquidation.' + market['id']
|
@@ -1220,7 +1226,7 @@ class bybit(ccxt.async_support.bybit):
|
|
1220
1226
|
if symbol is not None:
|
1221
1227
|
symbol = self.symbol(symbol)
|
1222
1228
|
messageHash += ':' + symbol
|
1223
|
-
url = self.get_url_by_market_type(symbol, True, method, params)
|
1229
|
+
url = await self.get_url_by_market_type(symbol, True, method, params)
|
1224
1230
|
await self.authenticate(url)
|
1225
1231
|
topicsByMarket: dict = {
|
1226
1232
|
'spot': ['order', 'stopOrder'],
|
@@ -1518,7 +1524,7 @@ class bybit(ccxt.async_support.bybit):
|
|
1518
1524
|
unified = await self.isUnifiedEnabled()
|
1519
1525
|
isUnifiedMargin = self.safe_bool(unified, 0, False)
|
1520
1526
|
isUnifiedAccount = self.safe_bool(unified, 1, False)
|
1521
|
-
url = self.get_url_by_market_type(None, True, method, params)
|
1527
|
+
url = await self.get_url_by_market_type(None, True, method, params)
|
1522
1528
|
await self.authenticate(url)
|
1523
1529
|
topicByMarket: dict = {
|
1524
1530
|
'spot': 'outboundAccountInfo',
|
ccxt/pro/cex.py
CHANGED
@@ -640,7 +640,7 @@ class cex(ccxt.async_support.cex):
|
|
640
640
|
# }
|
641
641
|
# }
|
642
642
|
# }
|
643
|
-
#
|
643
|
+
# fulfilledOrder
|
644
644
|
# {
|
645
645
|
# "e": "order",
|
646
646
|
# "data": {
|
@@ -1187,7 +1187,7 @@ class cex(ccxt.async_support.cex):
|
|
1187
1187
|
:param str type: 'market' or 'limit'
|
1188
1188
|
:param str side: 'buy' or 'sell'
|
1189
1189
|
:param float amount: how much of currency you want to trade in units of base currency
|
1190
|
-
:param float price: the price at which the order is to be
|
1190
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1191
1191
|
:param dict [params]: extra parameters specific to the kraken api endpoint
|
1192
1192
|
:param boolean [params.maker_only]: Optional, maker only places an order only if offers best sell(<= max) or buy(>= max) price for self pair, if not order placement will be rejected with an error - "Order is not maker"
|
1193
1193
|
:returns dict: an `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
|
@@ -1222,7 +1222,7 @@ class cex(ccxt.async_support.cex):
|
|
1222
1222
|
:param str type: 'market' or 'limit'
|
1223
1223
|
:param str side: 'buy' or 'sell'
|
1224
1224
|
:param float amount: how much of the currency you want to trade in units of the base currency
|
1225
|
-
:param float|None [price]: the price at which the order is to be
|
1225
|
+
:param float|None [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1226
1226
|
:param dict [params]: extra parameters specific to the cex api endpoint
|
1227
1227
|
:returns dict: an `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
|
1228
1228
|
"""
|
ccxt/pro/coinbase.py
CHANGED
@@ -660,6 +660,25 @@ class coinbase(ccxt.async_support.coinbase):
|
|
660
660
|
#
|
661
661
|
return message
|
662
662
|
|
663
|
+
def handle_heartbeats(self, client, message):
|
664
|
+
# although the subscription takes a product_ids parameter(i.e. symbol),
|
665
|
+
# there is no(clear) way of mapping the message back to the symbol.
|
666
|
+
#
|
667
|
+
# {
|
668
|
+
# "channel": "heartbeats",
|
669
|
+
# "client_id": "",
|
670
|
+
# "timestamp": "2023-06-23T20:31:26.122969572Z",
|
671
|
+
# "sequence_num": 0,
|
672
|
+
# "events": [
|
673
|
+
# {
|
674
|
+
# "current_time": "2023-06-23 20:31:56.121961769 +0000 UTC m=+91717.525857105",
|
675
|
+
# "heartbeat_counter": "3049"
|
676
|
+
# }
|
677
|
+
# ]
|
678
|
+
# }
|
679
|
+
#
|
680
|
+
return message
|
681
|
+
|
663
682
|
def handle_message(self, client, message):
|
664
683
|
channel = self.safe_string(message, 'channel')
|
665
684
|
methods: dict = {
|
@@ -669,10 +688,12 @@ class coinbase(ccxt.async_support.coinbase):
|
|
669
688
|
'market_trades': self.handle_trade,
|
670
689
|
'user': self.handle_order,
|
671
690
|
'l2_data': self.handle_order_book,
|
691
|
+
'heartbeats': self.handle_heartbeats,
|
672
692
|
}
|
673
693
|
type = self.safe_string(message, 'type')
|
674
694
|
if type == 'error':
|
675
695
|
errorMessage = self.safe_string(message, 'message')
|
676
696
|
raise ExchangeError(errorMessage)
|
677
697
|
method = self.safe_value(methods, channel)
|
678
|
-
method
|
698
|
+
if method:
|
699
|
+
method(client, message)
|
ccxt/pro/cryptocom.py
CHANGED
@@ -682,7 +682,7 @@ class cryptocom(ccxt.async_support.cryptocom):
|
|
682
682
|
:param str type: 'market' or 'limit'
|
683
683
|
:param str side: 'buy' or 'sell'
|
684
684
|
:param float amount: how much of currency you want to trade in units of base currency
|
685
|
-
:param float [price]: the price at which the order is to be
|
685
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
686
686
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
687
687
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
688
688
|
"""
|
ccxt/pro/gate.py
CHANGED
@@ -138,7 +138,7 @@ class gate(ccxt.async_support.gate):
|
|
138
138
|
:param str type: 'limit' or 'market' *"market" is contract only*
|
139
139
|
:param str side: 'buy' or 'sell'
|
140
140
|
:param float amount: the amount of currency to trade
|
141
|
-
:param float [price]: *ignored in "market" orders* the price at which the order is to be
|
141
|
+
:param float [price]: *ignored in "market" orders* the price at which the order is to be fulfilled at in units of the quote currency
|
142
142
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
143
143
|
:param float [params.stopPrice]: The price at which a trigger order is triggered at
|
144
144
|
:param str [params.timeInForce]: "GTC", "IOC", or "PO"
|
@@ -249,7 +249,7 @@ class gate(ccxt.async_support.gate):
|
|
249
249
|
:param str type: 'market' or 'limit'
|
250
250
|
:param str side: 'buy' or 'sell'
|
251
251
|
:param float amount: how much of the currency you want to trade in units of the base currency
|
252
|
-
:param float [price]: the price at which the order is to be
|
252
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
253
253
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
254
254
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
255
255
|
"""
|
ccxt/pro/hitbtc.py
CHANGED
@@ -954,7 +954,7 @@ class hitbtc(ccxt.async_support.hitbtc):
|
|
954
954
|
:param str type: 'market' or 'limit'
|
955
955
|
:param str side: 'buy' or 'sell'
|
956
956
|
:param float amount: how much of currency you want to trade in units of base currency
|
957
|
-
:param float [price]: the price at which the order is to be
|
957
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
958
958
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
959
959
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported for spot-margin, swap supports both, default is 'cross'
|
960
960
|
:param bool [params.margin]: True for creating a margin order
|
ccxt/pro/kraken.py
CHANGED
@@ -131,7 +131,7 @@ class kraken(ccxt.async_support.kraken):
|
|
131
131
|
:param str type: 'market' or 'limit'
|
132
132
|
:param str side: 'buy' or 'sell'
|
133
133
|
:param float amount: how much of currency you want to trade in units of base currency
|
134
|
-
:param float [price]: the price at which the order is to be
|
134
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
135
135
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
136
136
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
137
137
|
"""
|
@@ -186,7 +186,7 @@ class kraken(ccxt.async_support.kraken):
|
|
186
186
|
:param str type: 'market' or 'limit'
|
187
187
|
:param str side: 'buy' or 'sell'
|
188
188
|
:param float amount: how much of the currency you want to trade in units of the base currency
|
189
|
-
:param float [price]: the price at which the order is to be
|
189
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
190
190
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
191
191
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
192
192
|
"""
|
ccxt/pro/kucoin.py
CHANGED
@@ -153,6 +153,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
153
153
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
154
154
|
"""
|
155
155
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
156
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/public-channels/market-snapshot
|
156
157
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
157
158
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
158
159
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -367,6 +368,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
367
368
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
368
369
|
"""
|
369
370
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
371
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/public-channels/klines
|
370
372
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
371
373
|
:param str timeframe: the length of time each candle represents
|
372
374
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -431,6 +433,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
431
433
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
432
434
|
"""
|
433
435
|
get the list of most recent trades for a particular symbol
|
436
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
|
434
437
|
:param str symbol: unified symbol of the market to fetch trades for
|
435
438
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
436
439
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -442,6 +445,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
442
445
|
async def watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
443
446
|
"""
|
444
447
|
get the list of most recent trades for a particular symbol
|
448
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
|
445
449
|
:param str symbol: unified symbol of the market to fetch trades for
|
446
450
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
447
451
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -741,6 +745,8 @@ class kucoin(ccxt.async_support.kucoin):
|
|
741
745
|
async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
742
746
|
"""
|
743
747
|
watches information on multiple orders made by the user
|
748
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/private-channels/private-order-change
|
749
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/private-channels/stop-order-event
|
744
750
|
:param str symbol: unified market symbol of the market orders were made in
|
745
751
|
:param int [since]: the earliest time in ms to fetch orders for
|
746
752
|
:param int [limit]: the maximum number of order structures to retrieve
|
@@ -874,6 +880,9 @@ class kucoin(ccxt.async_support.kucoin):
|
|
874
880
|
#
|
875
881
|
messageHash = 'orders'
|
876
882
|
data = self.safe_value(message, 'data')
|
883
|
+
tradeId = self.safe_string(data, 'tradeId')
|
884
|
+
if tradeId is not None:
|
885
|
+
self.handle_my_trade(client, message)
|
877
886
|
parsed = self.parse_ws_order(data)
|
878
887
|
symbol = self.safe_string(parsed, 'symbol')
|
879
888
|
orderId = self.safe_string(parsed, 'id')
|
@@ -898,6 +907,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
898
907
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
899
908
|
"""
|
900
909
|
watches information on multiple trades made by the user
|
910
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/private-channels/private-order-change
|
901
911
|
:param str symbol: unified market symbol of the market trades were made in
|
902
912
|
:param int [since]: the earliest time in ms to fetch trades for
|
903
913
|
:param int [limit]: the maximum number of trade structures to retrieve
|
@@ -906,7 +916,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
906
916
|
"""
|
907
917
|
await self.load_markets()
|
908
918
|
url = await self.negotiate(True)
|
909
|
-
topic = '/
|
919
|
+
topic = '/spotMarket/tradeOrders'
|
910
920
|
request: dict = {
|
911
921
|
'privateChannel': True,
|
912
922
|
}
|
@@ -921,6 +931,34 @@ class kucoin(ccxt.async_support.kucoin):
|
|
921
931
|
return self.filter_by_symbol_since_limit(trades, symbol, since, limit, True)
|
922
932
|
|
923
933
|
def handle_my_trade(self, client: Client, message):
|
934
|
+
#
|
935
|
+
# {
|
936
|
+
# "type": "message",
|
937
|
+
# "topic": "/spotMarket/tradeOrders",
|
938
|
+
# "subject": "orderChange",
|
939
|
+
# "channelType": "private",
|
940
|
+
# "data": {
|
941
|
+
# "symbol": "KCS-USDT",
|
942
|
+
# "orderType": "limit",
|
943
|
+
# "side": "sell",
|
944
|
+
# "orderId": "5efab07953bdea00089965fa",
|
945
|
+
# "liquidity": "taker",
|
946
|
+
# "type": "match",
|
947
|
+
# "feeType": "takerFee",
|
948
|
+
# "orderTime": 1670329987026,
|
949
|
+
# "size": "0.1",
|
950
|
+
# "filledSize": "0.1",
|
951
|
+
# "price": "0.938",
|
952
|
+
# "matchPrice": "0.96738",
|
953
|
+
# "matchSize": "0.1",
|
954
|
+
# "tradeId": "5efab07a4ee4c7000a82d6d9",
|
955
|
+
# "clientOid": "1593487481000313",
|
956
|
+
# "remainSize": "0",
|
957
|
+
# "status": "match",
|
958
|
+
# "ts": 1670329987311000000
|
959
|
+
# }
|
960
|
+
# }
|
961
|
+
#
|
924
962
|
if self.myTrades is None:
|
925
963
|
limit = self.safe_integer(self.options, 'tradesLimit', 1000)
|
926
964
|
self.myTrades = ArrayCacheBySymbolById(limit)
|
@@ -934,19 +972,26 @@ class kucoin(ccxt.async_support.kucoin):
|
|
934
972
|
|
935
973
|
def parse_ws_trade(self, trade, market=None):
|
936
974
|
#
|
937
|
-
#
|
938
|
-
#
|
939
|
-
#
|
940
|
-
#
|
941
|
-
#
|
942
|
-
#
|
943
|
-
#
|
944
|
-
#
|
945
|
-
#
|
946
|
-
#
|
947
|
-
#
|
948
|
-
#
|
949
|
-
#
|
975
|
+
# {
|
976
|
+
# "symbol": "KCS-USDT",
|
977
|
+
# "orderType": "limit",
|
978
|
+
# "side": "sell",
|
979
|
+
# "orderId": "5efab07953bdea00089965fa",
|
980
|
+
# "liquidity": "taker",
|
981
|
+
# "type": "match",
|
982
|
+
# "feeType": "takerFee",
|
983
|
+
# "orderTime": 1670329987026,
|
984
|
+
# "size": "0.1",
|
985
|
+
# "filledSize": "0.1",
|
986
|
+
# "price": "0.938",
|
987
|
+
# "matchPrice": "0.96738",
|
988
|
+
# "matchSize": "0.1",
|
989
|
+
# "tradeId": "5efab07a4ee4c7000a82d6d9",
|
990
|
+
# "clientOid": "1593487481000313",
|
991
|
+
# "remainSize": "0",
|
992
|
+
# "status": "match",
|
993
|
+
# "ts": 1670329987311000000
|
994
|
+
# }
|
950
995
|
#
|
951
996
|
marketId = self.safe_string(trade, 'symbol')
|
952
997
|
market = self.safe_market(marketId, market, '-')
|
@@ -954,18 +999,10 @@ class kucoin(ccxt.async_support.kucoin):
|
|
954
999
|
type = self.safe_string(trade, 'orderType')
|
955
1000
|
side = self.safe_string(trade, 'side')
|
956
1001
|
tradeId = self.safe_string(trade, 'tradeId')
|
957
|
-
price = self.safe_string(trade, '
|
958
|
-
amount = self.safe_string(trade, '
|
1002
|
+
price = self.safe_string(trade, 'matchPrice')
|
1003
|
+
amount = self.safe_string(trade, 'matchSize')
|
959
1004
|
order = self.safe_string(trade, 'orderId')
|
960
|
-
timestamp = self.safe_integer_product(trade, '
|
961
|
-
feeCurrency = market['quote']
|
962
|
-
feeRate = self.safe_string(trade, 'feeRate')
|
963
|
-
feeCost = self.safe_string(trade, 'fee')
|
964
|
-
fee = {
|
965
|
-
'cost': feeCost,
|
966
|
-
'rate': feeRate,
|
967
|
-
'currency': feeCurrency,
|
968
|
-
}
|
1005
|
+
timestamp = self.safe_integer_product(trade, 'ts', 0.000001)
|
969
1006
|
return self.safe_trade({
|
970
1007
|
'info': trade,
|
971
1008
|
'timestamp': timestamp,
|
@@ -974,17 +1011,18 @@ class kucoin(ccxt.async_support.kucoin):
|
|
974
1011
|
'id': tradeId,
|
975
1012
|
'order': order,
|
976
1013
|
'type': type,
|
977
|
-
'takerOrMaker':
|
1014
|
+
'takerOrMaker': self.safe_string(trade, 'liquidity'),
|
978
1015
|
'side': side,
|
979
1016
|
'price': price,
|
980
1017
|
'amount': amount,
|
981
1018
|
'cost': None,
|
982
|
-
'fee':
|
1019
|
+
'fee': None,
|
983
1020
|
}, market)
|
984
1021
|
|
985
1022
|
async def watch_balance(self, params={}) -> Balances:
|
986
1023
|
"""
|
987
1024
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
1025
|
+
:see: https://www.kucoin.com/docs/websocket/spot-trading/private-channels/account-balance-change
|
988
1026
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
989
1027
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
990
1028
|
"""
|
@@ -1079,7 +1117,6 @@ class kucoin(ccxt.async_support.kucoin):
|
|
1079
1117
|
'trade.l3match': self.handle_trade,
|
1080
1118
|
'trade.candles.update': self.handle_ohlcv,
|
1081
1119
|
'account.balance': self.handle_balance,
|
1082
|
-
'/spot/tradeFills': self.handle_my_trade,
|
1083
1120
|
'orderChange': self.handle_order,
|
1084
1121
|
'stopOrder': self.handle_order,
|
1085
1122
|
}
|
ccxt/pro/okx.py
CHANGED
@@ -1520,7 +1520,7 @@ class okx(ccxt.async_support.okx):
|
|
1520
1520
|
:param str type: 'market' or 'limit'
|
1521
1521
|
:param str side: 'buy' or 'sell'
|
1522
1522
|
:param float amount: how much of currency you want to trade in units of base currency
|
1523
|
-
:param float|None [price]: the price at which the order is to be
|
1523
|
+
:param float|None [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1524
1524
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1525
1525
|
:param boolean params['test']: test order, default False
|
1526
1526
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1586,7 +1586,7 @@ class okx(ccxt.async_support.okx):
|
|
1586
1586
|
:param str type: 'market' or 'limit'
|
1587
1587
|
:param str side: 'buy' or 'sell'
|
1588
1588
|
:param float amount: how much of the currency you want to trade in units of the base currency
|
1589
|
-
:param float|None [price]: the price at which the order is to be
|
1589
|
+
:param float|None [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1590
1590
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1591
1591
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1592
1592
|
"""
|
ccxt/pro/oxfun.py
CHANGED
@@ -715,7 +715,7 @@ class oxfun(ccxt.async_support.oxfun):
|
|
715
715
|
:param str type: 'market', 'limit', 'STOP_LIMIT' or 'STOP_MARKET'
|
716
716
|
:param str side: 'buy' or 'sell'
|
717
717
|
:param float amount: how much of currency you want to trade in units of base currency
|
718
|
-
:param float [price]: the price at which the order is to be
|
718
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
719
719
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
720
720
|
:param int [params.clientOrderId]: a unique id for the order
|
721
721
|
:param int [params.timestamp]: in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected.
|
@@ -754,7 +754,7 @@ class oxfun(ccxt.async_support.oxfun):
|
|
754
754
|
:param str type: 'market' or 'limit'
|
755
755
|
:param str side: 'buy' or 'sell'
|
756
756
|
:param float amount: how much of the currency you want to trade in units of the base currency
|
757
|
-
:param float|None [price]: the price at which the order is to be
|
757
|
+
:param float|None [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
758
758
|
:param int [params.timestamp]: in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected.
|
759
759
|
:param int [params.recvWindow]: in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected. If timestamp is provided without recvWindow, then a default recvWindow of 1000ms is used.
|
760
760
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
ccxt/pro/poloniex.py
CHANGED
@@ -190,7 +190,7 @@ class poloniex(ccxt.async_support.poloniex):
|
|
190
190
|
:param str type: 'market' or 'limit'
|
191
191
|
:param str side: 'buy' or 'sell'
|
192
192
|
:param float amount: how much of currency you want to trade in units of base currency
|
193
|
-
:param float [price]: the price at which the order is to be
|
193
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
194
194
|
:param dict [params]: extra parameters specific to the poloniex api endpoint
|
195
195
|
:param str [params.timeInForce]: GTC(default), IOC, FOK
|
196
196
|
:param str [params.clientOrderId]: Maximum 64-character length.*
|
ccxt/pro/vertex.py
CHANGED
@@ -256,7 +256,7 @@ class vertex(ccxt.async_support.vertex):
|
|
256
256
|
price = self.convertFromX18(self.safe_string(trade, 'price'))
|
257
257
|
amount = self.convertFromX18(self.safe_string_2(trade, 'taker_qty', 'filled_qty'))
|
258
258
|
cost = Precise.string_mul(price, amount)
|
259
|
-
timestamp =
|
259
|
+
timestamp = self.safe_integer_product(trade, 'timestamp', 0.000001)
|
260
260
|
takerOrMaker = None
|
261
261
|
isTaker = self.safe_bool(trade, 'is_taker')
|
262
262
|
if isTaker is not None:
|
@@ -317,7 +317,7 @@ class vertex(ccxt.async_support.vertex):
|
|
317
317
|
# "ask_qty": "1000" # quantity at the lowest ask
|
318
318
|
# }
|
319
319
|
#
|
320
|
-
timestamp =
|
320
|
+
timestamp = self.safe_integer_product(ticker, 'timestamp', 0.000001)
|
321
321
|
return self.safe_ticker({
|
322
322
|
'symbol': self.safe_symbol(None, market),
|
323
323
|
'timestamp': timestamp,
|
ccxt/probit.py
CHANGED
@@ -1132,7 +1132,7 @@ class probit(Exchange, ImplicitAPI):
|
|
1132
1132
|
:param str type: 'market' or 'limit'
|
1133
1133
|
:param str side: 'buy' or 'sell'
|
1134
1134
|
:param float amount: how much you want to trade in units of the base currency
|
1135
|
-
:param float [price]: the price at which the order is to be
|
1135
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1136
1136
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1137
1137
|
:param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
|
1138
1138
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|