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/tradeogre.py
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.tradeogre import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import IndexType, Int, Market, Num, Order, OrderSide, OrderType, Str, Ticker
|
|
8
|
+
from ccxt.base.types import Any, IndexType, Int, Market, Num, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers
|
|
9
9
|
from typing import List
|
|
10
10
|
from ccxt.base.errors import ExchangeError
|
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -17,14 +17,14 @@ from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
|
17
17
|
|
|
18
18
|
class tradeogre(Exchange, ImplicitAPI):
|
|
19
19
|
|
|
20
|
-
def describe(self):
|
|
20
|
+
def describe(self) -> Any:
|
|
21
21
|
return self.deep_extend(super(tradeogre, self).describe(), {
|
|
22
22
|
'id': 'tradeogre',
|
|
23
23
|
'name': 'tradeogre',
|
|
24
24
|
'countries': [],
|
|
25
25
|
'rateLimit': 100,
|
|
26
26
|
'version': 'v2',
|
|
27
|
-
'pro':
|
|
27
|
+
'pro': True,
|
|
28
28
|
'has': {
|
|
29
29
|
'CORS': None,
|
|
30
30
|
'spot': True,
|
|
@@ -33,6 +33,9 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
33
33
|
'future': False,
|
|
34
34
|
'option': False,
|
|
35
35
|
'addMargin': False,
|
|
36
|
+
'borrowCrossMargin': False,
|
|
37
|
+
'borrowIsolatedMargin': False,
|
|
38
|
+
'borrowMargin': False,
|
|
36
39
|
'cancelAllOrders': True,
|
|
37
40
|
'cancelOrder': True,
|
|
38
41
|
'cancelOrders': False,
|
|
@@ -48,9 +51,14 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
48
51
|
'createStopMarketOrder': False,
|
|
49
52
|
'createStopOrder': False,
|
|
50
53
|
'fetchAccounts': False,
|
|
54
|
+
'fetchAllGreeks': False,
|
|
51
55
|
'fetchBalance': True,
|
|
52
56
|
'fetchBorrowInterest': False,
|
|
57
|
+
'fetchBorrowRate': False,
|
|
58
|
+
'fetchBorrowRateHistories': False,
|
|
53
59
|
'fetchBorrowRateHistory': False,
|
|
60
|
+
'fetchBorrowRates': False,
|
|
61
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
54
62
|
'fetchClosedOrders': False,
|
|
55
63
|
'fetchCrossBorrowRate': False,
|
|
56
64
|
'fetchCrossBorrowRates': False,
|
|
@@ -61,29 +69,47 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
61
69
|
'fetchDeposits': False,
|
|
62
70
|
'fetchDepositsWithdrawals': False,
|
|
63
71
|
'fetchFundingHistory': False,
|
|
72
|
+
'fetchFundingInterval': False,
|
|
73
|
+
'fetchFundingIntervals': False,
|
|
64
74
|
'fetchFundingRate': False,
|
|
65
75
|
'fetchFundingRateHistory': False,
|
|
66
76
|
'fetchFundingRates': False,
|
|
77
|
+
'fetchGreeks': False,
|
|
67
78
|
'fetchIndexOHLCV': False,
|
|
68
79
|
'fetchIsolatedBorrowRate': False,
|
|
69
80
|
'fetchIsolatedBorrowRates': False,
|
|
81
|
+
'fetchIsolatedPositions': False,
|
|
70
82
|
'fetchLedger': False,
|
|
71
83
|
'fetchLedgerEntry': False,
|
|
84
|
+
'fetchLeverage': False,
|
|
85
|
+
'fetchLeverages': False,
|
|
72
86
|
'fetchLeverageTiers': False,
|
|
87
|
+
'fetchLiquidations': False,
|
|
88
|
+
'fetchLongShortRatio': False,
|
|
89
|
+
'fetchLongShortRatioHistory': False,
|
|
90
|
+
'fetchMarginAdjustmentHistory': False,
|
|
91
|
+
'fetchMarginMode': False,
|
|
92
|
+
'fetchMarginModes': False,
|
|
73
93
|
'fetchMarketLeverageTiers': False,
|
|
74
94
|
'fetchMarkets': True,
|
|
75
95
|
'fetchMarkOHLCV': False,
|
|
96
|
+
'fetchMarkPrice': False,
|
|
97
|
+
'fetchMarkPrices': False,
|
|
98
|
+
'fetchMyLiquidations': False,
|
|
99
|
+
'fetchMySettlementHistory': False,
|
|
76
100
|
'fetchMyTrades': False,
|
|
77
|
-
'fetchOHLCV':
|
|
101
|
+
'fetchOHLCV': True,
|
|
78
102
|
'fetchOpenInterest': False,
|
|
79
103
|
'fetchOpenInterestHistory': False,
|
|
104
|
+
'fetchOpenInterests': False,
|
|
80
105
|
'fetchOpenOrders': True,
|
|
106
|
+
'fetchOption': False,
|
|
107
|
+
'fetchOptionChain': False,
|
|
81
108
|
'fetchOrder': True,
|
|
82
109
|
'fetchOrderBook': True,
|
|
83
110
|
'fetchOrderBooks': False,
|
|
84
111
|
'fetchOrders': False,
|
|
85
112
|
'fetchOrderTrades': False,
|
|
86
|
-
'fetchPermissions': False,
|
|
87
113
|
'fetchPosition': False,
|
|
88
114
|
'fetchPositionHistory': False,
|
|
89
115
|
'fetchPositionMode': False,
|
|
@@ -92,18 +118,23 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
92
118
|
'fetchPositionsHistory': False,
|
|
93
119
|
'fetchPositionsRisk': False,
|
|
94
120
|
'fetchPremiumIndexOHLCV': False,
|
|
121
|
+
'fetchSettlementHistory': False,
|
|
95
122
|
'fetchTicker': True,
|
|
96
|
-
'fetchTickers':
|
|
123
|
+
'fetchTickers': True,
|
|
97
124
|
'fetchTrades': True,
|
|
98
125
|
'fetchTradingLimits': False,
|
|
99
126
|
'fetchTransactionFee': False,
|
|
100
127
|
'fetchTransactionFees': False,
|
|
101
128
|
'fetchTransactions': False,
|
|
102
129
|
'fetchTransfers': False,
|
|
130
|
+
'fetchUnderlyingAssets': False,
|
|
131
|
+
'fetchVolatilityHistory': False,
|
|
103
132
|
'fetchWithdrawAddresses': False,
|
|
104
133
|
'fetchWithdrawal': False,
|
|
105
134
|
'fetchWithdrawals': False,
|
|
106
135
|
'reduceMargin': False,
|
|
136
|
+
'repayCrossMargin': False,
|
|
137
|
+
'repayIsolatedMargin': False,
|
|
107
138
|
'setLeverage': False,
|
|
108
139
|
'setMargin': False,
|
|
109
140
|
'setMarginMode': False,
|
|
@@ -135,11 +166,12 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
135
166
|
'orders/{market}': 1,
|
|
136
167
|
'ticker/{market}': 1,
|
|
137
168
|
'history/{market}': 1,
|
|
169
|
+
'chart/{interval}/{market}/{timestamp}': 1,
|
|
170
|
+
'chart/{interval}/{market}': 1,
|
|
138
171
|
},
|
|
139
172
|
},
|
|
140
173
|
'private': {
|
|
141
174
|
'get': {
|
|
142
|
-
'account/balance': 1,
|
|
143
175
|
'account/balances': 1,
|
|
144
176
|
'account/order/{uuid}': 1,
|
|
145
177
|
},
|
|
@@ -149,6 +181,7 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
149
181
|
'order/cancel': 1,
|
|
150
182
|
'orders': 1,
|
|
151
183
|
'account/orders': 1,
|
|
184
|
+
'account/balance': 1,
|
|
152
185
|
},
|
|
153
186
|
},
|
|
154
187
|
},
|
|
@@ -163,14 +196,77 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
163
196
|
'Order not found': BadRequest,
|
|
164
197
|
},
|
|
165
198
|
},
|
|
199
|
+
'timeframes': {
|
|
200
|
+
'1m': '1m',
|
|
201
|
+
'15m': '15m',
|
|
202
|
+
'1h': '1h',
|
|
203
|
+
'4h': '4h',
|
|
204
|
+
'1d': '1d',
|
|
205
|
+
'1w': '1w',
|
|
206
|
+
},
|
|
166
207
|
'options': {
|
|
167
208
|
},
|
|
209
|
+
'features': {
|
|
210
|
+
'spot': {
|
|
211
|
+
'sandbox': False,
|
|
212
|
+
'createOrder': {
|
|
213
|
+
'marginMode': False,
|
|
214
|
+
'triggerPrice': False,
|
|
215
|
+
'triggerDirection': False,
|
|
216
|
+
'triggerPriceType': None,
|
|
217
|
+
'stopLossPrice': False,
|
|
218
|
+
'takeProfitPrice': False,
|
|
219
|
+
'attachedStopLossTakeProfit': None,
|
|
220
|
+
'timeInForce': {
|
|
221
|
+
'IOC': False,
|
|
222
|
+
'FOK': False,
|
|
223
|
+
'PO': False,
|
|
224
|
+
'GTD': False,
|
|
225
|
+
},
|
|
226
|
+
'hedged': False,
|
|
227
|
+
'trailing': False,
|
|
228
|
+
'leverage': False,
|
|
229
|
+
'marketBuyByCost': False,
|
|
230
|
+
'marketBuyRequiresPrice': False,
|
|
231
|
+
'selfTradePrevention': False,
|
|
232
|
+
'iceberg': False,
|
|
233
|
+
},
|
|
234
|
+
'createOrders': None,
|
|
235
|
+
'fetchMyTrades': None,
|
|
236
|
+
'fetchOrder': {
|
|
237
|
+
'marginMode': False,
|
|
238
|
+
'trigger': False,
|
|
239
|
+
'trailing': False,
|
|
240
|
+
'symbolRequired': False,
|
|
241
|
+
},
|
|
242
|
+
'fetchOpenOrders': {
|
|
243
|
+
'marginMode': False,
|
|
244
|
+
'limit': None,
|
|
245
|
+
'trigger': False,
|
|
246
|
+
'trailing': False,
|
|
247
|
+
'symbolRequired': False,
|
|
248
|
+
},
|
|
249
|
+
'fetchOrders': None,
|
|
250
|
+
'fetchClosedOrders': None,
|
|
251
|
+
'fetchOHLCV': None, # todo
|
|
252
|
+
},
|
|
253
|
+
'swap': {
|
|
254
|
+
'linear': None,
|
|
255
|
+
'inverse': None,
|
|
256
|
+
},
|
|
257
|
+
'future': {
|
|
258
|
+
'linear': None,
|
|
259
|
+
'inverse': None,
|
|
260
|
+
},
|
|
261
|
+
},
|
|
168
262
|
})
|
|
169
263
|
|
|
170
264
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
171
265
|
"""
|
|
172
266
|
retrieves data on all markets for bigone
|
|
173
|
-
|
|
267
|
+
|
|
268
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
|
|
269
|
+
|
|
174
270
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
175
271
|
:returns dict[]: an array of objects representing market data
|
|
176
272
|
"""
|
|
@@ -221,7 +317,7 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
221
317
|
'inverse': None,
|
|
222
318
|
'contractSize': None,
|
|
223
319
|
'taker': self.fees['trading']['taker'],
|
|
224
|
-
'maker': self.fees['trading']['
|
|
320
|
+
'maker': self.fees['trading']['maker'],
|
|
225
321
|
'expiry': None,
|
|
226
322
|
'expiryDatetime': None,
|
|
227
323
|
'strike': None,
|
|
@@ -281,18 +377,72 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
281
377
|
#
|
|
282
378
|
return self.parse_ticker(response, market)
|
|
283
379
|
|
|
380
|
+
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
381
|
+
"""
|
|
382
|
+
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
383
|
+
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
384
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
385
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
386
|
+
"""
|
|
387
|
+
self.load_markets()
|
|
388
|
+
symbols = self.market_symbols(symbols)
|
|
389
|
+
request: dict = {}
|
|
390
|
+
response = self.publicGetMarkets(self.extend(request, params))
|
|
391
|
+
#
|
|
392
|
+
# [
|
|
393
|
+
# {
|
|
394
|
+
# "AAVE-USDT": {
|
|
395
|
+
# "initialprice": "177.20325711",
|
|
396
|
+
# "price": "177.20325711",
|
|
397
|
+
# "high": "177.20325711",
|
|
398
|
+
# "low": "177.20325711",
|
|
399
|
+
# "volume": "0.00000000",
|
|
400
|
+
# "bid": "160.72768581",
|
|
401
|
+
# "ask": "348.99999999",
|
|
402
|
+
# "basename": "Aave"
|
|
403
|
+
# }
|
|
404
|
+
# },
|
|
405
|
+
# ...
|
|
406
|
+
# ]
|
|
407
|
+
#
|
|
408
|
+
result: dict = {}
|
|
409
|
+
for i in range(0, len(response)):
|
|
410
|
+
entry = response[i]
|
|
411
|
+
marketIdArray = list(entry.keys())
|
|
412
|
+
marketId = self.safe_string(marketIdArray, 0)
|
|
413
|
+
market = self.safe_market(marketId)
|
|
414
|
+
data = entry[marketId]
|
|
415
|
+
ticker = self.parse_ticker(data, market)
|
|
416
|
+
symbol = ticker['symbol']
|
|
417
|
+
result[symbol] = ticker
|
|
418
|
+
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
|
419
|
+
|
|
284
420
|
def parse_ticker(self, ticker, market: Market = None):
|
|
285
421
|
#
|
|
286
|
-
#
|
|
287
|
-
#
|
|
288
|
-
#
|
|
289
|
-
#
|
|
290
|
-
#
|
|
291
|
-
#
|
|
292
|
-
#
|
|
293
|
-
#
|
|
294
|
-
#
|
|
295
|
-
#
|
|
422
|
+
# fetchTicker:
|
|
423
|
+
# {
|
|
424
|
+
# "success":true,
|
|
425
|
+
# "initialprice":"0.02502002",
|
|
426
|
+
# "price":"0.02500000",
|
|
427
|
+
# "high":"0.03102001",
|
|
428
|
+
# "low":"0.02500000",
|
|
429
|
+
# "volume":"0.15549958",
|
|
430
|
+
# "bid":"0.02420000",
|
|
431
|
+
# "ask":"0.02625000"
|
|
432
|
+
# }
|
|
433
|
+
#
|
|
434
|
+
# fetchTickers:
|
|
435
|
+
# {
|
|
436
|
+
# "initialprice": "177.20325711",
|
|
437
|
+
# "price": "177.20325711",
|
|
438
|
+
# "high": "177.20325711",
|
|
439
|
+
# "low": "177.20325711",
|
|
440
|
+
# "volume": "0.00000000",
|
|
441
|
+
# "bid": "160.72768581",
|
|
442
|
+
# "ask": "348.99999999",
|
|
443
|
+
# "basename": "Aave"
|
|
444
|
+
# },
|
|
445
|
+
# ...
|
|
296
446
|
#
|
|
297
447
|
return self.safe_ticker({
|
|
298
448
|
'symbol': self.safe_string(market, 'symbol'),
|
|
@@ -305,9 +455,9 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
305
455
|
'ask': self.safe_string(ticker, 'ask'),
|
|
306
456
|
'askVolume': None,
|
|
307
457
|
'vwap': None,
|
|
308
|
-
'open': self.safe_string(ticker, '
|
|
309
|
-
'close':
|
|
310
|
-
'last':
|
|
458
|
+
'open': self.safe_string(ticker, 'initialprice'),
|
|
459
|
+
'close': self.safe_string(ticker, 'price'),
|
|
460
|
+
'last': self.safe_string(ticker, 'price'),
|
|
311
461
|
'previousClose': None,
|
|
312
462
|
'change': None,
|
|
313
463
|
'percentage': None,
|
|
@@ -317,6 +467,65 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
317
467
|
'info': ticker,
|
|
318
468
|
}, market)
|
|
319
469
|
|
|
470
|
+
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
471
|
+
"""
|
|
472
|
+
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
473
|
+
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
474
|
+
:param str timeframe: the length of time each candle represents
|
|
475
|
+
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
476
|
+
:param int [limit]: the maximum amount of candles to fetch
|
|
477
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
478
|
+
:param int [params.until]: timestamp of the latest candle in ms
|
|
479
|
+
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
480
|
+
"""
|
|
481
|
+
self.load_markets()
|
|
482
|
+
market = self.market(symbol)
|
|
483
|
+
request: dict = {
|
|
484
|
+
'market': market['id'],
|
|
485
|
+
'interval': self.safe_string(self.timeframes, timeframe, timeframe),
|
|
486
|
+
}
|
|
487
|
+
response = None
|
|
488
|
+
until = self.safe_integer(params, 'until')
|
|
489
|
+
if until is not None:
|
|
490
|
+
params = self.omit(params, 'until')
|
|
491
|
+
request['timestamp'] = self.parse_to_int(until / 1000)
|
|
492
|
+
response = self.publicGetChartIntervalMarketTimestamp(self.extend(request, params))
|
|
493
|
+
else:
|
|
494
|
+
response = self.publicGetChartIntervalMarket(self.extend(request, params))
|
|
495
|
+
#
|
|
496
|
+
# [
|
|
497
|
+
# [
|
|
498
|
+
# 1729130040,
|
|
499
|
+
# 67581.47235999,
|
|
500
|
+
# 67581.47235999,
|
|
501
|
+
# 67338.01,
|
|
502
|
+
# 67338.01,
|
|
503
|
+
# 6.72168016
|
|
504
|
+
# ],
|
|
505
|
+
# ]
|
|
506
|
+
#
|
|
507
|
+
return self.parse_ohlcvs(response, market, timeframe, since, limit)
|
|
508
|
+
|
|
509
|
+
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
|
510
|
+
#
|
|
511
|
+
# [
|
|
512
|
+
# 1729130040,
|
|
513
|
+
# 67581.47235999,
|
|
514
|
+
# 67581.47235999,
|
|
515
|
+
# 67338.01,
|
|
516
|
+
# 67338.01,
|
|
517
|
+
# 6.72168016
|
|
518
|
+
# ]
|
|
519
|
+
#
|
|
520
|
+
return [
|
|
521
|
+
self.safe_timestamp(ohlcv, 0),
|
|
522
|
+
self.safe_number(ohlcv, 1),
|
|
523
|
+
self.safe_number(ohlcv, 2),
|
|
524
|
+
self.safe_number(ohlcv, 3),
|
|
525
|
+
self.safe_number(ohlcv, 4),
|
|
526
|
+
self.safe_number(ohlcv, 5),
|
|
527
|
+
]
|
|
528
|
+
|
|
320
529
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}):
|
|
321
530
|
"""
|
|
322
531
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
@@ -348,6 +557,7 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
348
557
|
'asks': rawAsks,
|
|
349
558
|
}
|
|
350
559
|
orderbook = self.parse_order_book(rawOrderbook, symbol)
|
|
560
|
+
orderbook['nonce'] = self.safe_integer(response, 's')
|
|
351
561
|
return orderbook
|
|
352
562
|
|
|
353
563
|
def parse_bids_asks(self, bidasks, priceKey: IndexType = 0, amountKey: IndexType = 1, countOrIdKey: IndexType = 2):
|
|
@@ -411,10 +621,26 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
411
621
|
"""
|
|
412
622
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
413
623
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
624
|
+
:param str [params.currency]: currency to fetch the balance for
|
|
414
625
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
415
626
|
"""
|
|
416
627
|
self.load_markets()
|
|
417
|
-
response =
|
|
628
|
+
response = None
|
|
629
|
+
currency = self.safe_string(params, 'currency')
|
|
630
|
+
if currency is not None:
|
|
631
|
+
response = self.privatePostAccountBalance(params)
|
|
632
|
+
singleCurrencyresult: dict = {
|
|
633
|
+
'info': response,
|
|
634
|
+
}
|
|
635
|
+
code = self.safe_currency_code(currency)
|
|
636
|
+
account = {
|
|
637
|
+
'total': self.safe_number(response, 'balance'),
|
|
638
|
+
'free': self.safe_number(response, 'available'),
|
|
639
|
+
}
|
|
640
|
+
singleCurrencyresult[code] = account
|
|
641
|
+
return self.safe_balance(singleCurrencyresult)
|
|
642
|
+
else:
|
|
643
|
+
response = self.privateGetAccountBalances(params)
|
|
418
644
|
result = self.safe_dict(response, 'balances', {})
|
|
419
645
|
return self.parse_balance(result)
|
|
420
646
|
|
|
@@ -441,11 +667,14 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
441
667
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
442
668
|
"""
|
|
443
669
|
create a trade order
|
|
670
|
+
|
|
671
|
+
https://tradeogre.com/help/api#:~:text=u%20%27%7Bpublic%7D%3A%7Bprivate%7D%27-,Submit%20Buy%20Order
|
|
672
|
+
|
|
444
673
|
:param str symbol: unified symbol of the market to create an order in
|
|
445
674
|
:param str type: must be 'limit'
|
|
446
675
|
:param str side: 'buy' or 'sell'
|
|
447
676
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
448
|
-
:param float price: the price at which the order is to be
|
|
677
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency
|
|
449
678
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
450
679
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
451
680
|
"""
|
|
@@ -454,11 +683,11 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
454
683
|
if type == 'market':
|
|
455
684
|
raise BadRequest(self.id + ' createOrder does not support market orders')
|
|
456
685
|
if price is None:
|
|
457
|
-
raise ArgumentsRequired(self.id + ' createOrder requires a
|
|
686
|
+
raise ArgumentsRequired(self.id + ' createOrder requires a price parameter')
|
|
458
687
|
request: dict = {
|
|
459
688
|
'market': market['id'],
|
|
460
|
-
'quantity': self.
|
|
461
|
-
'price': self.
|
|
689
|
+
'quantity': self.amount_to_precision(symbol, amount),
|
|
690
|
+
'price': self.price_to_precision(symbol, price),
|
|
462
691
|
}
|
|
463
692
|
response = None
|
|
464
693
|
if side == 'buy':
|
|
@@ -498,6 +727,9 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
498
727
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
499
728
|
"""
|
|
500
729
|
fetch all unfilled currently open orders
|
|
730
|
+
|
|
731
|
+
https://tradeogre.com/help/api#:~:text=%7B%22success%22%3Atrue%7D-,Get%20Orders,-Method%20(POST)
|
|
732
|
+
|
|
501
733
|
:param str symbol: unified market symbol of the market orders were made in
|
|
502
734
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
503
735
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -517,7 +749,10 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
517
749
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
518
750
|
"""
|
|
519
751
|
fetches information on an order made by the user
|
|
520
|
-
|
|
752
|
+
|
|
753
|
+
https://tradeogre.com/help/api#:~:text=market%22%3A%22XMR%2DBTC%22%7D%5D-,Get%20Order,-Method%20(GET)
|
|
754
|
+
|
|
755
|
+
:param str id: order id
|
|
521
756
|
:param str symbol: unified symbol of the market the order was made in
|
|
522
757
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
523
758
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -557,12 +792,12 @@ class tradeogre(Exchange, ImplicitAPI):
|
|
|
557
792
|
'postOnly': None,
|
|
558
793
|
'side': self.safe_string(order, 'type'),
|
|
559
794
|
'price': self.safe_string(order, 'price'),
|
|
560
|
-
'
|
|
561
|
-
'amount':
|
|
795
|
+
'triggerPrice': None,
|
|
796
|
+
'amount': None,
|
|
562
797
|
'cost': None,
|
|
563
798
|
'average': None,
|
|
564
799
|
'filled': self.safe_string(order, 'fulfilled'),
|
|
565
|
-
'remaining':
|
|
800
|
+
'remaining': self.safe_string(order, 'quantity'),
|
|
566
801
|
'status': None,
|
|
567
802
|
'fee': {
|
|
568
803
|
'currency': None,
|
ccxt/twox.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.twox import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Market, Strings, Ticker, Tickers
|
|
8
|
+
from ccxt.base.types import Any, Market, Strings, Ticker, Tickers
|
|
9
9
|
from typing import List
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class twox(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(twox, self).describe(), {
|
|
16
16
|
'id': 'twox',
|
|
17
17
|
'name': 'Twox',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -111,10 +111,10 @@ class twox(Exchange, ImplicitAPI):
|
|
|
111
111
|
},
|
|
112
112
|
})
|
|
113
113
|
|
|
114
|
-
def fetch_markets(self,
|
|
114
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
|
115
115
|
"""
|
|
116
116
|
retrieves data on all markets for twox
|
|
117
|
-
|
|
117
|
+
https://api.twox.ir/api/currencies
|
|
118
118
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
119
119
|
:returns dict[]: an array of objects representing market data
|
|
120
120
|
"""
|
|
@@ -224,7 +224,7 @@ class twox(Exchange, ImplicitAPI):
|
|
|
224
224
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
225
225
|
"""
|
|
226
226
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
227
|
-
|
|
227
|
+
https://api.twox.ir/api/currencies
|
|
228
228
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
229
229
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
230
230
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -252,7 +252,7 @@ class twox(Exchange, ImplicitAPI):
|
|
|
252
252
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
253
253
|
"""
|
|
254
254
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
255
|
-
|
|
255
|
+
https://api.twox.ir/api/currencies
|
|
256
256
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
257
257
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
258
258
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
ccxt/ubitex.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.ubitex import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Int, Market, OrderBook, Strings, Ticker, Tickers
|
|
8
|
+
from ccxt.base.types import Any, Int, Market, OrderBook, Strings, Ticker, Tickers
|
|
9
9
|
from typing import List
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class ubitex(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(ubitex, self).describe(), {
|
|
16
16
|
'id': 'ubitex',
|
|
17
17
|
'name': 'Ubitex',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -120,10 +120,10 @@ class ubitex(Exchange, ImplicitAPI):
|
|
|
120
120
|
},
|
|
121
121
|
})
|
|
122
122
|
|
|
123
|
-
def fetch_markets(self,
|
|
123
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
|
124
124
|
"""
|
|
125
125
|
retrieves data on all markets for ubitex
|
|
126
|
-
|
|
126
|
+
https://ubitex.io/
|
|
127
127
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
128
128
|
:returns dict[]: an array of objects representing market data
|
|
129
129
|
"""
|
|
@@ -228,7 +228,7 @@ class ubitex(Exchange, ImplicitAPI):
|
|
|
228
228
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
229
229
|
"""
|
|
230
230
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
231
|
-
|
|
231
|
+
https://ubitex.io/
|
|
232
232
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
233
233
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
234
234
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -247,7 +247,7 @@ class ubitex(Exchange, ImplicitAPI):
|
|
|
247
247
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
248
248
|
"""
|
|
249
249
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
250
|
-
|
|
250
|
+
https://ubitex.io/
|
|
251
251
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
252
252
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
253
253
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -333,7 +333,7 @@ class ubitex(Exchange, ImplicitAPI):
|
|
|
333
333
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = 100, params={}) -> List[list]:
|
|
334
334
|
"""
|
|
335
335
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
336
|
-
|
|
336
|
+
https://ubitex.io/
|
|
337
337
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
338
338
|
:param str timeframe: the length of time each candle represents
|
|
339
339
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -381,7 +381,7 @@ class ubitex(Exchange, ImplicitAPI):
|
|
|
381
381
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
382
382
|
"""
|
|
383
383
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
|
384
|
-
|
|
384
|
+
https://ubitex.io/
|
|
385
385
|
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
|
|
386
386
|
:param int [limit]: max number of entries per orderbook to return, default is None
|
|
387
387
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|