config_service/data/refdata/exchanges.cfg
Cryptoval Trading Technologies 31a3a06f34 .
2024-08-23 00:03:05 +00:00

451 lines
18 KiB
INI

@var DatabaseHost=cryptoval1.cvtt.vpn
# @var DatabaseHost=cryptoval1.sheynin.home
{
"__DUMMY__": {}
# ----------------------------- A
, "ALPACA_SNDBX": {
# https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA"
, "name": "Alpaca Trading"
, "type": "EQUITY"
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.connector.AlpacaOrderEntryClient"
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://paper-api.alpaca.markets/v2/orders"]
, "order_status": ["GET", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_order_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_all_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders"]
}
, "ws_url": ["WSS", "wss://paper-api.alpaca.markets/stream"]
}
, "mktdata" : {
"class": "cvttpy.exchanges.alpaca.mkt_data.AlpacaStockFeed"
, "reconnect_secs": 2.0
# , "ws_url": ["WSS", "wss://stream.data.alpaca.markets/v2/sip"]
, "ws_url": ["WSS", "wss://stream.data.alpaca.markets/v2/iex"]
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
, "hist_md_quotes": ["GET", "https://data.alpaca.markets/v2/stocks/quotes"]
, "hist_md_trades": ["GET", "https://data.alpaca.markets/v2/stocks/trades"]
, "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"]
, "assets": ["GET", "https://paper-api.alpaca.markets/v2/assets"]
# , "assets": ["GET", "https://data.alpaca.markets/v2/assets"]
}
}
, "accounting": {
"class": "cvttpy.exchanges.alpaca.account.AlpacaAccounting"
, "REST": {
"balances_url": ["GET", "https://paper-api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://paper-api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://paper-api.alpaca.markets/v2/account/activities/FILL"]
}
}
}
, "ALPACA_SNDBX-MDPORTAL": {
# https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA"
, "name": "Alpaca Trading"
, "type": "EQUITY"
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.connector.AlpacaOrderEntryClient"
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://paper-api.alpaca.markets/v2/orders"]
, "order_status": ["GET", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_order_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_all_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders"]
}
, "ws_url": ["WSS", "wss://paper-api.alpaca.markets/stream"]
}
, "mktdata" : {
"class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed"
, "portal_name": "MD_PORTAL_ALPACA_SNDBX"
# allow direct REST requests
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
, "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"]
, "hist_md_quotes": ["GET", "https://data.alpaca.markets/v2/stocks/quotes"]
, "hist_md_trades": ["GET", "https://data.alpaca.markets/v2/stocks/trades"]
}
}
, "accounting": {
"class": "cvttpy.exchanges.alpaca.account.AlpacaAccounting"
, "REST": {
"balances_url": ["GET", "https://paper-api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://paper-api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://paper-api.alpaca.markets/v2/account/activities/FILL"]
}
}
}
, "ALPACA-MD-REST-ONLY": {
# https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA"
, "name": "Alpaca Trading"
, "type": "EQUITY"
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
}
, "mktdata" : {
"class": "cvttpy.exchanges.alpaca.mkt_data.AlpacaStockFeed"
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
, "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"]
, "hist_md_quotes": ["GET", "https://data.alpaca.markets/v2/stocks/quotes"]
, "hist_md_trades": ["GET", "https://data.alpaca.markets/v2/stocks/trades"]
}
}
, "accounting": {
}
}
, "ALPACA_SNDBX-MDP-03": {
# https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA"
, "name": "Alpaca Trading"
, "type": "EQUITY"
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.connector.AlpacaOrderEntryClient"
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://paper-api.alpaca.markets/v2/orders"]
, "order_status": ["GET", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_order_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_all_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders"]
}
, "ws_url": ["WSS", "wss://paper-api.alpaca.markets/stream"]
}
, "mktdata" : {
"class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed"
, "portal_name": "MD_PORTAL_ALPACA_03"
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
, "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"]
, "hist_md_quotes": ["GET", "https://data.alpaca.markets/v2/stocks/quotes"]
, "hist_md_trades": ["GET", "https://data.alpaca.markets/v2/stocks/trades"]
}
}
, "accounting": {
"class": "cvttpy.exchanges.alpaca.account.AlpacaAccounting"
, "REST": {
"balances_url": ["GET", "https://paper-api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://paper-api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://paper-api.alpaca.markets/v2/account/activities/FILL"]
}
}
}
# ---------------------------- B
, "BITSTAMP": {
"exchange_id": "BITSTAMP"
, "name": "Bitstamp"
, "type": "SPOT"
, "module" : "cvttpy.oms.exchange"
, "connector_class" : "MdOnlyExchangeConnector"
, "mktdata" : {
"class": "cvttpy.exchanges.bitstamp.mkt_data.BitstampMdFeed"
, "reconnect_secs": 2
, "ws_url": ["WSS", "wss://ws.bitstamp.net"]
}
}
, "BNBSPOT": {
"exchange_id": "BNBSPOT"
, "name": "Binance Spot"
, "type": "SPOT"
, "mktdata" : {
"class": "cvttpy.exchanges.binance.spot.mkt_data.BnbSpotMultiWsFeed"
, "max_connections": 10
, "reconnect_secs": 2.0
, "ws_url": ["WSS", "wss://stream.binance.com/ws"]
, "REST": {
# https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
}
}
, "BNBFUT": {
"exchange_id": "BNBFUT"
, "name": "Binance Futures USD-M"
, "type": "FUTURES"
, "mktdata" : {
"class": "cvttpy.exchanges.binance.futures.mkt_data.BnbFutMultiWsFeed"
, "max_connections": 10
, "reconnect_secs": 2.0
, "ws_url": ["WSS", "wss://fstream.binance.com/ws"]
, "REST": {
# https://fapi.binance.com/fapi/v1/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://fapi.binance.com/fapi/v1/depth"],
}
}
}
, "BNBFUT-2": {
"exchange_id": "BNBFUT"
, "name": "Binance Futures USD-M"
, "type": "FUTURES"
, "mktdata" : {
"class": "cvttpy.exchanges.binance.futures.mkt_data.BinanceFuturesFeedWs2"
, "max_connections": 10
, "reconnect_secs": 2.0
, "ws_timeout_secs": 0.0001
, "ws_url": ["WSS", "wss://fstream.binance.com/ws"]
}
}
, "BNBFUT-BT-FEED": {
"exchange_id": "BNBFUT"
, "name": "Binance Futures USD-M"
, "type": "FUTURES"
, "mktdata" : {
"class": "cvttpy.exchanges.book_top_feed.mkt_data.BookTopFeedClient"
, "mmap_file": "/tmp/BNBFUT.MD.dat"
}
}
, "BNBSPOT_US": {
"exchange_id": "BNBSPOT_US"
, "name": "Binance.US"
, "type": "SPOT"
, "mktdata" : {
"class": "cvttpy.exchanges.binance.spot.mkt_data.BinanceSpotFeed"
, "reconnect_secs": 10
, "ws_url": ["WSS", "wss://stream.binance.us:9443/ws"]
, "REST": {
# https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
}
}
, "COINBASE_AT": {
"exchange_id": "COINBASE"
, "name": "Coinbase Advanced Trade"
, "type": "SPOT"
, "order_entry": {
"class": "cvttpy.exchanges.coinbase.spot.connector.CoinbaseSpotRestExchConnector"
, "REST": {
"open_orders_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/orders/historical/batch"]
, "submit_order_url": ["POST", "https://api.coinbase.com/api/v3/brokerage/orders"]
, "cancel_order_url": ["POST", "https://api.coinbase.com/api/v3/brokerage/orders/batch_cancel"]
}
, "ws_url": ["WSS", "wss://advanced-trade-ws.coinbase.com"]
}
, "accounting": {
"class": "cvttpy.exchanges.coinbase.spot.account.CoinbaseSpotAccounting"
, "REST": {
"balances_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/accounts"]
, "get_trades_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/orders/historical/fills"]
, "get_transactions_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/transaction_summary"]
}
}
, "mktdata" : {
"class": "cvttpy.exchanges.coinbase.spot.mkt_data.CoinbaseMultiWsFeed"
, "reconnect_secs": 2
, "max_connections": 10
, "price_throttle": true
, "ws_url": ["WSS", "wss://ws-feed.exchange.coinbase.com"]
}
}
, "COINBASE_AT-MDPORTAL": {
"exchange_id": "COINBASE"
, "name": "Coinbase Advanced Trade"
, "type": "SPOT"
, "order_entry": {
"class": "cvttpy.exchanges.coinbase.spot.connector.CoinbaseSpotRestExchConnector"
, "REST": {
"open_orders_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/orders/historical/batch"]
, "submit_order_url": ["POST", "https://api.coinbase.com/api/v3/brokerage/orders"]
, "cancel_order_url": ["POST", "https://api.coinbase.com/api/v3/brokerage/orders/batch_cancel"]
},
"ws_url": ["WSS", "wss://advanced-trade-ws.coinbase.com"]
}
, "accounting": {
"class": "cvttpy.exchanges.coinbase.spot.account.CoinbaseSpotAccounting"
, "REST": {
"balances_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/accounts"]
, "get_trades_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/orders/historical/fills"]
, "get_transactions_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/transaction_summary"]
}
}
, "mktdata" : {
"class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed"
, "portal_name": "MD_PORTAL_COINBS_01"
}
}
# ---------------------------- G
, "GEMINI": {
# 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.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_SNDBX": {
"exchange_id": "MD_PORTAL"
, "name": "MD Portal (proxy)"
, "type": "PROXY"
, "mktdata" : {
"class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed"
, "redis_settings": "cvtt-prod-eqty-01"
, "channel_prefix": "MD_ALPACA_SNDBX"
}
}
, "MD_PORTAL_ALPACA_03": {
"exchange_id": "MD_PORTAL"
, "name": "MD Portal (proxy)"
, "type": "PROXY"
, "mktdata" : {
"class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed"
, "redis_settings": "cvtt-prod-03"
, "channel_prefix": "MD_ALPACA_03"
}
}
, "MD_PORTAL_COINBS_01": {
"exchange_id": "MD_PORTAL"
, "name": "MD Portal (proxy)"
, "type": "PROXY"
, "mktdata" : {
"class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed"
, "redis_settings": "cvtt-prod-02"
, "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": {}
}
}
}