ccxt 4.1.82__tar.gz → 4.1.83__tar.gz
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-4.1.82/ccxt.egg-info → ccxt-4.1.83}/PKG-INFO +4 -4
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/__init__.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/exchange.py +2 -2
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bingx.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitget.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/cex.py +27 -12
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/cryptocom.py +43 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/okx.py +62 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/base/exchange.py +2 -2
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bingx.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitget.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/cex.py +27 -12
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/cryptocom.py +43 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/okx.py +62 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.1.82 → ccxt-4.1.83}/package.json +1 -1
- {ccxt-4.1.82 → ccxt-4.1.83}/LICENSE.txt +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/MANIFEST.in +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/README.rst +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/ace.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/alpaca.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/ascendex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/base/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/base/errors.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/base/precise.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/base/types.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bequant.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bigone.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/binance.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/binanceus.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bit2c.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitbank.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitbay.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitbns.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitfinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitflyer.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitforex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bithumb.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitmart.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitmex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitopro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitpanda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitrue.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitso.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitstamp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bittrex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bitvavo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bl3p.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/btcalpha.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/btcbox.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/btcturk.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/bybit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinbase.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinbaseprime.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coincheck.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinlist.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinmate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinone.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinsph.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/coinspot.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/currencycom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/delta.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/deribit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/digifinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/exmo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/flowbtc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/fmfwio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/gate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/gateio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/gemini.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/hitbtc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/hollaex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/htx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/huobi.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/huobijp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/idex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/independentreserve.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/indodax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/kraken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/kucoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/kuna.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/latoken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/lbank.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/luno.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/lykke.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/mercado.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/mexc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/ndax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/novadax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/oceanex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/okcoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/p2b.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/paymium.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/phemex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/poloniex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/binance.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bittrex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/cex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/gate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/htx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/huobipro.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/idex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/luno.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/mexc3.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/okex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/okx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/probit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/pro/woo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/probit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/test_async.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/timex.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/upbit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/wazirx.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/whitebit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/woo.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/yobit.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/zaif.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt/zonda.py +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/setup.cfg +0 -0
- {ccxt-4.1.82 → ccxt-4.1.83}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.1.
|
3
|
+
Version: 4.1.83
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -222,13 +222,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
222
222
|
|
223
223
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
224
224
|
|
225
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
226
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
225
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.83/dist/ccxt.browser.js
|
226
|
+
* unpkg: https://unpkg.com/ccxt@4.1.83/dist/ccxt.browser.js
|
227
227
|
|
228
228
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
229
229
|
|
230
230
|
```HTML
|
231
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
231
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.83/dist/ccxt.browser.js"></script>
|
232
232
|
```
|
233
233
|
|
234
234
|
Creates a global `ccxt` object:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.1.
|
5
|
+
__version__ = '4.1.83'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -1010,7 +1010,7 @@ class Exchange(BaseExchange):
|
|
1010
1010
|
async def fetch_funding_history(self, symbol: str = None, since: Int = None, limit: Int = None, params={}):
|
1011
1011
|
raise NotSupported(self.id + ' fetchFundingHistory() is not supported yet')
|
1012
1012
|
|
1013
|
-
async def close_position(self, symbol: str, side: OrderSide = None,
|
1013
|
+
async def close_position(self, symbol: str, side: OrderSide = None, params={}):
|
1014
1014
|
raise NotSupported(self.id + ' closePositions() is not supported yet')
|
1015
1015
|
|
1016
1016
|
async def close_all_positions(self, params={}):
|
@@ -3172,7 +3172,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
3172
3172
|
:see: https://bitgetlimited.github.io/apidoc/en/mix/#close-all-position
|
3173
3173
|
:param dict [params]: extra parameters specific to the okx api endpoint
|
3174
3174
|
:param str [params.recvWindow]: request valid time window value
|
3175
|
-
:returns [
|
3175
|
+
:returns dict[]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
3176
3176
|
"""
|
3177
3177
|
await self.load_markets()
|
3178
3178
|
defaultRecvWindow = self.safe_integer(self.options, 'recvWindow')
|
@@ -6555,7 +6555,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6555
6555
|
:param dict [params]: extra parameters specific to the okx api endpoint
|
6556
6556
|
:param str [params.subType]: 'linear' or 'inverse'
|
6557
6557
|
:param str [params.settle]: *required and only valid when params.subType == "linear"* 'USDT' or 'USDC'
|
6558
|
-
:returns [
|
6558
|
+
:returns dict[]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
6559
6559
|
"""
|
6560
6560
|
await self.load_markets()
|
6561
6561
|
subType = None
|
@@ -45,6 +45,9 @@ class cex(Exchange, ImplicitAPI):
|
|
45
45
|
'cancelOrder': True,
|
46
46
|
'cancelOrders': False,
|
47
47
|
'createDepositAddress': False,
|
48
|
+
'createMarketBuyOrderWithCost': True,
|
49
|
+
'createMarketOrderWithCost': False,
|
50
|
+
'createMarketSellOrderWithCost': False,
|
48
51
|
'createOrder': True,
|
49
52
|
'createStopLimitOrder': False,
|
50
53
|
'createStopMarketOrder': False,
|
@@ -728,27 +731,39 @@ class cex(Exchange, ImplicitAPI):
|
|
728
731
|
:param float amount: how much of currency you want to trade in units of base currency
|
729
732
|
:param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
730
733
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
734
|
+
:param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
|
731
735
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
732
736
|
"""
|
733
|
-
# for market buy it requires the amount of quote currency to spend
|
734
|
-
if (type == 'market') and (side == 'buy'):
|
735
|
-
if self.options['createMarketBuyOrderRequiresPrice']:
|
736
|
-
if price is None:
|
737
|
-
raise InvalidOrder(self.id + " createOrder() requires the price argument with market buy orders to calculate total order cost(amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = False to supply the cost in the amount argument(the exchange-specific behaviour)")
|
738
|
-
else:
|
739
|
-
amountString = self.number_to_string(amount)
|
740
|
-
priceString = self.number_to_string(price)
|
741
|
-
baseAmount = Precise.string_mul(amountString, priceString)
|
742
|
-
amount = self.parse_number(baseAmount)
|
743
737
|
await self.load_markets()
|
744
738
|
market = self.market(symbol)
|
745
739
|
request = {
|
746
740
|
'pair': market['id'],
|
747
741
|
'type': side,
|
748
|
-
'amount': amount,
|
749
742
|
}
|
743
|
+
# for market buy it requires the amount of quote currency to spend
|
744
|
+
if (type == 'market') and (side == 'buy'):
|
745
|
+
quoteAmount = None
|
746
|
+
createMarketBuyOrderRequiresPrice = True
|
747
|
+
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
748
|
+
cost = self.safe_string(params, 'cost')
|
749
|
+
params = self.omit(params, 'cost')
|
750
|
+
if cost is not None:
|
751
|
+
quoteAmount = self.cost_to_precision(symbol, cost)
|
752
|
+
elif createMarketBuyOrderRequiresPrice:
|
753
|
+
if price is None:
|
754
|
+
raise InvalidOrder(self.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to False and pass the cost to spend in the amount argument')
|
755
|
+
else:
|
756
|
+
amountString = self.number_to_string(amount)
|
757
|
+
priceString = self.number_to_string(price)
|
758
|
+
costRequest = Precise.string_mul(amountString, priceString)
|
759
|
+
quoteAmount = self.cost_to_precision(symbol, costRequest)
|
760
|
+
else:
|
761
|
+
quoteAmount = self.cost_to_precision(symbol, amount)
|
762
|
+
request['amount'] = quoteAmount
|
763
|
+
else:
|
764
|
+
request['amount'] = self.amount_to_precision(symbol, amount)
|
750
765
|
if type == 'limit':
|
751
|
-
request['price'] = price
|
766
|
+
request['price'] = self.number_to_string(price)
|
752
767
|
else:
|
753
768
|
request['order_type'] = type
|
754
769
|
response = await self.privatePostPlaceOrderPair(self.extend(request, params))
|
@@ -48,6 +48,8 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
48
48
|
'cancelAllOrders': True,
|
49
49
|
'cancelOrder': True,
|
50
50
|
'cancelOrders': True,
|
51
|
+
'closeAllPositions': False,
|
52
|
+
'closePosition': True,
|
51
53
|
'createOrder': True,
|
52
54
|
'createOrders': True,
|
53
55
|
'fetchAccounts': True,
|
@@ -2683,6 +2685,47 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
2683
2685
|
returnString += str(value)
|
2684
2686
|
return returnString
|
2685
2687
|
|
2688
|
+
async def close_position(self, symbol: str, side: OrderSide = None, params={}) -> Order:
|
2689
|
+
"""
|
2690
|
+
closes open positions for a market
|
2691
|
+
:see: https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-close-position
|
2692
|
+
:param str symbol: Unified CCXT market symbol
|
2693
|
+
:param str [marginMode]: not used by cryptocom.closePositions
|
2694
|
+
:param str [side]: not used by cryptocom.closePositions
|
2695
|
+
:param dict [params]: extra parameters specific to the okx api endpoint
|
2696
|
+
*
|
2697
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
2698
|
+
:param str [params.type]: LIMIT or MARKET
|
2699
|
+
:param number [params.price]: for limit orders only
|
2700
|
+
:returns dict[]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
2701
|
+
"""
|
2702
|
+
await self.load_markets()
|
2703
|
+
market = self.market(symbol)
|
2704
|
+
request = {
|
2705
|
+
'instrument_name': market['id'],
|
2706
|
+
'type': 'MARKET',
|
2707
|
+
}
|
2708
|
+
type = self.safe_string_upper(params, 'type')
|
2709
|
+
price = self.safe_string(params, 'price')
|
2710
|
+
if type is not None:
|
2711
|
+
request['type'] = type
|
2712
|
+
if price is not None:
|
2713
|
+
request['price'] = self.price_to_precision(market['symbol'], price)
|
2714
|
+
response = await self.v1PrivatePostPrivateClosePosition(self.extend(request, params))
|
2715
|
+
#
|
2716
|
+
# {
|
2717
|
+
# "id" : 1700830813298,
|
2718
|
+
# "method" : "private/close-position",
|
2719
|
+
# "code" : 0,
|
2720
|
+
# "result" : {
|
2721
|
+
# "client_oid" : "179a909d-5614-655b-0d0e-9e85c9a25c85",
|
2722
|
+
# "order_id" : "6142909897021751347"
|
2723
|
+
# }
|
2724
|
+
# }
|
2725
|
+
#
|
2726
|
+
result = self.safe_value(response, 'result')
|
2727
|
+
return self.parse_order(result, market)
|
2728
|
+
|
2686
2729
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
2687
2730
|
type = self.safe_string(api, 0)
|
2688
2731
|
access = self.safe_string(api, 1)
|
@@ -57,6 +57,8 @@ class okx(Exchange, ImplicitAPI):
|
|
57
57
|
'cancelAllOrders': False,
|
58
58
|
'cancelOrder': True,
|
59
59
|
'cancelOrders': True,
|
60
|
+
'closeAllPositions': False,
|
61
|
+
'closePosition': True,
|
60
62
|
'createDepositAddress': False,
|
61
63
|
'createMarketBuyOrderWithCost': True,
|
62
64
|
'createMarketSellOrderWithCost': True,
|
@@ -6692,6 +6694,66 @@ class okx(Exchange, ImplicitAPI):
|
|
6692
6694
|
'info': greeks,
|
6693
6695
|
}
|
6694
6696
|
|
6697
|
+
async def close_position(self, symbol: str, side: OrderSide = None, params={}) -> Order:
|
6698
|
+
"""
|
6699
|
+
closes open positions for a market
|
6700
|
+
:see: https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-close-positions
|
6701
|
+
:param str symbol: Unified CCXT market symbol
|
6702
|
+
:param str [side]: 'buy' or 'sell', leave in net mode
|
6703
|
+
:param dict [params]: extra parameters specific to the okx api endpoint
|
6704
|
+
:param str [params.clientOrderId]: a unique identifier for the order
|
6705
|
+
:param str [params.marginMode]: 'cross' or 'isolated', default is 'cross
|
6706
|
+
:param str [params.code]: *required in the case of closing cross MARGIN position for Single-currency margin* margin currency
|
6707
|
+
*
|
6708
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
6709
|
+
:param boolean [params.autoCxl]: whether any pending orders for closing out needs to be automatically canceled when close position via a market order. False or True, the default is False
|
6710
|
+
:param str [params.tag]: order tag a combination of case-sensitive alphanumerics, all numbers, or all letters of up to 16 characters
|
6711
|
+
:returns [dict]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
6712
|
+
"""
|
6713
|
+
await self.load_markets()
|
6714
|
+
market = self.market(symbol)
|
6715
|
+
clientOrderId = self.safe_string(params, 'clientOrderId')
|
6716
|
+
code = self.safe_string(params, 'code')
|
6717
|
+
marginMode = None
|
6718
|
+
marginMode, params = self.handle_margin_mode_and_params('closePosition', params, 'cross')
|
6719
|
+
request = {
|
6720
|
+
'instId': market['id'],
|
6721
|
+
'mgnMode': marginMode,
|
6722
|
+
}
|
6723
|
+
if side is not None:
|
6724
|
+
if (side == 'buy'):
|
6725
|
+
request['posSide'] = 'long'
|
6726
|
+
elif side == 'sell':
|
6727
|
+
request['posSide'] = 'short'
|
6728
|
+
else:
|
6729
|
+
request['posSide'] = side
|
6730
|
+
if clientOrderId is not None:
|
6731
|
+
request['clOrdId'] = clientOrderId
|
6732
|
+
if code is not None:
|
6733
|
+
currency = self.currency(code)
|
6734
|
+
request['ccy'] = currency['id']
|
6735
|
+
response = await self.privatePostTradeClosePosition(self.extend(request, params))
|
6736
|
+
#
|
6737
|
+
# {
|
6738
|
+
# "code": "1",
|
6739
|
+
# "data": [
|
6740
|
+
# {
|
6741
|
+
# "clOrdId":"e847386590ce4dBCe903bbc394dc88bf",
|
6742
|
+
# "ordId":"",
|
6743
|
+
# "sCode":"51000",
|
6744
|
+
# "sMsg":"Parameter posSide error ",
|
6745
|
+
# "tag":"e847386590ce4dBC"
|
6746
|
+
# }
|
6747
|
+
# ],
|
6748
|
+
# "inTime": "1701877077101064",
|
6749
|
+
# "msg": "All operations failed",
|
6750
|
+
# "outTime": "1701877077102579"
|
6751
|
+
# }
|
6752
|
+
#
|
6753
|
+
data = self.safe_value(response, 'data')
|
6754
|
+
order = self.safe_value(data, 0)
|
6755
|
+
return self.parse_order(order, market)
|
6756
|
+
|
6695
6757
|
def handle_errors(self, httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
6696
6758
|
if not response:
|
6697
6759
|
return None # fallback to default error handler
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.1.
|
7
|
+
__version__ = '4.1.83'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -3847,7 +3847,7 @@ class Exchange(object):
|
|
3847
3847
|
def fetch_funding_history(self, symbol: str = None, since: Int = None, limit: Int = None, params={}):
|
3848
3848
|
raise NotSupported(self.id + ' fetchFundingHistory() is not supported yet')
|
3849
3849
|
|
3850
|
-
def close_position(self, symbol: str, side: OrderSide = None,
|
3850
|
+
def close_position(self, symbol: str, side: OrderSide = None, params={}):
|
3851
3851
|
raise NotSupported(self.id + ' closePositions() is not supported yet')
|
3852
3852
|
|
3853
3853
|
def close_all_positions(self, params={}):
|
@@ -3171,7 +3171,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
3171
3171
|
:see: https://bitgetlimited.github.io/apidoc/en/mix/#close-all-position
|
3172
3172
|
:param dict [params]: extra parameters specific to the okx api endpoint
|
3173
3173
|
:param str [params.recvWindow]: request valid time window value
|
3174
|
-
:returns [
|
3174
|
+
:returns dict[]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
3175
3175
|
"""
|
3176
3176
|
self.load_markets()
|
3177
3177
|
defaultRecvWindow = self.safe_integer(self.options, 'recvWindow')
|
@@ -6554,7 +6554,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
6554
6554
|
:param dict [params]: extra parameters specific to the okx api endpoint
|
6555
6555
|
:param str [params.subType]: 'linear' or 'inverse'
|
6556
6556
|
:param str [params.settle]: *required and only valid when params.subType == "linear"* 'USDT' or 'USDC'
|
6557
|
-
:returns [
|
6557
|
+
:returns dict[]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
6558
6558
|
"""
|
6559
6559
|
self.load_markets()
|
6560
6560
|
subType = None
|
@@ -45,6 +45,9 @@ class cex(Exchange, ImplicitAPI):
|
|
45
45
|
'cancelOrder': True,
|
46
46
|
'cancelOrders': False,
|
47
47
|
'createDepositAddress': False,
|
48
|
+
'createMarketBuyOrderWithCost': True,
|
49
|
+
'createMarketOrderWithCost': False,
|
50
|
+
'createMarketSellOrderWithCost': False,
|
48
51
|
'createOrder': True,
|
49
52
|
'createStopLimitOrder': False,
|
50
53
|
'createStopMarketOrder': False,
|
@@ -728,27 +731,39 @@ class cex(Exchange, ImplicitAPI):
|
|
728
731
|
:param float amount: how much of currency you want to trade in units of base currency
|
729
732
|
:param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
730
733
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
734
|
+
:param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
|
731
735
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
732
736
|
"""
|
733
|
-
# for market buy it requires the amount of quote currency to spend
|
734
|
-
if (type == 'market') and (side == 'buy'):
|
735
|
-
if self.options['createMarketBuyOrderRequiresPrice']:
|
736
|
-
if price is None:
|
737
|
-
raise InvalidOrder(self.id + " createOrder() requires the price argument with market buy orders to calculate total order cost(amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = False to supply the cost in the amount argument(the exchange-specific behaviour)")
|
738
|
-
else:
|
739
|
-
amountString = self.number_to_string(amount)
|
740
|
-
priceString = self.number_to_string(price)
|
741
|
-
baseAmount = Precise.string_mul(amountString, priceString)
|
742
|
-
amount = self.parse_number(baseAmount)
|
743
737
|
self.load_markets()
|
744
738
|
market = self.market(symbol)
|
745
739
|
request = {
|
746
740
|
'pair': market['id'],
|
747
741
|
'type': side,
|
748
|
-
'amount': amount,
|
749
742
|
}
|
743
|
+
# for market buy it requires the amount of quote currency to spend
|
744
|
+
if (type == 'market') and (side == 'buy'):
|
745
|
+
quoteAmount = None
|
746
|
+
createMarketBuyOrderRequiresPrice = True
|
747
|
+
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
748
|
+
cost = self.safe_string(params, 'cost')
|
749
|
+
params = self.omit(params, 'cost')
|
750
|
+
if cost is not None:
|
751
|
+
quoteAmount = self.cost_to_precision(symbol, cost)
|
752
|
+
elif createMarketBuyOrderRequiresPrice:
|
753
|
+
if price is None:
|
754
|
+
raise InvalidOrder(self.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to False and pass the cost to spend in the amount argument')
|
755
|
+
else:
|
756
|
+
amountString = self.number_to_string(amount)
|
757
|
+
priceString = self.number_to_string(price)
|
758
|
+
costRequest = Precise.string_mul(amountString, priceString)
|
759
|
+
quoteAmount = self.cost_to_precision(symbol, costRequest)
|
760
|
+
else:
|
761
|
+
quoteAmount = self.cost_to_precision(symbol, amount)
|
762
|
+
request['amount'] = quoteAmount
|
763
|
+
else:
|
764
|
+
request['amount'] = self.amount_to_precision(symbol, amount)
|
750
765
|
if type == 'limit':
|
751
|
-
request['price'] = price
|
766
|
+
request['price'] = self.number_to_string(price)
|
752
767
|
else:
|
753
768
|
request['order_type'] = type
|
754
769
|
response = self.privatePostPlaceOrderPair(self.extend(request, params))
|
@@ -48,6 +48,8 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
48
48
|
'cancelAllOrders': True,
|
49
49
|
'cancelOrder': True,
|
50
50
|
'cancelOrders': True,
|
51
|
+
'closeAllPositions': False,
|
52
|
+
'closePosition': True,
|
51
53
|
'createOrder': True,
|
52
54
|
'createOrders': True,
|
53
55
|
'fetchAccounts': True,
|
@@ -2683,6 +2685,47 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
2683
2685
|
returnString += str(value)
|
2684
2686
|
return returnString
|
2685
2687
|
|
2688
|
+
def close_position(self, symbol: str, side: OrderSide = None, params={}) -> Order:
|
2689
|
+
"""
|
2690
|
+
closes open positions for a market
|
2691
|
+
:see: https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-close-position
|
2692
|
+
:param str symbol: Unified CCXT market symbol
|
2693
|
+
:param str [marginMode]: not used by cryptocom.closePositions
|
2694
|
+
:param str [side]: not used by cryptocom.closePositions
|
2695
|
+
:param dict [params]: extra parameters specific to the okx api endpoint
|
2696
|
+
*
|
2697
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
2698
|
+
:param str [params.type]: LIMIT or MARKET
|
2699
|
+
:param number [params.price]: for limit orders only
|
2700
|
+
:returns dict[]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
2701
|
+
"""
|
2702
|
+
self.load_markets()
|
2703
|
+
market = self.market(symbol)
|
2704
|
+
request = {
|
2705
|
+
'instrument_name': market['id'],
|
2706
|
+
'type': 'MARKET',
|
2707
|
+
}
|
2708
|
+
type = self.safe_string_upper(params, 'type')
|
2709
|
+
price = self.safe_string(params, 'price')
|
2710
|
+
if type is not None:
|
2711
|
+
request['type'] = type
|
2712
|
+
if price is not None:
|
2713
|
+
request['price'] = self.price_to_precision(market['symbol'], price)
|
2714
|
+
response = self.v1PrivatePostPrivateClosePosition(self.extend(request, params))
|
2715
|
+
#
|
2716
|
+
# {
|
2717
|
+
# "id" : 1700830813298,
|
2718
|
+
# "method" : "private/close-position",
|
2719
|
+
# "code" : 0,
|
2720
|
+
# "result" : {
|
2721
|
+
# "client_oid" : "179a909d-5614-655b-0d0e-9e85c9a25c85",
|
2722
|
+
# "order_id" : "6142909897021751347"
|
2723
|
+
# }
|
2724
|
+
# }
|
2725
|
+
#
|
2726
|
+
result = self.safe_value(response, 'result')
|
2727
|
+
return self.parse_order(result, market)
|
2728
|
+
|
2686
2729
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
2687
2730
|
type = self.safe_string(api, 0)
|
2688
2731
|
access = self.safe_string(api, 1)
|
@@ -56,6 +56,8 @@ class okx(Exchange, ImplicitAPI):
|
|
56
56
|
'cancelAllOrders': False,
|
57
57
|
'cancelOrder': True,
|
58
58
|
'cancelOrders': True,
|
59
|
+
'closeAllPositions': False,
|
60
|
+
'closePosition': True,
|
59
61
|
'createDepositAddress': False,
|
60
62
|
'createMarketBuyOrderWithCost': True,
|
61
63
|
'createMarketSellOrderWithCost': True,
|
@@ -6691,6 +6693,66 @@ class okx(Exchange, ImplicitAPI):
|
|
6691
6693
|
'info': greeks,
|
6692
6694
|
}
|
6693
6695
|
|
6696
|
+
def close_position(self, symbol: str, side: OrderSide = None, params={}) -> Order:
|
6697
|
+
"""
|
6698
|
+
closes open positions for a market
|
6699
|
+
:see: https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-close-positions
|
6700
|
+
:param str symbol: Unified CCXT market symbol
|
6701
|
+
:param str [side]: 'buy' or 'sell', leave in net mode
|
6702
|
+
:param dict [params]: extra parameters specific to the okx api endpoint
|
6703
|
+
:param str [params.clientOrderId]: a unique identifier for the order
|
6704
|
+
:param str [params.marginMode]: 'cross' or 'isolated', default is 'cross
|
6705
|
+
:param str [params.code]: *required in the case of closing cross MARGIN position for Single-currency margin* margin currency
|
6706
|
+
*
|
6707
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
6708
|
+
:param boolean [params.autoCxl]: whether any pending orders for closing out needs to be automatically canceled when close position via a market order. False or True, the default is False
|
6709
|
+
:param str [params.tag]: order tag a combination of case-sensitive alphanumerics, all numbers, or all letters of up to 16 characters
|
6710
|
+
:returns [dict]: `A list of position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
6711
|
+
"""
|
6712
|
+
self.load_markets()
|
6713
|
+
market = self.market(symbol)
|
6714
|
+
clientOrderId = self.safe_string(params, 'clientOrderId')
|
6715
|
+
code = self.safe_string(params, 'code')
|
6716
|
+
marginMode = None
|
6717
|
+
marginMode, params = self.handle_margin_mode_and_params('closePosition', params, 'cross')
|
6718
|
+
request = {
|
6719
|
+
'instId': market['id'],
|
6720
|
+
'mgnMode': marginMode,
|
6721
|
+
}
|
6722
|
+
if side is not None:
|
6723
|
+
if (side == 'buy'):
|
6724
|
+
request['posSide'] = 'long'
|
6725
|
+
elif side == 'sell':
|
6726
|
+
request['posSide'] = 'short'
|
6727
|
+
else:
|
6728
|
+
request['posSide'] = side
|
6729
|
+
if clientOrderId is not None:
|
6730
|
+
request['clOrdId'] = clientOrderId
|
6731
|
+
if code is not None:
|
6732
|
+
currency = self.currency(code)
|
6733
|
+
request['ccy'] = currency['id']
|
6734
|
+
response = self.privatePostTradeClosePosition(self.extend(request, params))
|
6735
|
+
#
|
6736
|
+
# {
|
6737
|
+
# "code": "1",
|
6738
|
+
# "data": [
|
6739
|
+
# {
|
6740
|
+
# "clOrdId":"e847386590ce4dBCe903bbc394dc88bf",
|
6741
|
+
# "ordId":"",
|
6742
|
+
# "sCode":"51000",
|
6743
|
+
# "sMsg":"Parameter posSide error ",
|
6744
|
+
# "tag":"e847386590ce4dBC"
|
6745
|
+
# }
|
6746
|
+
# ],
|
6747
|
+
# "inTime": "1701877077101064",
|
6748
|
+
# "msg": "All operations failed",
|
6749
|
+
# "outTime": "1701877077102579"
|
6750
|
+
# }
|
6751
|
+
#
|
6752
|
+
data = self.safe_value(response, 'data')
|
6753
|
+
order = self.safe_value(data, 0)
|
6754
|
+
return self.parse_order(order, market)
|
6755
|
+
|
6694
6756
|
def handle_errors(self, httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
6695
6757
|
if not response:
|
6696
6758
|
return None # fallback to default error handler
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.1.
|
3
|
+
Version: 4.1.83
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -222,13 +222,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
222
222
|
|
223
223
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
224
224
|
|
225
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
226
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
225
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.83/dist/ccxt.browser.js
|
226
|
+
* unpkg: https://unpkg.com/ccxt@4.1.83/dist/ccxt.browser.js
|
227
227
|
|
228
228
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
229
229
|
|
230
230
|
```HTML
|
231
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
231
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.83/dist/ccxt.browser.js"></script>
|
232
232
|
```
|
233
233
|
|
234
234
|
Creates a global `ccxt` object:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|