415 lines
16 KiB
INI
415 lines
16 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_02"
|
|
|
|
# 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"],
|
|
}
|
|
}
|
|
}
|
|
# ---------------------------- C
|
|
# , "CVTT": {
|
|
# "exchange_id": "CVTT"
|
|
# , "name": "CVTT Executor (proxy)"
|
|
# , "type": "PROXY"
|
|
|
|
# , "order_entry": {
|
|
# "class": "cvttpy.exchanges.proxies.cvtt.connector.CvttExecutorClient"
|
|
|
|
# }
|
|
# , "accounting": {
|
|
# "class": "cvttpy.exchanges.proxies.cvtt.connector.CvttExecutorClient"
|
|
# }
|
|
# ,"listen_channel_prefix": "CVTT_CLNT"
|
|
# # , "executor_channel": "EXEC"
|
|
# }
|
|
# , "CVTT_COINBASE": {
|
|
# "exchange_id": "CVTT_COINBS"
|
|
# , "name": "CVTT Trader (proxy)"
|
|
# , "type": "PROXY"
|
|
|
|
# , "order_entry": {
|
|
# "class": "cvttpy.exchanges.proxies.cvtt.connector.CvttExecutorClient"
|
|
|
|
# }
|
|
# , "accounting": {
|
|
# "class": "cvttpy.exchanges.proxies.cvtt.connector.CvttExecutorClient"
|
|
# }
|
|
# ,"listen_channel_prefix": "CVTT_CLNT"
|
|
# , "executor_channel": "EXEC"
|
|
# }
|
|
# , "CVTT_COINBASE_LOCAL": {
|
|
# "exchange_id": "CVTT_COINBS"
|
|
# , "name": "CVTT Trader (proxy)"
|
|
# , "type": "PROXY"
|
|
|
|
# , "order_entry": {
|
|
# "class": "cvttpy.exchanges.proxies.cvtt.connector.CvttExecutorClient"
|
|
|
|
# }
|
|
# ,"listen_channel_prefix": "CVTT_CLNT"
|
|
# , "executor_channel": "EXEC"
|
|
# }
|
|
, "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.pro.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": {
|
|
"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"]
|
|
}
|
|
}
|
|
|
|
# ---------------------------- M
|
|
, "MD_PORTAL_ALPACA_02": {
|
|
"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_ALPACA_02"
|
|
}
|
|
}
|
|
, "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"
|
|
}
|
|
}
|
|
}
|
|
|