ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.1__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 +39 -35
- ccxt/abantether.py +8 -8
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +8 -8
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +8 -8
- ccxt/async_support/afratether.py +10 -10
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +32 -38
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +32 -27
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +34 -30
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +15 -14
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +30 -36
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +29 -24
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +32 -28
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +13 -12
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.1.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/WHEEL +1 -1
- ccxt/__test__.py +0 -7
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- 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/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/top_level.txt +0 -0
ccxt/krakenfutures.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.krakenfutures import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Leverage, Leverages, LeverageTier, LeverageTiers, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TransferEntry
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, Int, Leverage, Leverages, LeverageTier, LeverageTiers, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TransferEntry
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -29,7 +29,7 @@ from ccxt.base.precise import Precise
|
|
|
29
29
|
|
|
30
30
|
class krakenfutures(Exchange, ImplicitAPI):
|
|
31
31
|
|
|
32
|
-
def describe(self):
|
|
32
|
+
def describe(self) -> Any:
|
|
33
33
|
return self.deep_extend(super(krakenfutures, self).describe(), {
|
|
34
34
|
'id': 'krakenfutures',
|
|
35
35
|
'name': 'Kraken Futures',
|
|
@@ -51,6 +51,12 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
51
51
|
'cancelOrders': True,
|
|
52
52
|
'createMarketOrder': False,
|
|
53
53
|
'createOrder': True,
|
|
54
|
+
'createPostOnlyOrder': True,
|
|
55
|
+
'createReduceOnlyOrder': True,
|
|
56
|
+
'createStopLimitOrder': True,
|
|
57
|
+
'createStopMarketOrder': True,
|
|
58
|
+
'createStopOrder': True,
|
|
59
|
+
'createTriggerOrder': True,
|
|
54
60
|
'editOrder': True,
|
|
55
61
|
'fetchBalance': True,
|
|
56
62
|
'fetchBorrowRateHistories': False,
|
|
@@ -96,6 +102,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
96
102
|
'public': 'https://demo-futures.kraken.com/derivatives/api/',
|
|
97
103
|
'private': 'https://demo-futures.kraken.com/derivatives/api/',
|
|
98
104
|
'charts': 'https://demo-futures.kraken.com/api/charts/',
|
|
105
|
+
'history': 'https://demo-futures.kraken.com/api/history/',
|
|
99
106
|
'www': 'https://demo-futures.kraken.com',
|
|
100
107
|
},
|
|
101
108
|
'logo': 'https://user-images.githubusercontent.com/24300605/81436764-b22fd580-9172-11ea-9703-742783e6376d.jpg',
|
|
@@ -108,7 +115,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
108
115
|
},
|
|
109
116
|
'www': 'https://futures.kraken.com/',
|
|
110
117
|
'doc': [
|
|
111
|
-
'https://docs.
|
|
118
|
+
'https://docs.kraken.com/api/docs/futures-api/trading/market-data/',
|
|
112
119
|
],
|
|
113
120
|
'fees': 'https://support.kraken.com/hc/en-us/articles/360022835771-Transaction-fees-and-rebates-for-Kraken-Futures',
|
|
114
121
|
'referral': None,
|
|
@@ -136,6 +143,8 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
136
143
|
'transfers',
|
|
137
144
|
'leveragepreferences',
|
|
138
145
|
'pnlpreferences',
|
|
146
|
+
'assignmentprogram/current',
|
|
147
|
+
'assignmentprogram/history',
|
|
139
148
|
],
|
|
140
149
|
'post': [
|
|
141
150
|
'sendorder',
|
|
@@ -146,6 +155,8 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
146
155
|
'cancelallorders',
|
|
147
156
|
'cancelallordersafter',
|
|
148
157
|
'withdrawal', # for futures wallet -> kraken spot wallet
|
|
158
|
+
'assignmentprogram/add',
|
|
159
|
+
'assignmentprogram/delete',
|
|
149
160
|
],
|
|
150
161
|
'put': [
|
|
151
162
|
'leveragepreferences',
|
|
@@ -211,7 +222,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
211
222
|
'invalidAmount': BadRequest,
|
|
212
223
|
'insufficientFunds': InsufficientFunds,
|
|
213
224
|
'Bad Request': BadRequest, # The URL contains invalid characters.(Please encode the json URL parameter)
|
|
214
|
-
'Unavailable':
|
|
225
|
+
'Unavailable': ExchangeNotAvailable, # https://github.com/ccxt/ccxt/issues/24338
|
|
215
226
|
'invalidUnit': BadRequest,
|
|
216
227
|
'Json Parse Error': ExchangeError,
|
|
217
228
|
'nonceBelowThreshold': InvalidNonce,
|
|
@@ -235,6 +246,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
235
246
|
'executions': 'private',
|
|
236
247
|
'triggers': 'private',
|
|
237
248
|
'accountlogcsv': 'private',
|
|
249
|
+
'account-log': 'private',
|
|
238
250
|
},
|
|
239
251
|
},
|
|
240
252
|
},
|
|
@@ -269,6 +281,86 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
269
281
|
'method': 'historyGetMarketSymbolExecutions', # historyGetMarketSymbolExecutions, publicGetHistory
|
|
270
282
|
},
|
|
271
283
|
},
|
|
284
|
+
'features': {
|
|
285
|
+
'default': {
|
|
286
|
+
'sandbox': True,
|
|
287
|
+
'createOrder': {
|
|
288
|
+
'marginMode': False,
|
|
289
|
+
'triggerPrice': True,
|
|
290
|
+
'triggerPriceType': {
|
|
291
|
+
'last': True,
|
|
292
|
+
'mark': True,
|
|
293
|
+
'index': True,
|
|
294
|
+
},
|
|
295
|
+
'triggerDirection': False,
|
|
296
|
+
'stopLossPrice': True,
|
|
297
|
+
'takeProfitPrice': True,
|
|
298
|
+
'attachedStopLossTakeProfit': None,
|
|
299
|
+
'timeInForce': {
|
|
300
|
+
'IOC': True,
|
|
301
|
+
'FOK': True,
|
|
302
|
+
'PO': True,
|
|
303
|
+
'GTD': False,
|
|
304
|
+
},
|
|
305
|
+
'hedged': False,
|
|
306
|
+
'trailing': False,
|
|
307
|
+
'leverage': False,
|
|
308
|
+
'marketBuyByCost': False,
|
|
309
|
+
'marketBuyRequiresPrice': False,
|
|
310
|
+
'selfTradePrevention': False,
|
|
311
|
+
'iceberg': False,
|
|
312
|
+
},
|
|
313
|
+
'createOrders': {
|
|
314
|
+
'max': 100,
|
|
315
|
+
},
|
|
316
|
+
'fetchMyTrades': {
|
|
317
|
+
'marginMode': False,
|
|
318
|
+
'limit': None,
|
|
319
|
+
'daysBack': None,
|
|
320
|
+
'untilDays': 100000,
|
|
321
|
+
'symbolRequired': False,
|
|
322
|
+
},
|
|
323
|
+
'fetchOrder': None,
|
|
324
|
+
'fetchOpenOrders': {
|
|
325
|
+
'marginMode': False,
|
|
326
|
+
'limit': None,
|
|
327
|
+
'trigger': False,
|
|
328
|
+
'trailing': False,
|
|
329
|
+
'symbolRequired': False,
|
|
330
|
+
},
|
|
331
|
+
'fetchOrders': None,
|
|
332
|
+
'fetchClosedOrders': {
|
|
333
|
+
'marginMode': False,
|
|
334
|
+
'limit': None,
|
|
335
|
+
'daysBack': None,
|
|
336
|
+
'daysBackCanceled': None,
|
|
337
|
+
'untilDays': None,
|
|
338
|
+
'trigger': False,
|
|
339
|
+
'trailing': False,
|
|
340
|
+
'symbolRequired': False,
|
|
341
|
+
},
|
|
342
|
+
'fetchOHLCV': {
|
|
343
|
+
'limit': 5000,
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
'spot': None,
|
|
347
|
+
'swap': {
|
|
348
|
+
'linear': {
|
|
349
|
+
'extends': 'default',
|
|
350
|
+
},
|
|
351
|
+
'inverse': {
|
|
352
|
+
'extends': 'default',
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
'future': {
|
|
356
|
+
'linear': {
|
|
357
|
+
'extends': 'default',
|
|
358
|
+
},
|
|
359
|
+
'inverse': {
|
|
360
|
+
'extends': 'default',
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
},
|
|
272
364
|
'timeframes': {
|
|
273
365
|
'1m': '1m',
|
|
274
366
|
'5m': '5m',
|
|
@@ -285,7 +377,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
285
377
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
286
378
|
"""
|
|
287
379
|
Fetches the available trading markets from the exchange, Multi-collateral markets are returned markets, but can be settled in multiple currencies
|
|
288
|
-
|
|
380
|
+
|
|
381
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-instruments
|
|
382
|
+
|
|
289
383
|
:param dict [params]: exchange specific params
|
|
290
384
|
:returns: An array of market structures
|
|
291
385
|
"""
|
|
@@ -445,12 +539,14 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
445
539
|
'code': code,
|
|
446
540
|
'precision': None,
|
|
447
541
|
})
|
|
448
|
-
self.currencies = self.deep_extend(currencies, self.currencies)
|
|
542
|
+
self.currencies = self.map_to_safe_map(self.deep_extend(currencies, self.currencies))
|
|
449
543
|
return result
|
|
450
544
|
|
|
451
545
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
452
546
|
"""
|
|
453
|
-
|
|
547
|
+
|
|
548
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-orderbook
|
|
549
|
+
|
|
454
550
|
Fetches a list of open orders in a market
|
|
455
551
|
:param str symbol: Unified market symbol
|
|
456
552
|
:param int [limit]: Not used by krakenfutures
|
|
@@ -499,7 +595,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
499
595
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
500
596
|
"""
|
|
501
597
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
502
|
-
|
|
598
|
+
|
|
599
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-tickers
|
|
600
|
+
|
|
503
601
|
:param str[] symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
504
602
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
505
603
|
:returns dict: an array of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -606,12 +704,16 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
606
704
|
'average': average,
|
|
607
705
|
'baseVolume': baseVolume,
|
|
608
706
|
'quoteVolume': quoteVolume,
|
|
707
|
+
'markPrice': self.safe_string(ticker, 'markPrice'),
|
|
708
|
+
'indexPrice': self.safe_string(ticker, 'indexPrice'),
|
|
609
709
|
'info': ticker,
|
|
610
710
|
})
|
|
611
711
|
|
|
612
712
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
613
713
|
"""
|
|
614
|
-
|
|
714
|
+
|
|
715
|
+
https://docs.kraken.com/api/docs/futures-api/charts/candles
|
|
716
|
+
|
|
615
717
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
616
718
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
617
719
|
:param str timeframe: the length of time each candle represents
|
|
@@ -688,8 +790,10 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
688
790
|
|
|
689
791
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
690
792
|
"""
|
|
691
|
-
|
|
692
|
-
|
|
793
|
+
|
|
794
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-history
|
|
795
|
+
https://docs.kraken.com/api/docs/futures-api/history/get-public-execution-events
|
|
796
|
+
|
|
693
797
|
Fetch a history of filled trades that self account has made
|
|
694
798
|
:param str symbol: Unified CCXT market symbol
|
|
695
799
|
:param int [since]: Timestamp in ms of earliest trade. Not used by krakenfutures except in combination with params.until
|
|
@@ -991,12 +1095,15 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
991
1095
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
992
1096
|
"""
|
|
993
1097
|
Create an order on the exchange
|
|
994
|
-
|
|
1098
|
+
|
|
1099
|
+
https://docs.kraken.com/api/docs/futures-api/trading/send-order
|
|
1100
|
+
|
|
995
1101
|
:param str symbol: unified market symbol
|
|
996
1102
|
:param str type: 'limit' or 'market'
|
|
997
1103
|
:param str side: 'buy' or 'sell'
|
|
998
1104
|
:param float amount: number of contracts
|
|
999
1105
|
:param float [price]: limit order price
|
|
1106
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1000
1107
|
:param bool [params.reduceOnly]: set if you wish the order to only reduce an existing position, any order which increases an existing position will be rejected, default is False
|
|
1001
1108
|
:param bool [params.postOnly]: set if you wish to make a postOnly order, default is False
|
|
1002
1109
|
:param str [params.clientOrderId]: UUID The order identity that is specified from the user, It must be globally unique
|
|
@@ -1004,6 +1111,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1004
1111
|
:param float [params.stopLossPrice]: the price that a stop loss order is triggered at
|
|
1005
1112
|
:param float [params.takeProfitPrice]: the price that a take profit order is triggered at
|
|
1006
1113
|
:param str [params.triggerSignal]: for triggerPrice, stopLossPrice and takeProfitPrice orders, the trigger price type, 'last', 'mark' or 'index', default is 'last'
|
|
1114
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1007
1115
|
"""
|
|
1008
1116
|
self.load_markets()
|
|
1009
1117
|
market = self.market(symbol)
|
|
@@ -1047,8 +1155,11 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1047
1155
|
def create_orders(self, orders: List[OrderRequest], params={}):
|
|
1048
1156
|
"""
|
|
1049
1157
|
create a list of trade orders
|
|
1050
|
-
|
|
1158
|
+
|
|
1159
|
+
https://docs.kraken.com/api/docs/futures-api/trading/send-batch-order
|
|
1160
|
+
|
|
1051
1161
|
:param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
|
|
1162
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1052
1163
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1053
1164
|
"""
|
|
1054
1165
|
self.load_markets()
|
|
@@ -1093,7 +1204,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1093
1204
|
|
|
1094
1205
|
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
|
1095
1206
|
"""
|
|
1096
|
-
|
|
1207
|
+
|
|
1208
|
+
https://docs.kraken.com/api/docs/futures-api/trading/edit-order-spring
|
|
1209
|
+
|
|
1097
1210
|
Edit an open order on the exchange
|
|
1098
1211
|
:param str id: order id
|
|
1099
1212
|
:param str symbol: Not used by Krakenfutures
|
|
@@ -1121,7 +1234,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1121
1234
|
|
|
1122
1235
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1123
1236
|
"""
|
|
1124
|
-
|
|
1237
|
+
|
|
1238
|
+
https://docs.kraken.com/api/docs/futures-api/trading/cancel-order
|
|
1239
|
+
|
|
1125
1240
|
Cancel an open order on the exchange
|
|
1126
1241
|
:param str id: Order id
|
|
1127
1242
|
:param str symbol: Not used by Krakenfutures
|
|
@@ -1140,12 +1255,14 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1140
1255
|
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
1141
1256
|
"""
|
|
1142
1257
|
cancel multiple orders
|
|
1143
|
-
|
|
1258
|
+
|
|
1259
|
+
https://docs.kraken.com/api/docs/futures-api/trading/send-batch-order
|
|
1260
|
+
|
|
1144
1261
|
:param str[] ids: order ids
|
|
1145
1262
|
:param str [symbol]: unified market symbol
|
|
1146
1263
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1147
|
-
|
|
1148
|
-
|
|
1264
|
+
|
|
1265
|
+
EXCHANGE SPECIFIC PARAMETERS
|
|
1149
1266
|
:param str[] [params.clientOrderIds]: max length 10 e.g. ["my_id_1","my_id_2"]
|
|
1150
1267
|
:returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1151
1268
|
"""
|
|
@@ -1197,7 +1314,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1197
1314
|
|
|
1198
1315
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
1199
1316
|
"""
|
|
1200
|
-
|
|
1317
|
+
|
|
1318
|
+
https://docs.kraken.com/api/docs/futures-api/trading/cancel-all-orders
|
|
1319
|
+
|
|
1201
1320
|
Cancels all orders on the exchange, including trigger orders
|
|
1202
1321
|
:param str symbol: Unified market symbol
|
|
1203
1322
|
:param dict [params]: Exchange specific params
|
|
@@ -1250,7 +1369,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1250
1369
|
def cancel_all_orders_after(self, timeout: Int, params={}):
|
|
1251
1370
|
"""
|
|
1252
1371
|
dead man's switch, cancel all orders after the given timeout
|
|
1253
|
-
|
|
1372
|
+
|
|
1373
|
+
https://docs.kraken.com/api/docs/futures-api/trading/cancel-all-orders-after
|
|
1374
|
+
|
|
1254
1375
|
:param number timeout: time in milliseconds, 0 represents cancel the timer
|
|
1255
1376
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1256
1377
|
:returns dict: the api result
|
|
@@ -1274,7 +1395,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1274
1395
|
|
|
1275
1396
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1276
1397
|
"""
|
|
1277
|
-
|
|
1398
|
+
|
|
1399
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-open-orders
|
|
1400
|
+
|
|
1278
1401
|
Gets all open orders, including trigger orders, for an account from the exchange api
|
|
1279
1402
|
:param str symbol: Unified market symbol
|
|
1280
1403
|
:param int [since]: Timestamp(ms) of earliest order.(Not used by kraken api but filtered internally by CCXT)
|
|
@@ -1292,7 +1415,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1292
1415
|
|
|
1293
1416
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1294
1417
|
"""
|
|
1295
|
-
|
|
1418
|
+
|
|
1419
|
+
https://docs.futures.kraken.com/#http-api-history-account-history-get-order-events
|
|
1420
|
+
|
|
1296
1421
|
Gets all closed orders, including trigger orders, for an account from the exchange api
|
|
1297
1422
|
:param str symbol: Unified market symbol
|
|
1298
1423
|
:param int [since]: Timestamp(ms) of earliest order.
|
|
@@ -1326,7 +1451,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1326
1451
|
|
|
1327
1452
|
def fetch_canceled_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1328
1453
|
"""
|
|
1329
|
-
|
|
1454
|
+
|
|
1455
|
+
https://docs.kraken.com/api/docs/futures-api/history/get-order-events
|
|
1456
|
+
|
|
1330
1457
|
Gets all canceled orders, including trigger orders, for an account from the exchange api
|
|
1331
1458
|
:param str symbol: Unified market symbol
|
|
1332
1459
|
:param int [since]: Timestamp(ms) of earliest order.
|
|
@@ -1369,13 +1496,13 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1369
1496
|
return self.parse_orders(canceledAndRejected, market, since, limit)
|
|
1370
1497
|
|
|
1371
1498
|
def parse_order_type(self, orderType):
|
|
1372
|
-
|
|
1499
|
+
typesMap: dict = {
|
|
1373
1500
|
'lmt': 'limit',
|
|
1374
1501
|
'mkt': 'market',
|
|
1375
1502
|
'post': 'limit',
|
|
1376
1503
|
'ioc': 'market',
|
|
1377
1504
|
}
|
|
1378
|
-
return self.safe_string(
|
|
1505
|
+
return self.safe_string(typesMap, orderType, orderType)
|
|
1379
1506
|
|
|
1380
1507
|
def verify_order_action_success(self, status, method, omit=[]):
|
|
1381
1508
|
errors: dict = {
|
|
@@ -1673,16 +1800,17 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1673
1800
|
executions.append(item)
|
|
1674
1801
|
# Final order(after placement / editing / execution / canceling)
|
|
1675
1802
|
orderTrigger = self.safe_value(item, 'orderTrigger')
|
|
1676
|
-
details
|
|
1677
|
-
|
|
1678
|
-
isPrior = False
|
|
1679
|
-
fixed = True
|
|
1680
|
-
elif not fixed:
|
|
1681
|
-
orderPriorExecution = self.safe_value(item, 'orderPriorExecution')
|
|
1682
|
-
details = self.safe_value_2(item, 'orderPriorExecution', 'orderPriorEdit')
|
|
1683
|
-
price = self.safe_string(orderPriorExecution, 'limitPrice')
|
|
1803
|
+
if details is None:
|
|
1804
|
+
details = self.safe_value_2(item, 'new', 'order', orderTrigger)
|
|
1684
1805
|
if details is not None:
|
|
1685
|
-
isPrior =
|
|
1806
|
+
isPrior = False
|
|
1807
|
+
fixed = True
|
|
1808
|
+
elif not fixed:
|
|
1809
|
+
orderPriorExecution = self.safe_value(item, 'orderPriorExecution')
|
|
1810
|
+
details = self.safe_value_2(item, 'orderPriorExecution', 'orderPriorEdit')
|
|
1811
|
+
price = self.safe_string(orderPriorExecution, 'limitPrice')
|
|
1812
|
+
if details is not None:
|
|
1813
|
+
isPrior = True
|
|
1686
1814
|
trades = self.parse_trades(executions)
|
|
1687
1815
|
statusId = self.safe_string(order, 'status')
|
|
1688
1816
|
if details is None:
|
|
@@ -1758,10 +1886,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1758
1886
|
'type': self.parse_order_type(type),
|
|
1759
1887
|
'timeInForce': timeInForce,
|
|
1760
1888
|
'postOnly': type == 'post',
|
|
1761
|
-
'reduceOnly': self.
|
|
1889
|
+
'reduceOnly': self.safe_bool_2(details, 'reduceOnly', 'reduce_only'),
|
|
1762
1890
|
'side': self.safe_string(details, 'side'),
|
|
1763
1891
|
'price': price,
|
|
1764
|
-
'stopPrice': self.safe_string(details, 'triggerPrice'),
|
|
1765
1892
|
'triggerPrice': self.safe_string(details, 'triggerPrice'),
|
|
1766
1893
|
'amount': amount,
|
|
1767
1894
|
'cost': cost,
|
|
@@ -1777,7 +1904,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1777
1904
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1778
1905
|
"""
|
|
1779
1906
|
fetch all trades made by the user
|
|
1780
|
-
|
|
1907
|
+
|
|
1908
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-fills
|
|
1909
|
+
|
|
1781
1910
|
:param str symbol: unified market symbol
|
|
1782
1911
|
:param int [since]: *not used by the api* the earliest time in ms to fetch trades for
|
|
1783
1912
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1789,6 +1918,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1789
1918
|
market = None
|
|
1790
1919
|
if symbol is not None:
|
|
1791
1920
|
market = self.market(symbol)
|
|
1921
|
+
# todo: lastFillTime: self.iso8601(end)
|
|
1792
1922
|
response = self.privateGetFills(params)
|
|
1793
1923
|
#
|
|
1794
1924
|
# {
|
|
@@ -1814,7 +1944,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
1814
1944
|
|
|
1815
1945
|
def fetch_balance(self, params={}) -> Balances:
|
|
1816
1946
|
"""
|
|
1817
|
-
|
|
1947
|
+
|
|
1948
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-accounts
|
|
1949
|
+
|
|
1818
1950
|
Fetch the balance for a sub-account, all sub-account balances are inside 'info' in the response
|
|
1819
1951
|
:param dict [params]: Exchange specific parameters
|
|
1820
1952
|
:param str [params.type]: The sub-account type to query the balance of, possible values include 'flex', 'cash'/'main'/'funding', or a market symbol * defaults to 'flex' *
|
|
@@ -2024,10 +2156,12 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2024
2156
|
result[code] = account
|
|
2025
2157
|
return self.safe_balance(result)
|
|
2026
2158
|
|
|
2027
|
-
def fetch_funding_rates(self, symbols: Strings = None, params={}):
|
|
2159
|
+
def fetch_funding_rates(self, symbols: Strings = None, params={}) -> FundingRates:
|
|
2028
2160
|
"""
|
|
2029
|
-
|
|
2030
|
-
|
|
2161
|
+
fetch the current funding rates for multiple markets
|
|
2162
|
+
|
|
2163
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-tickers
|
|
2164
|
+
|
|
2031
2165
|
:param str[] symbols: unified market symbols
|
|
2032
2166
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2033
2167
|
:returns Order[]: an array of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
|
@@ -2035,7 +2169,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2035
2169
|
self.load_markets()
|
|
2036
2170
|
marketIds = self.market_ids(symbols)
|
|
2037
2171
|
response = self.publicGetTickers(params)
|
|
2038
|
-
tickers = self.
|
|
2172
|
+
tickers = self.safe_list(response, 'tickers', [])
|
|
2039
2173
|
fundingRates = []
|
|
2040
2174
|
for i in range(0, len(tickers)):
|
|
2041
2175
|
entry = tickers[i]
|
|
@@ -2048,7 +2182,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2048
2182
|
fundingRates.append(parsed)
|
|
2049
2183
|
return self.index_by(fundingRates, 'symbol')
|
|
2050
2184
|
|
|
2051
|
-
def parse_funding_rate(self, ticker, market: Market = None):
|
|
2185
|
+
def parse_funding_rate(self, ticker, market: Market = None) -> FundingRate:
|
|
2052
2186
|
#
|
|
2053
2187
|
# {"ask": 26.283,
|
|
2054
2188
|
# "askSize": 4.6,
|
|
@@ -2102,12 +2236,15 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2102
2236
|
'previousFundingRate': None,
|
|
2103
2237
|
'previousFundingTimestamp': None,
|
|
2104
2238
|
'previousFundingDatetime': None,
|
|
2239
|
+
'interval': None,
|
|
2105
2240
|
}
|
|
2106
2241
|
|
|
2107
2242
|
def fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
2108
2243
|
"""
|
|
2109
2244
|
fetches historical funding rate prices
|
|
2110
|
-
|
|
2245
|
+
|
|
2246
|
+
https://docs.kraken.com/api/docs/futures-api/trading/historical-funding-rates
|
|
2247
|
+
|
|
2111
2248
|
:param str symbol: unified symbol of the market to fetch the funding rate history for
|
|
2112
2249
|
:param int [since]: timestamp in ms of the earliest funding rate to fetch
|
|
2113
2250
|
:param int [limit]: the maximum amount of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-history-structure>` to fetch
|
|
@@ -2151,9 +2288,11 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2151
2288
|
sorted = self.sort_by(result, 'timestamp')
|
|
2152
2289
|
return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
|
|
2153
2290
|
|
|
2154
|
-
def fetch_positions(self, symbols: Strings = None, params={}):
|
|
2291
|
+
def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
|
|
2155
2292
|
"""
|
|
2156
|
-
|
|
2293
|
+
|
|
2294
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-open-positions
|
|
2295
|
+
|
|
2157
2296
|
Fetches current contract trading positions
|
|
2158
2297
|
:param str[] symbols: List of unified symbols
|
|
2159
2298
|
:param dict [params]: Not used by krakenfutures
|
|
@@ -2245,8 +2384,10 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2245
2384
|
|
|
2246
2385
|
def fetch_leverage_tiers(self, symbols: Strings = None, params={}) -> LeverageTiers:
|
|
2247
2386
|
"""
|
|
2248
|
-
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-instrument-details-get-instruments
|
|
2249
2387
|
retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes
|
|
2388
|
+
|
|
2389
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-instruments
|
|
2390
|
+
|
|
2250
2391
|
:param str[]|None symbols: list of unified market symbols
|
|
2251
2392
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2252
2393
|
:returns dict: a dictionary of `leverage tiers structures <https://docs.ccxt.com/#/?id=leverage-tiers-structure>`, indexed by market symbols
|
|
@@ -2302,9 +2443,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2302
2443
|
|
|
2303
2444
|
def parse_market_leverage_tiers(self, info, market: Market = None) -> List[LeverageTier]:
|
|
2304
2445
|
"""
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2446
|
+
@ignore
|
|
2447
|
+
@param info Exchange market response for 1 market
|
|
2448
|
+
@param market CCXT market
|
|
2308
2449
|
"""
|
|
2309
2450
|
#
|
|
2310
2451
|
# {
|
|
@@ -2340,22 +2481,25 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2340
2481
|
# }
|
|
2341
2482
|
#
|
|
2342
2483
|
marginLevels = self.safe_value(info, 'marginLevels')
|
|
2343
|
-
|
|
2344
|
-
market = self.safe_market(
|
|
2484
|
+
marketId = self.safe_string(info, 'symbol')
|
|
2485
|
+
market = self.safe_market(marketId, market)
|
|
2345
2486
|
tiers = []
|
|
2487
|
+
if marginLevels is None:
|
|
2488
|
+
return tiers
|
|
2346
2489
|
for i in range(0, len(marginLevels)):
|
|
2347
2490
|
tier = marginLevels[i]
|
|
2348
2491
|
initialMargin = self.safe_string(tier, 'initialMargin')
|
|
2349
|
-
|
|
2492
|
+
minNotional = self.safe_number(tier, 'numNonContractUnits')
|
|
2350
2493
|
if i != 0:
|
|
2351
2494
|
tiersLength = len(tiers)
|
|
2352
2495
|
previousTier = tiers[tiersLength - 1]
|
|
2353
|
-
previousTier['
|
|
2496
|
+
previousTier['maxNotional'] = minNotional
|
|
2354
2497
|
tiers.append({
|
|
2355
2498
|
'tier': self.sum(i, 1),
|
|
2499
|
+
'symbol': self.safe_symbol(marketId, market),
|
|
2356
2500
|
'currency': market['quote'],
|
|
2357
|
-
'
|
|
2358
|
-
'
|
|
2501
|
+
'minNotional': minNotional,
|
|
2502
|
+
'maxNotional': None,
|
|
2359
2503
|
'maintenanceMarginRate': self.safe_number(tier, 'maintenanceMargin'),
|
|
2360
2504
|
'maxLeverage': self.parse_number(Precise.string_div('1', initialMargin)),
|
|
2361
2505
|
'info': tier,
|
|
@@ -2420,8 +2564,10 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2420
2564
|
|
|
2421
2565
|
def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
|
|
2422
2566
|
"""
|
|
2423
|
-
|
|
2424
|
-
|
|
2567
|
+
|
|
2568
|
+
https://docs.kraken.com/api/docs/futures-api/trading/transfer
|
|
2569
|
+
https://docs.kraken.com/api/docs/futures-api/trading/sub-account-transfer
|
|
2570
|
+
|
|
2425
2571
|
transfers currencies between sub-accounts
|
|
2426
2572
|
:param str code: Unified currency code
|
|
2427
2573
|
:param float amount: Size of the transfer
|
|
@@ -2461,10 +2607,12 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2461
2607
|
'toAccount': toAccount,
|
|
2462
2608
|
})
|
|
2463
2609
|
|
|
2464
|
-
def set_leverage(self, leverage:
|
|
2610
|
+
def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
|
2465
2611
|
"""
|
|
2466
2612
|
set the level of leverage for a market
|
|
2467
|
-
|
|
2613
|
+
|
|
2614
|
+
https://docs.kraken.com/api/docs/futures-api/trading/set-leverage-setting
|
|
2615
|
+
|
|
2468
2616
|
:param float leverage: the rate of leverage
|
|
2469
2617
|
:param str symbol: unified market symbol
|
|
2470
2618
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -2485,7 +2633,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2485
2633
|
def fetch_leverages(self, symbols: Strings = None, params={}) -> Leverages:
|
|
2486
2634
|
"""
|
|
2487
2635
|
fetch the set leverage for all contract and margin markets
|
|
2488
|
-
|
|
2636
|
+
|
|
2637
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-leverage-setting
|
|
2638
|
+
|
|
2489
2639
|
:param str[] [symbols]: a list of unified market symbols
|
|
2490
2640
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2491
2641
|
:returns dict: a list of `leverage structures <https://docs.ccxt.com/#/?id=leverage-structure>`
|
|
@@ -2510,7 +2660,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
|
2510
2660
|
def fetch_leverage(self, symbol: str, params={}) -> Leverage:
|
|
2511
2661
|
"""
|
|
2512
2662
|
fetch the set leverage for a market
|
|
2513
|
-
|
|
2663
|
+
|
|
2664
|
+
https://docs.kraken.com/api/docs/futures-api/trading/get-leverage-setting
|
|
2665
|
+
|
|
2514
2666
|
:param str symbol: unified market symbol
|
|
2515
2667
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2516
2668
|
:returns dict: a `leverage structure <https://docs.ccxt.com/#/?id=leverage-structure>`
|