diff --git a/data/apps/cvtt_prod.cfg b/data/apps/cvtt_eqt_alpaca.cfg similarity index 90% rename from data/apps/cvtt_prod.cfg rename to data/apps/cvtt_eqt_alpaca.cfg index 8d503b0..694b2ce 100644 --- a/data/apps/cvtt_prod.cfg +++ b/data/apps/cvtt_eqt_alpaca.cfg @@ -6,8 +6,7 @@ , "redis": @inc=http://${CONFIG_SVC_HOST}:6789/apps/redis , "cvttcomm": { "type": "redis" - # , "redis_settings": "localhost" - , "redis_settings": "cvtt-prod" + , "redis_settings": "cvtt-prod-02" } , "books": { @@ -20,7 +19,7 @@ , "is_short_allowed": false , "algo": "TRDALGO_001" , "exchanges_settings": { - "COINBASE_AT": { + "*": { "mkt_data": { "enabled": true , "streaming": true @@ -134,21 +133,7 @@ } , "publish_value_interval": 10.0 , "exchanges_settings": { - "COINBASE_AT": { - "mkt_data": { - "enabled": true - , "streaming": true - }, - "accounting": { - "enabled": true - , "streaming": false - } - , "credentials_key": { - "trade": "COINBASE_ADV" - , "read_only": "COINBASE_ADV_RO" - } - } - , "ALPACA_SNDBX": { + "*": { "mkt_data": { "enabled": true , "streaming": true diff --git a/data/apps/md_portal.cfg b/data/apps/md_portal.cfg index 9a9d5ad..6236b01 100644 --- a/data/apps/md_portal.cfg +++ b/data/apps/md_portal.cfg @@ -1,16 +1,10 @@ @var CONFIG_SVC_HOST=cloud16.cvtt.vpn { - # ---------------------------------- "refdata": @inc=http://${CONFIG_SVC_HOST}:6789/refdata/refdata , "redis": @inc=http://${CONFIG_SVC_HOST}:6789/apps/redis - , "cvttcomm": { - "type": "redis" - , "redis_settings": "cvtt-prod-02" - # , "redis_settings": "cloud17" - } - "md_portal": { + , "md_portal": { "app_channel": "MD_PORTAL" , "exchanges_settings": { "ALPACA_SNDBX": { diff --git a/data/apps/redis.cfg b/data/apps/redis.cfg index 1134f18..e21b8e7 100644 --- a/data/apps/redis.cfg +++ b/data/apps/redis.cfg @@ -1,10 +1,5 @@ { - "*": { - "url": "redis://localhost" - , "read_timeout" : 0.01 - , "ping_timeout_secs": 2.0 - } - , "localhost": { + "localhost": { "url": "redis://localhost" , "read_timeout" : 0.01 , "ping_timeout_secs": 2.0 @@ -19,7 +14,7 @@ , "read_timeout" : 0.01 , "ping_timeout_secs": 2.0 } - , "cvtt-prod": { + , "cvtt-prod-01": { "url": "redis://cvtt-prod-01.cvtt.vpn" , "read_timeout" : 0.01 , "ping_timeout_secs": 2.0 diff --git a/data/refdata/exchanges.cfg b/data/refdata/exchanges.cfg index c2a3172..3c8e1b0 100644 --- a/data/refdata/exchanges.cfg +++ b/data/refdata/exchanges.cfg @@ -42,6 +42,39 @@ } } } + , "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" + } + , "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 , "BNBSPOT": { "exchange_id": "BNBSPOT" @@ -200,6 +233,37 @@ , "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" + } + + } , "BACKTEST_001": { "exchange_id": "COINBASE" , "name": "Coinbase Backtest"