diff --git a/data/apps/tests/get_positions.cfg b/data/apps/tests/get_positions.cfg index 0295244..b8d66ce 100644 --- a/data/apps/tests/get_positions.cfg +++ b/data/apps/tests/get_positions.cfg @@ -21,6 +21,15 @@ "read_only": "ALPACA_SANDBOX" } } + , "GEMINI-SNDBX": { + "accounting": { + "enabled": true + , "streaming": false + } + , "credentials_key": { + "read_only": "GEMINI_SANDBOX" + } + } } , "refdata": @inc=http://${CONFIG_SVC_HOST}:6789/refdata/refdata , "redis": @inc=http://${CONFIG_SVC_HOST}:6789/apps/common/redis diff --git a/data/refdata/exchange_instruments.cfg b/data/refdata/exchange_instruments.cfg index 7e9656d..0dc886a 100644 --- a/data/refdata/exchange_instruments.cfg +++ b/data/refdata/exchange_instruments.cfg @@ -409,405 +409,26 @@ # } # }, } - }, - #******************************************************************************* - #******************************************************************************* - #******************************************************************************* - # - # ------------------------ A - # - # , "ASD-SPOT": { - # "aliases": [ - # "ASD-MD" - # ] - # , "instruments": { - # "PAIR-ASD-USDT": { - # "md_symbol": "ASD/USDT" - # , "trade_symbol": "ASD/USDT" - # } - # , "PAIR-BTC-USDT": { - # "md_symbol": "BTC/USDT" - # , "trade_symbol": "BTC/USDT" - # } - # , "PAIR-ETH-USDT": { - # "md_symbol": "ETH/USDT" - # , "trade_symbol": "ETH/USDT" - # } - # } - # } - # # - # # ------------------------ B - # # - # , "BITSTAMP": { - # "aliases": [ - # "BITSTAMP-MD" - # ] - # , "instruments": { - # "PAIR-EUR-USD": { - # "md_symbol": "eurusd" - # , "trade_symbol": "eurusd" - # } - # , "PAIR-XRP-EUR": { - # "md_symbol": "xrpeur" - # , "trade_symbol": "xrpeur" - # } - # , "PAIR-XRP-USD": { - # "md_symbol": "xrpusd" - # , "trade_symbol": "xrpusd" - # } - # } - # } - # , "BNB_US": { - # "aliases": [ - # "BNB_US-MD" - # ] - # , "instruments": { - # "PAIR-BTC-USD": { - # "md_symbol": "BTCUSD" - # , "trade_symbol": "BTCUSD" - # } - # , "PAIR-USDT-USD": { - # "md_symbol": "USDTUSD" - # , "trade_symbol": "USDTUSD" - # } - # , "PAIR-XRP-USD": { - # "md_symbol": "XRPUSD" - # , "trade_symbol": "XRPUSD" - # } - # } - # } - # , "BNBFUT-COIN": { - # "aliases": [ - # "BNBFUT-COIN-MD" - # , "BNBFUT-COIN-TST" - # ] - # , "instruments": { - # "PERPC-BTC-USD": { - # "md_symbol": "BTCUSD_PERP" - # , "trade_symbol": "BTCUSD_PERP" - # } - # , "PERPC-DOGE-USD": { - # "md_symbol": "DOGEUSD_PERP" - # , "trade_symbol": "DOGEUSD_PERP" - # } - # , "PERPC-ETH-USD": { - # "md_symbol": "ETHUSD_PERP" - # , "trade_symbol": "ETHUSD_PERP" - # } - # , "PERPC-LINK-USD": { - # "md_symbol": "LINKUSD_PERP" - # , "trade_symbol": "LINKUSD_PERP" - # } - # , "PERPC-LTC-USD": { - # "md_symbol": "LTCUSD_PERP" - # , "trade_symbol": "LTCUSD_PERP" - # } - # , "PERPC-MATIC-USD": { - # "md_symbol": "MATICUSD_PERP", - # "trade_symbol": "MATICUSD_PERP" - # } - # } - # } - # #****************************************************************** - # #******** C O M M A S (here) - # #****************************************************************** - # , "BTSO": { - # "aliases": [ - # "BTSO-MD", - # "BTSO-BKTST", - # "BTSO-TST" - # ], - # "instruments": { - # "PAIR-BTC-MXN": { - # "md_symbol": "btc_mxn", - # "trade_symbol": "btc_mxn" - # }, - # "PAIR-XRP-MXN": { - # "md_symbol": "xrp_mxn", - # "trade_symbol": "xrp_mxn" - # }, - # "PAIR-XRP-USD": { - # "md_symbol": "xrp_usd", - # "trade_symbol": "xrp_usd" - # }, - # "PAIR-USD-MXN": { - # "md_symbol": "usd_mxn", - # "trade_symbol": "usd_mxn" - # } - # } - # } - # , "BYBIT": { - # "aliases": [ - # "BYBIT-MD" - # ], - # "instruments": { - # "PAIR-GENE-USDT": { - # "md_symbol": "GENEUSDT", - # "trade_symbol": "GENEUSDT" - # }, - # "PAIR-USDC-USDT": { - # "md_symbol": "USDCUSDT", - # "trade_symbol": "USDCUSDT" - # }, - # "PAIR-ETH-USDT": { - # "md_symbol": "ETHUSDT", - # "trade_symbol": "ETHUSDT" - # }, - # "PAIR-BTC-USDT": { - # "md_symbol": "BTCUSDT", - # "trade_symbol": "BTCUSDT" - # }, - # "PAIR-MATIC-USDT": { - # "md_symbol": "MATICUSDT", - # "trade_symbol": "MATICUSDT" - # }, - # "PAIR-LINK-USDT": { - # "md_symbol": "LINKUSDT", - # "trade_symbol": "LINKUSDT" - # }, - # "PAIR-DOGE-USDT": { - # "md_symbol": "DOGEUSDT", - # "trade_symbol": "DOGEUSDT" - # }, - # } - # } - # , "BYBITFUT": { - # "aliases": [ - # "BYBITFUT-MD" - # ], - # "instruments": { - # "PERP-BTC-USDT": { - # "md_symbol": "BTCUSDT", - # "trade_symbol": "BTCUSDT" - # }, - # "PERP-ETH-USDT": { - # "md_symbol": "ETHUSDT", - # "trade_symbol": "ETHUSDT" - # }, - # "PERP-MATIC-USDT": { - # "md_symbol": "MATICUSDT", - # "trade_symbol": "MATICUSDT" - # }, - # "PERP-LINK-USDT": { - # "md_symbol": "LINKUSDT", - # "trade_symbol": "LINKUSDT" - # }, - # "PERP-LTC-USDT": { - # "md_symbol": "LTCUSDT", - # "trade_symbol": "LTCUSDT" - # }, - # "PERP-DOGE-USDT": { - # "md_symbol": "DOGEUSDT", - # "trade_symbol": "DOGEUSDT" - # }, - # }, - # } - # # - # # ------------------------ C - # # - # , "COINBS_INTL": { - # "aliases": [ - # "COINBS_INTL-MD", "COINBS_INTL-SNDBX", "COINBS_INTL-SNDBX-MD" - # ], - # "instruments": { - # "PERP-BTC-USDC": { - # "md_symbol": "BTC-PERP", - # "trade_symbol": "BTC-PERP" - # }, - # "PERP-ETH-USDC": { - # "md_symbol": "ETH-PERP", - # "trade_symbol": "ETH-PERP" - # }, - # } - # } - # , "COINEX": { - # "aliases": [ - # "COINEX-MD" - # ], - # "instruments": { - # "PAIR-GENE-USDT": { - # "md_symbol": "GENEUSDT", - # "trade_symbol": "GENEUSDT" - # }, - # } - # } - # # - # # ------------------------ D - # # - # , "DEXALOT": { - # "aliases": [ - # "DEXALOT-MD" - # ], - # "instruments": { - # "PAIR-AVAX-USDT": { - # "md_symbol": "AVAX/USDt", - # "trade_symbol": "AVAX/USDt" - # }, - # } - # } - # # - # # ------------------------ F - # # - # , "FIREFLY": { - # "aliases": [ - # "FIREFLY-MD" - # ], - # "instruments": { - # "PERP-ETH-USD": { - # "md_symbol": "ETH-PERP", - # "trade_symbol": "ETH-PERP" - # }, - # "PERP-BTC-USD": { - # "md_symbol": "BTC-PERP", - # "trade_symbol": "BTC-PERP" - # }, - # }, - # } - # ,"FIXER": { - # "aliases": [ - # "FIXER-MD" - # ], - # "instruments": { - # "PAIR-EUR-USD": { - # "md_symbol": "EUR-USD", - # "trade_symbol": "EUR-USD", - # }, - # "PAIR-USD-MXN": { - # "md_symbol": "USD-MXN", - # "trade_symbol": "USD-MXN", - # }, - # "PAIR-USD-JPY": { - # "md_symbol": "USD-JPY", - # "trade_symbol": "USD-JPY", - # }, - # } - # } - # # - # # ------------------------ G - # # - # , "GEMINI": { - # "aliases": [ - # "GEMINI-MD", "GEMINI-SNDBX", "GEMINI-SNDBX-NOFIX" - # ], - # "instruments": { - # "PERP-BTC-GUSD": { - # "md_symbol": "BTCGUSDPERP", - # "trade_symbol": "BTCGUSDPERP" - # "specifics": { - # "quote_increment": 0.5, - # } - # }, - # } - # } - # # - # # ------------------------ I - # # - # , "ITBT": { - # "aliases": [ - # "ITBT-MD", - # "ITBT-BKTST" - # ], - # "instruments": { - # "PAIR-BTC-USD": { - # "md_symbol": "BTCUSD", - # "trade_symbol": "BTCUSD" - # }, - # "PAIR-ETH-USD": { - # "md_symbol": "ETHUSD", - # "trade_symbol": "ETHUSD" - # }, - # "PAIR-MATIC-USD": { - # "md_symbol": "MATICUSD", - # "trade_symbol": "MATICUSD" - # }, - # "PAIR-SOL-USD": { - # "md_symbol": "SOLUSD", - # "trade_symbol": "SOLUSD" - # }, - # "PAIR-BCH-USD": { - # "md_symbol": "BCHUSD", - # "trade_symbol": "BCHUSD" - # }, - # "PAIR-LTC-USD": { - # "md_symbol": "LTCUSD", - # "trade_symbol": "LTCUSD" - # }, - # "PAIR-UNI-USD": { - # "md_symbol": "UNIUSD", - # "trade_symbol": "UNIUSD" - # }, - # "PAIR-AAVE-USD": { - # "md_symbol": "AAVEUSD", - # "trade_symbol": "AAVEUSD" - # }, - # "PAIR-LINK-USD": { - # "md_symbol": "LINKUSD", - # "trade_symbol": "LINKUSD" - # }, - # } - # } - # # - # # ------------------------ S - # # - # , "SHIFT": { - # "aliases": [ - # "SHIFT-MD" - # ], - # "instruments": { - # "PAIR-EUR-USD": { - # "md_symbol": "EUR/USD", - # "trade_symbol": "EUR/USD", - # }, - # "PAIR-EUR-GBP": { - # "md_symbol": "EUR/GBP", - # "trade_symbol": "EUR/GBP", - # }, - # "PAIR-GBP-USD": { - # "md_symbol": "GBP/USD", - # "trade_symbol": "GBP/USD", - # }, - # "PAIR-USD-MXN": { - # "md_symbol": "USD/MXN", - # "trade_symbol": "USD/MXN", - # }, - # "PAIR-USD-JPY": { - # "md_symbol": "USD/JPY", - # "trade_symbol": "USD/JPY", - # }, - # } - # } - # # - # # ------------------------ X - # # - # , "XRPDEX": { - # "aliases": [ - # "XRPDEX-MD" - # ], - # "instruments": { - # "PAIR-EUR-USD": { - # "md_symbol": "EUR-USD", - # "trade_symbol": "EUR-USD", - # "specifics": { - # "base_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - # "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" - # } - # }, - # "PAIR-XRP-EUR": { - # "md_symbol": "XRP-EUR", - # "trade_symbol": "XRP-EUR", - # "specifics": { - # "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - # } - # }, - # "PAIR-XRP-USD": { - # "md_symbol": "XRP-USD", - # "trade_symbol": "XRP-USD", - # "specifics": { - # "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - # } - # } - # } - # } + } + , "KRAKEN": { + "instruments": { + # --- PAIRs + "PAIR-BTC-USD": { + "md_symbol": "BTC/USD" + , "trade_symbol": "BTC/USD" + , "quantity_precision": "0.00001" + } + } + } , "OKX": { + "instruments": { + # --- PAIRs + "PAIR-BTC-USDT": { + "md_symbol": "BTC-USDT" + , "trade_symbol": "BTC-USDT" + , "quantity_precision": "0.00001" + } + } + } } diff --git a/data/refdata/exchanges.cfg b/data/refdata/exchanges.cfg index 40b5fcf..56689ed 100644 --- a/data/refdata/exchanges.cfg +++ b/data/refdata/exchanges.cfg @@ -318,6 +318,7 @@ } # ---------------------------- G , "GEMINI": { + # https://docs.gemini.com/rest-api "exchange_id": "GEMINI" , "name": "Gemini" , "type": "SPOT" @@ -331,8 +332,70 @@ , "ws_url": ["WSS" , "wss://api.gemini.com/v2/marketdata"] } - } + # , "REST": { + # "open_orders_url": ["POST", "https://api.gemini.com/v1/orders"] + # , "order_status_url": ["POST", "https://api.gemini.com/v1/order/status"] + # , "cancel_all_url": ["POST", "https://api.gemini.com/v1/order/cancel/all"] + # , "balances_url": ["POST", "https://api.gemini.com/v1/balances"] + # , "positions_url": ["POST", "https://api.gemini.com/v1/positions"] + # , "trades_url": ["POST", "https://api.gemini.com/v1/mytrades"] + # , "symbol_url": ["GET", "https://api.gemini.com/v1/symbols/details"] + # , "margin_url": ["POST", "https://api.gemini.com/v1/margin"] + # } + } + , "GEMINI-SNDBX": { + # https://docs.gemini.com/rest-api + "exchange_id": "GEMINI" + , "name": "Gemini" + , "type": "SPOT" + + , "module" : "cvttpy.oms.exchange" + , "connector_class" : "MdOnlyExchangeConnector" + + , "mktdata" : { + "class": "cvttpy.exchanges.gemini.mkt_data.GeminiMdFeed" + , "reconnect_secs": 1 + + , "ws_url": ["WSS" , "wss://api.sandbox.gemini.com/v2/marketdata"] + } + , "order_entry": { + "REST": { + "order_status_url": ["POST", "https://api.sandbox.gemini.com/v1/order/status"] + , "cancel_all_url": ["POST", "https://api.sandbox.gemini.com/v1/order/cancel/all"] + } + + + } + , "accounting": { + "class": "cvttpy.exchanges.gemini.account.GeminiExchAccounting" + , "REST": { + "open_orders_url": ["POST", "https://api.sandbox.gemini.com/v1/orders"] + , "order_status_url": ["POST", "https://api.sandbox.gemini.com/v1/order/status"] + , "balances_url": ["POST", "https://api.sandbox.gemini.com/v1/balances"] + , "positions_url": ["POST", "https://api.sandbox.gemini.com/v1/positions"] + , "trades_url": ["POST", "https://api.sandbox.gemini.com/v1/mytrades"] + , "symbol_url": ["GET", "https://api.sandbox.gemini.com/v1/symbols/details"] + , "margin_url": ["POST", "https://api.sandbox.gemini.com/v1/margin"] + } + } + } + # ---------------------------- K + , "KRAKEN": { + "exchange_id": "KRAKEN" + , "name": "KRAKEN" + , "type": "SPOT" + + , "mktdata" : { + "class": "cvttpy.exchanges.kraken.mkt_data.KrakenMdFeed" + , "max_connections": 10 + , "reconnect_secs": 2.0 + + + , "ws_url": ["WSS", "wss://ws.kraken.com/v2"] + , "REST": {} + } + } # ---------------------------- M , "MD_PORTAL_ALPACA_02": { "exchange_id": "MD_PORTAL" @@ -367,5 +430,21 @@ , "channel_prefix": "MD_COINBS_01" } } + # ---------------------------- O + , "OKX": { + "exchange_id": "OKX" + , "name": "OKX" + , "type": "SPOT" + + , "mktdata" : { + "class": "cvttpy.exchanges.okx.mkt_data.OkxMultiWsFeed" + , "max_connections": 10 + , "reconnect_secs": 2.0 + + + , "ws_url": ["WSS", "wss://ws.okx.com:8443/ws/v5/public"] + , "REST": {} + } + } }