ccxt 4.2.81__py2.py3-none-any.whl → 4.2.83__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/bitstamp.py +1 -1
- ccxt/ace.py +1 -1
- ccxt/alpaca.py +1 -1
- ccxt/ascendex.py +1 -1
- 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 +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bigone.py +1 -1
- ccxt/async_support/binance.py +1 -1
- ccxt/async_support/bingx.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 -1
- ccxt/async_support/bithumb.py +2 -1
- ccxt/async_support/bitmart.py +1 -1
- ccxt/async_support/bitmex.py +1 -1
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +2 -2
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitstamp.py +43 -16
- ccxt/async_support/bitteam.py +1 -1
- ccxt/async_support/bitvavo.py +1 -1
- ccxt/async_support/blockchaincom.py +1 -1
- ccxt/async_support/blofin.py +1 -1
- ccxt/async_support/btcalpha.py +1 -1
- ccxt/async_support/btcmarkets.py +1 -1
- ccxt/async_support/btcturk.py +1 -1
- ccxt/async_support/bybit.py +1 -1
- ccxt/async_support/cex.py +1 -1
- ccxt/async_support/coinbase.py +1 -1
- ccxt/async_support/coinbaseinternational.py +1 -1
- ccxt/async_support/coinbasepro.py +1 -1
- ccxt/async_support/coinex.py +1 -1
- ccxt/async_support/coinlist.py +1 -1
- 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/cryptocom.py +1 -1
- ccxt/async_support/currencycom.py +1 -1
- ccxt/async_support/delta.py +147 -2
- ccxt/async_support/deribit.py +18 -3
- ccxt/async_support/digifinex.py +1 -1
- ccxt/async_support/exmo.py +1 -1
- ccxt/async_support/gate.py +1 -1
- ccxt/async_support/gemini.py +2 -1
- ccxt/async_support/hitbtc.py +1 -1
- ccxt/async_support/hollaex.py +1 -1
- ccxt/async_support/htx.py +1 -1
- ccxt/async_support/huobijp.py +1 -1
- ccxt/async_support/hyperliquid.py +10 -9
- 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 +1 -1
- ccxt/async_support/krakenfutures.py +1 -1
- ccxt/async_support/kucoin.py +1 -1
- ccxt/async_support/kucoinfutures.py +147 -10
- 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 +137 -2
- ccxt/async_support/onetrading.py +1 -1
- ccxt/async_support/p2b.py +1 -1
- ccxt/async_support/phemex.py +1 -1
- ccxt/async_support/poloniex.py +1 -1
- 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 +2 -1
- ccxt/async_support/upbit.py +1 -1
- ccxt/async_support/wavesexchange.py +1 -1
- ccxt/async_support/wazirx.py +1 -1
- ccxt/async_support/whitebit.py +1 -1
- ccxt/async_support/woo.py +1 -1
- 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/bigone.py +1 -1
- ccxt/binance.py +1 -1
- ccxt/bingx.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 -1
- ccxt/bithumb.py +2 -1
- ccxt/bitmart.py +1 -1
- ccxt/bitmex.py +1 -1
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +2 -2
- ccxt/bitso.py +1 -1
- ccxt/bitstamp.py +43 -16
- ccxt/bitteam.py +1 -1
- ccxt/bitvavo.py +1 -1
- ccxt/blockchaincom.py +1 -1
- ccxt/blofin.py +1 -1
- ccxt/btcalpha.py +1 -1
- ccxt/btcmarkets.py +1 -1
- ccxt/btcturk.py +1 -1
- ccxt/bybit.py +1 -1
- ccxt/cex.py +1 -1
- ccxt/coinbase.py +1 -1
- ccxt/coinbaseinternational.py +1 -1
- ccxt/coinbasepro.py +1 -1
- ccxt/coinex.py +1 -1
- ccxt/coinlist.py +1 -1
- ccxt/coinmate.py +1 -1
- ccxt/coinmetro.py +1 -1
- ccxt/coinone.py +1 -1
- ccxt/coinsph.py +1 -1
- ccxt/cryptocom.py +1 -1
- ccxt/currencycom.py +1 -1
- ccxt/delta.py +147 -2
- ccxt/deribit.py +18 -3
- ccxt/digifinex.py +1 -1
- ccxt/exmo.py +1 -1
- ccxt/gate.py +1 -1
- ccxt/gemini.py +2 -1
- ccxt/hitbtc.py +1 -1
- ccxt/hollaex.py +1 -1
- ccxt/htx.py +1 -1
- ccxt/huobijp.py +1 -1
- ccxt/hyperliquid.py +10 -9
- ccxt/idex.py +1 -1
- ccxt/independentreserve.py +1 -1
- ccxt/indodax.py +1 -1
- ccxt/kraken.py +1 -1
- ccxt/krakenfutures.py +1 -1
- ccxt/kucoin.py +1 -1
- ccxt/kucoinfutures.py +147 -10
- 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 +137 -2
- ccxt/onetrading.py +1 -1
- ccxt/p2b.py +1 -1
- ccxt/phemex.py +1 -1
- ccxt/poloniex.py +1 -1
- ccxt/poloniexfutures.py +1 -1
- ccxt/pro/__init__.py +3 -1
- ccxt/pro/bithumb.py +368 -0
- ccxt/pro/bitmart.py +1 -1
- ccxt/pro/bybit.py +1 -1
- ccxt/pro/cex.py +15 -5
- ccxt/pro/okx.py +2 -1
- ccxt/pro/p2b.py +14 -4
- ccxt/pro/woo.py +1 -1
- ccxt/probit.py +1 -1
- ccxt/timex.py +1 -1
- ccxt/tokocrypto.py +1 -1
- ccxt/tradeogre.py +2 -1
- ccxt/upbit.py +1 -1
- ccxt/wavesexchange.py +1 -1
- ccxt/wazirx.py +1 -1
- ccxt/whitebit.py +1 -1
- ccxt/woo.py +1 -1
- ccxt/yobit.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +1 -1
- {ccxt-4.2.81.dist-info → ccxt-4.2.83.dist-info}/METADATA +5 -5
- {ccxt-4.2.81.dist-info → ccxt-4.2.83.dist-info}/RECORD +189 -188
- {ccxt-4.2.81.dist-info → ccxt-4.2.83.dist-info}/WHEEL +0 -0
- {ccxt-4.2.81.dist-info → ccxt-4.2.83.dist-info}/top_level.txt +0 -0
ccxt/kucoinfutures.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
from ccxt.kucoin import kucoin
|
7
7
|
from ccxt.abstract.kucoinfutures import ImplicitAPI
|
8
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Trade, Transaction, TransferEntry
|
8
|
+
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
9
9
|
from typing import List
|
10
10
|
from ccxt.base.errors import PermissionDenied
|
11
11
|
from ccxt.base.errors import AccountSuspended
|
@@ -95,7 +95,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
95
95
|
'fetchPremiumIndexOHLCV': False,
|
96
96
|
'fetchStatus': True,
|
97
97
|
'fetchTicker': True,
|
98
|
-
'fetchTickers':
|
98
|
+
'fetchTickers': True,
|
99
99
|
'fetchTime': True,
|
100
100
|
'fetchTrades': True,
|
101
101
|
'fetchTransactionFee': False,
|
@@ -368,7 +368,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
368
368
|
'info': response,
|
369
369
|
}
|
370
370
|
|
371
|
-
def fetch_markets(self, params={}):
|
371
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
372
372
|
"""
|
373
373
|
retrieves data on all markets for kucoinfutures
|
374
374
|
:see: https://www.kucoin.com/docs/rest/futures-trading/market-data/get-symbols-list
|
@@ -735,6 +735,83 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
735
735
|
#
|
736
736
|
return self.parse_ticker(response['data'], market)
|
737
737
|
|
738
|
+
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
739
|
+
"""
|
740
|
+
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
741
|
+
:see: https://www.kucoin.com/docs/rest/futures-trading/market-data/get-symbols-list
|
742
|
+
:param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
743
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
744
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
745
|
+
"""
|
746
|
+
self.load_markets()
|
747
|
+
symbols = self.market_symbols(symbols)
|
748
|
+
response = self.futuresPublicGetContractsActive(params)
|
749
|
+
#
|
750
|
+
# {
|
751
|
+
# "code": "200000",
|
752
|
+
# "data": {
|
753
|
+
# "symbol": "ETHUSDTM",
|
754
|
+
# "rootSymbol": "USDT",
|
755
|
+
# "type": "FFWCSX",
|
756
|
+
# "firstOpenDate": 1591086000000,
|
757
|
+
# "expireDate": null,
|
758
|
+
# "settleDate": null,
|
759
|
+
# "baseCurrency": "ETH",
|
760
|
+
# "quoteCurrency": "USDT",
|
761
|
+
# "settleCurrency": "USDT",
|
762
|
+
# "maxOrderQty": 1000000,
|
763
|
+
# "maxPrice": 1000000.0000000000,
|
764
|
+
# "lotSize": 1,
|
765
|
+
# "tickSize": 0.05,
|
766
|
+
# "indexPriceTickSize": 0.01,
|
767
|
+
# "multiplier": 0.01,
|
768
|
+
# "initialMargin": 0.01,
|
769
|
+
# "maintainMargin": 0.005,
|
770
|
+
# "maxRiskLimit": 1000000,
|
771
|
+
# "minRiskLimit": 1000000,
|
772
|
+
# "riskStep": 500000,
|
773
|
+
# "makerFeeRate": 0.00020,
|
774
|
+
# "takerFeeRate": 0.00060,
|
775
|
+
# "takerFixFee": 0.0000000000,
|
776
|
+
# "makerFixFee": 0.0000000000,
|
777
|
+
# "settlementFee": null,
|
778
|
+
# "isDeleverage": True,
|
779
|
+
# "isQuanto": True,
|
780
|
+
# "isInverse": False,
|
781
|
+
# "markMethod": "FairPrice",
|
782
|
+
# "fairMethod": "FundingRate",
|
783
|
+
# "fundingBaseSymbol": ".ETHINT8H",
|
784
|
+
# "fundingQuoteSymbol": ".USDTINT8H",
|
785
|
+
# "fundingRateSymbol": ".ETHUSDTMFPI8H",
|
786
|
+
# "indexSymbol": ".KETHUSDT",
|
787
|
+
# "settlementSymbol": "",
|
788
|
+
# "status": "Open",
|
789
|
+
# "fundingFeeRate": 0.000535,
|
790
|
+
# "predictedFundingFeeRate": 0.002197,
|
791
|
+
# "openInterest": "8724443",
|
792
|
+
# "turnoverOf24h": 341156641.03354263,
|
793
|
+
# "volumeOf24h": 74833.54000000,
|
794
|
+
# "markPrice": 4534.07,
|
795
|
+
# "indexPrice":4531.92,
|
796
|
+
# "lastTradePrice": 4545.4500000000,
|
797
|
+
# "nextFundingRateTime": 25481884,
|
798
|
+
# "maxLeverage": 100,
|
799
|
+
# "sourceExchanges": ["huobi", "Okex", "Binance", "Kucoin", "Poloniex", "Hitbtc"],
|
800
|
+
# "premiumsSymbol1M": ".ETHUSDTMPI",
|
801
|
+
# "premiumsSymbol8H": ".ETHUSDTMPI8H",
|
802
|
+
# "fundingBaseSymbol1M": ".ETHINT",
|
803
|
+
# "fundingQuoteSymbol1M": ".USDTINT",
|
804
|
+
# "lowPrice": 4456.90,
|
805
|
+
# "highPrice": 4674.25,
|
806
|
+
# "priceChgPct": 0.0046,
|
807
|
+
# "priceChg": 21.15
|
808
|
+
# }
|
809
|
+
# }
|
810
|
+
#
|
811
|
+
data = self.safe_list(response, 'data', [])
|
812
|
+
tickers = self.parse_tickers(data, symbols)
|
813
|
+
return self.filter_by_array_tickers(tickers, 'symbol', symbols)
|
814
|
+
|
738
815
|
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
739
816
|
#
|
740
817
|
# {
|
@@ -754,16 +831,76 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
754
831
|
# }
|
755
832
|
# }
|
756
833
|
#
|
757
|
-
|
834
|
+
# from fetchTickers
|
835
|
+
#
|
836
|
+
# {
|
837
|
+
# symbol: "XBTUSDTM",
|
838
|
+
# rootSymbol: "USDT",
|
839
|
+
# type: "FFWCSX",
|
840
|
+
# firstOpenDate: 1585555200000,
|
841
|
+
# expireDate: null,
|
842
|
+
# settleDate: null,
|
843
|
+
# baseCurrency: "XBT",
|
844
|
+
# quoteCurrency: "USDT",
|
845
|
+
# settleCurrency: "USDT",
|
846
|
+
# maxOrderQty: 1000000,
|
847
|
+
# maxPrice: 1000000,
|
848
|
+
# lotSize: 1,
|
849
|
+
# tickSize: 0.1,
|
850
|
+
# indexPriceTickSize: 0.01,
|
851
|
+
# multiplier: 0.001,
|
852
|
+
# initialMargin: 0.008,
|
853
|
+
# maintainMargin: 0.004,
|
854
|
+
# maxRiskLimit: 100000,
|
855
|
+
# minRiskLimit: 100000,
|
856
|
+
# riskStep: 50000,
|
857
|
+
# makerFeeRate: 0.0002,
|
858
|
+
# takerFeeRate: 0.0006,
|
859
|
+
# takerFixFee: 0,
|
860
|
+
# makerFixFee: 0,
|
861
|
+
# settlementFee: null,
|
862
|
+
# isDeleverage: True,
|
863
|
+
# isQuanto: True,
|
864
|
+
# isInverse: False,
|
865
|
+
# markMethod: "FairPrice",
|
866
|
+
# fairMethod: "FundingRate",
|
867
|
+
# fundingBaseSymbol: ".XBTINT8H",
|
868
|
+
# fundingQuoteSymbol: ".USDTINT8H",
|
869
|
+
# fundingRateSymbol: ".XBTUSDTMFPI8H",
|
870
|
+
# indexSymbol: ".KXBTUSDT",
|
871
|
+
# settlementSymbol: "",
|
872
|
+
# status: "Open",
|
873
|
+
# fundingFeeRate: 0.000297,
|
874
|
+
# predictedFundingFeeRate: 0.000327,
|
875
|
+
# fundingRateGranularity: 28800000,
|
876
|
+
# openInterest: "8033200",
|
877
|
+
# turnoverOf24h: 659795309.2524643,
|
878
|
+
# volumeOf24h: 9998.54,
|
879
|
+
# markPrice: 67193.51,
|
880
|
+
# indexPrice: 67184.81,
|
881
|
+
# lastTradePrice: 67191.8,
|
882
|
+
# nextFundingRateTime: 20022985,
|
883
|
+
# maxLeverage: 125,
|
884
|
+
# premiumsSymbol1M: ".XBTUSDTMPI",
|
885
|
+
# premiumsSymbol8H: ".XBTUSDTMPI8H",
|
886
|
+
# fundingBaseSymbol1M: ".XBTINT",
|
887
|
+
# fundingQuoteSymbol1M: ".USDTINT",
|
888
|
+
# lowPrice: 64041.6,
|
889
|
+
# highPrice: 67737.3,
|
890
|
+
# priceChgPct: 0.0447,
|
891
|
+
# priceChg: 2878.7
|
892
|
+
# }
|
893
|
+
#
|
758
894
|
marketId = self.safe_string(ticker, 'symbol')
|
759
895
|
market = self.safe_market(marketId, market, '-')
|
896
|
+
last = self.safe_string_2(ticker, 'price', 'lastTradePrice')
|
760
897
|
timestamp = self.safe_integer_product(ticker, 'ts', 0.000001)
|
761
898
|
return self.safe_ticker({
|
762
899
|
'symbol': market['symbol'],
|
763
900
|
'timestamp': timestamp,
|
764
901
|
'datetime': self.iso8601(timestamp),
|
765
|
-
'high':
|
766
|
-
'low':
|
902
|
+
'high': self.safe_string(ticker, 'highPrice'),
|
903
|
+
'low': self.safe_string(ticker, 'lowPrice'),
|
767
904
|
'bid': self.safe_string(ticker, 'bestBidPrice'),
|
768
905
|
'bidVolume': self.safe_string(ticker, 'bestBidSize'),
|
769
906
|
'ask': self.safe_string(ticker, 'bestAskPrice'),
|
@@ -773,11 +910,11 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
773
910
|
'close': last,
|
774
911
|
'last': last,
|
775
912
|
'previousClose': None,
|
776
|
-
'change':
|
777
|
-
'percentage':
|
913
|
+
'change': self.safe_string(ticker, 'priceChg'),
|
914
|
+
'percentage': self.safe_string(ticker, 'priceChgPct'),
|
778
915
|
'average': None,
|
779
|
-
'baseVolume':
|
780
|
-
'quoteVolume':
|
916
|
+
'baseVolume': self.safe_string(ticker, 'volumeOf24h'),
|
917
|
+
'quoteVolume': self.safe_string(ticker, 'turnoverOf24h'),
|
781
918
|
'info': ticker,
|
782
919
|
}, market)
|
783
920
|
|
ccxt/kuna.py
CHANGED
@@ -517,7 +517,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
517
517
|
'networks': {},
|
518
518
|
}
|
519
519
|
|
520
|
-
def fetch_markets(self, params={}):
|
520
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
521
521
|
"""
|
522
522
|
retrieves data on all markets for kuna
|
523
523
|
:see: https://docs.kuna.io/docs/get-all-traded-markets
|
ccxt/latoken.py
CHANGED
@@ -256,7 +256,7 @@ class latoken(Exchange, ImplicitAPI):
|
|
256
256
|
#
|
257
257
|
return self.safe_integer(response, 'serverTime')
|
258
258
|
|
259
|
-
def fetch_markets(self, params={}):
|
259
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
260
260
|
"""
|
261
261
|
retrieves data on all markets for latoken
|
262
262
|
:see: https://api.latoken.com/doc/v2/#tag/Pair/operation/getActivePairs
|
ccxt/lbank.py
CHANGED
@@ -344,7 +344,7 @@ class lbank(Exchange, ImplicitAPI):
|
|
344
344
|
#
|
345
345
|
return self.safe_integer(response, 'data')
|
346
346
|
|
347
|
-
def fetch_markets(self, params={}):
|
347
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
348
348
|
"""
|
349
349
|
retrieves data on all markets for lbank
|
350
350
|
:see: https://www.lbank.com/en-US/docs/index.html#trading-pairs
|
ccxt/luno.py
CHANGED
@@ -180,7 +180,7 @@ class luno(Exchange, ImplicitAPI):
|
|
180
180
|
'precisionMode': TICK_SIZE,
|
181
181
|
})
|
182
182
|
|
183
|
-
def fetch_markets(self, params={}):
|
183
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
184
184
|
"""
|
185
185
|
retrieves data on all markets for luno
|
186
186
|
:see: https://www.luno.com/en/developers/api#tag/Market/operation/Markets
|
ccxt/lykke.py
CHANGED
@@ -263,7 +263,7 @@ class lykke(Exchange, ImplicitAPI):
|
|
263
263
|
}
|
264
264
|
return result
|
265
265
|
|
266
|
-
def fetch_markets(self, params={}):
|
266
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
267
267
|
"""
|
268
268
|
retrieves data on all markets for lykke
|
269
269
|
:see: https://lykkecity.github.io/Trading-API/#get-asset-by-id
|
ccxt/mercado.py
CHANGED
@@ -161,7 +161,7 @@ class mercado(Exchange, ImplicitAPI):
|
|
161
161
|
'precisionMode': TICK_SIZE,
|
162
162
|
})
|
163
163
|
|
164
|
-
def fetch_markets(self, params={}):
|
164
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
165
165
|
"""
|
166
166
|
retrieves data on all markets for mercado
|
167
167
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
ccxt/mexc.py
CHANGED
@@ -1132,7 +1132,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
1132
1132
|
}
|
1133
1133
|
return result
|
1134
1134
|
|
1135
|
-
def fetch_markets(self, params={}):
|
1135
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
1136
1136
|
"""
|
1137
1137
|
retrieves data on all markets for mexc
|
1138
1138
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
ccxt/ndax.py
CHANGED
@@ -395,7 +395,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
395
395
|
}
|
396
396
|
return result
|
397
397
|
|
398
|
-
def fetch_markets(self, params={}):
|
398
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
399
399
|
"""
|
400
400
|
retrieves data on all markets for ndax
|
401
401
|
:see: https://apidoc.ndax.io/#getinstruments
|
ccxt/novadax.py
CHANGED
@@ -238,7 +238,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
238
238
|
#
|
239
239
|
return self.safe_integer(response, 'data')
|
240
240
|
|
241
|
-
def fetch_markets(self, params={}):
|
241
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
242
242
|
"""
|
243
243
|
retrieves data on all markets for novadax
|
244
244
|
:see: https://doc.novadax.com/en-US/#get-all-supported-trading-symbol
|
ccxt/oceanex.py
CHANGED
@@ -156,7 +156,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
156
156
|
},
|
157
157
|
})
|
158
158
|
|
159
|
-
def fetch_markets(self, params={}):
|
159
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
160
160
|
"""
|
161
161
|
retrieves data on all markets for oceanex
|
162
162
|
:see: https://api.oceanex.pro/doc/v1/#markets-post
|
ccxt/okcoin.py
CHANGED
@@ -629,7 +629,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
629
629
|
#
|
630
630
|
return self.parse8601(self.safe_string(response, 'iso'))
|
631
631
|
|
632
|
-
def fetch_markets(self, params={}):
|
632
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
633
633
|
"""
|
634
634
|
:see: https://www.okcoin.com/docs-v5/en/#rest-api-public-data-get-instruments
|
635
635
|
retrieves data on all markets for okcoin
|
ccxt/okx.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.okx import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import PermissionDenied
|
@@ -116,6 +116,8 @@ class okx(Exchange, ImplicitAPI):
|
|
116
116
|
'fetchOpenInterestHistory': True,
|
117
117
|
'fetchOpenOrder': None,
|
118
118
|
'fetchOpenOrders': True,
|
119
|
+
'fetchOption': True,
|
120
|
+
'fetchOptionChain': True,
|
119
121
|
'fetchOrder': True,
|
120
122
|
'fetchOrderBook': True,
|
121
123
|
'fetchOrderBooks': False,
|
@@ -1327,7 +1329,7 @@ class okx(Exchange, ImplicitAPI):
|
|
1327
1329
|
})
|
1328
1330
|
return result
|
1329
1331
|
|
1330
|
-
def fetch_markets(self, params={}):
|
1332
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
1331
1333
|
"""
|
1332
1334
|
retrieves data on all markets for okx
|
1333
1335
|
:see: https://www.okx.com/docs-v5/en/#rest-api-public-data-get-instruments
|
@@ -6909,6 +6911,139 @@ class okx(Exchange, ImplicitAPI):
|
|
6909
6911
|
order = self.safe_value(data, 0)
|
6910
6912
|
return self.parse_order(order, market)
|
6911
6913
|
|
6914
|
+
def fetch_option(self, symbol: str, params={}) -> Option:
|
6915
|
+
"""
|
6916
|
+
fetches option data that is commonly found in an option chain
|
6917
|
+
:see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-ticker
|
6918
|
+
:param str symbol: unified market symbol
|
6919
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
6920
|
+
:returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
6921
|
+
"""
|
6922
|
+
self.load_markets()
|
6923
|
+
market = self.market(symbol)
|
6924
|
+
request = {
|
6925
|
+
'instId': market['id'],
|
6926
|
+
}
|
6927
|
+
response = self.publicGetMarketTicker(self.extend(request, params))
|
6928
|
+
#
|
6929
|
+
# {
|
6930
|
+
# "code": "0",
|
6931
|
+
# "msg": "",
|
6932
|
+
# "data": [
|
6933
|
+
# {
|
6934
|
+
# "instType": "OPTION",
|
6935
|
+
# "instId": "BTC-USD-241227-60000-P",
|
6936
|
+
# "last": "",
|
6937
|
+
# "lastSz": "0",
|
6938
|
+
# "askPx": "",
|
6939
|
+
# "askSz": "0",
|
6940
|
+
# "bidPx": "",
|
6941
|
+
# "bidSz": "0",
|
6942
|
+
# "open24h": "",
|
6943
|
+
# "high24h": "",
|
6944
|
+
# "low24h": "",
|
6945
|
+
# "volCcy24h": "0",
|
6946
|
+
# "vol24h": "0",
|
6947
|
+
# "ts": "1711176035035",
|
6948
|
+
# "sodUtc0": "",
|
6949
|
+
# "sodUtc8": ""
|
6950
|
+
# }
|
6951
|
+
# ]
|
6952
|
+
# }
|
6953
|
+
#
|
6954
|
+
result = self.safe_list(response, 'data', [])
|
6955
|
+
chain = self.safe_dict(result, 0, {})
|
6956
|
+
return self.parse_option(chain, None, market)
|
6957
|
+
|
6958
|
+
def fetch_option_chain(self, code: str, params={}) -> OptionChain:
|
6959
|
+
"""
|
6960
|
+
fetches data for an underlying asset that is commonly found in an option chain
|
6961
|
+
:see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
|
6962
|
+
:param str currency: base currency to fetch an option chain for
|
6963
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
6964
|
+
:param str [params.uly]: the underlying asset, can be obtained from fetchUnderlyingAssets()
|
6965
|
+
:returns dict: a list of `option chain structures <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
6966
|
+
"""
|
6967
|
+
self.load_markets()
|
6968
|
+
currency = self.currency(code)
|
6969
|
+
request = {
|
6970
|
+
'uly': currency['code'] + '-USD',
|
6971
|
+
'instType': 'OPTION',
|
6972
|
+
}
|
6973
|
+
response = self.publicGetMarketTickers(self.extend(request, params))
|
6974
|
+
#
|
6975
|
+
# {
|
6976
|
+
# "code": "0",
|
6977
|
+
# "msg": "",
|
6978
|
+
# "data": [
|
6979
|
+
# {
|
6980
|
+
# "instType": "OPTION",
|
6981
|
+
# "instId": "BTC-USD-240323-52000-C",
|
6982
|
+
# "last": "",
|
6983
|
+
# "lastSz": "0",
|
6984
|
+
# "askPx": "",
|
6985
|
+
# "askSz": "0",
|
6986
|
+
# "bidPx": "",
|
6987
|
+
# "bidSz": "0",
|
6988
|
+
# "open24h": "",
|
6989
|
+
# "high24h": "",
|
6990
|
+
# "low24h": "",
|
6991
|
+
# "volCcy24h": "0",
|
6992
|
+
# "vol24h": "0",
|
6993
|
+
# "ts": "1711176207008",
|
6994
|
+
# "sodUtc0": "",
|
6995
|
+
# "sodUtc8": ""
|
6996
|
+
# },
|
6997
|
+
# ]
|
6998
|
+
# }
|
6999
|
+
#
|
7000
|
+
result = self.safe_list(response, 'data', [])
|
7001
|
+
return self.parse_option_chain(result, None, 'instId')
|
7002
|
+
|
7003
|
+
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
7004
|
+
#
|
7005
|
+
# {
|
7006
|
+
# "instType": "OPTION",
|
7007
|
+
# "instId": "BTC-USD-241227-60000-P",
|
7008
|
+
# "last": "",
|
7009
|
+
# "lastSz": "0",
|
7010
|
+
# "askPx": "",
|
7011
|
+
# "askSz": "0",
|
7012
|
+
# "bidPx": "",
|
7013
|
+
# "bidSz": "0",
|
7014
|
+
# "open24h": "",
|
7015
|
+
# "high24h": "",
|
7016
|
+
# "low24h": "",
|
7017
|
+
# "volCcy24h": "0",
|
7018
|
+
# "vol24h": "0",
|
7019
|
+
# "ts": "1711176035035",
|
7020
|
+
# "sodUtc0": "",
|
7021
|
+
# "sodUtc8": ""
|
7022
|
+
# }
|
7023
|
+
#
|
7024
|
+
marketId = self.safe_string(chain, 'instId')
|
7025
|
+
market = self.safe_market(marketId, market)
|
7026
|
+
timestamp = self.safe_integer(chain, 'ts')
|
7027
|
+
return {
|
7028
|
+
'info': chain,
|
7029
|
+
'currency': None,
|
7030
|
+
'symbol': market['symbol'],
|
7031
|
+
'timestamp': timestamp,
|
7032
|
+
'datetime': self.iso8601(timestamp),
|
7033
|
+
'impliedVolatility': None,
|
7034
|
+
'openInterest': None,
|
7035
|
+
'bidPrice': self.safe_number(chain, 'bidPx'),
|
7036
|
+
'askPrice': self.safe_number(chain, 'askPx'),
|
7037
|
+
'midPrice': None,
|
7038
|
+
'markPrice': None,
|
7039
|
+
'lastPrice': self.safe_number(chain, 'last'),
|
7040
|
+
'underlyingPrice': None,
|
7041
|
+
'change': None,
|
7042
|
+
'percentage': None,
|
7043
|
+
'baseVolume': self.safe_number(chain, 'volCcy24h'),
|
7044
|
+
'quoteVolume': None,
|
7045
|
+
}
|
7046
|
+
|
6912
7047
|
def handle_errors(self, httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
6913
7048
|
if not response:
|
6914
7049
|
return None # fallback to default error handler
|
ccxt/onetrading.py
CHANGED
@@ -363,7 +363,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
363
363
|
}
|
364
364
|
return result
|
365
365
|
|
366
|
-
def fetch_markets(self, params={}):
|
366
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
367
367
|
"""
|
368
368
|
retrieves data on all markets for onetrading
|
369
369
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
ccxt/p2b.py
CHANGED
@@ -236,7 +236,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
236
236
|
},
|
237
237
|
})
|
238
238
|
|
239
|
-
def fetch_markets(self, params={}):
|
239
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
240
240
|
"""
|
241
241
|
retrieves data on all markets for bigone
|
242
242
|
:see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
|
ccxt/phemex.py
CHANGED
@@ -747,7 +747,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
747
747
|
'info': market,
|
748
748
|
})
|
749
749
|
|
750
|
-
def fetch_markets(self, params={}):
|
750
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
751
751
|
"""
|
752
752
|
retrieves data on all markets for phemex
|
753
753
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
ccxt/poloniex.py
CHANGED
@@ -480,7 +480,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
480
480
|
self.options['currenciesByNumericId'] = self.index_by(self.currencies, 'numericId')
|
481
481
|
return markets
|
482
482
|
|
483
|
-
def fetch_markets(self, params={}):
|
483
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
484
484
|
"""
|
485
485
|
retrieves data on all markets for poloniex
|
486
486
|
:see: https://docs.poloniex.com/#public-endpoints-reference-data-symbol-information
|
ccxt/poloniexfutures.py
CHANGED
@@ -215,7 +215,7 @@ class poloniexfutures(Exchange, ImplicitAPI):
|
|
215
215
|
},
|
216
216
|
})
|
217
217
|
|
218
|
-
def fetch_markets(self, params={}):
|
218
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
219
219
|
"""
|
220
220
|
retrieves data on all markets for poloniexfutures
|
221
221
|
:see: https://futures-docs.poloniex.com/#symbol-2
|
ccxt/pro/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# ----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.2.
|
7
|
+
__version__ = '4.2.83'
|
8
8
|
|
9
9
|
# ----------------------------------------------------------------------------
|
10
10
|
|
@@ -24,6 +24,7 @@ from ccxt.pro.bitcoincom import bitcoincom # noqa
|
|
24
24
|
from ccxt.pro.bitfinex import bitfinex # noqa: F401
|
25
25
|
from ccxt.pro.bitfinex2 import bitfinex2 # noqa: F401
|
26
26
|
from ccxt.pro.bitget import bitget # noqa: F401
|
27
|
+
from ccxt.pro.bithumb import bithumb # noqa: F401
|
27
28
|
from ccxt.pro.bitmart import bitmart # noqa: F401
|
28
29
|
from ccxt.pro.bitmex import bitmex # noqa: F401
|
29
30
|
from ccxt.pro.bitopro import bitopro # noqa: F401
|
@@ -89,6 +90,7 @@ exchanges = [
|
|
89
90
|
'bitfinex',
|
90
91
|
'bitfinex2',
|
91
92
|
'bitget',
|
93
|
+
'bithumb',
|
92
94
|
'bitmart',
|
93
95
|
'bitmex',
|
94
96
|
'bitopro',
|