From 3aea35f424dadc84b4e1372b49ee90d26629d65f Mon Sep 17 00:00:00 2001 From: Cryptoval Trading Technologies Date: Wed, 10 Apr 2024 17:03:02 +0100 Subject: [PATCH] progress --- data/apps/cvtt.cfg | 7 +-- data/apps/cvtt_eqt_alpaca.cfg | 60 ++++++++++++++++++++++++-- data/apps/minimal_md.cfg | 17 ++++++++ data/apps/tests/listen_market_data.cfg | 6 +++ data/refdata/exchanges.cfg | 30 +++++++++++++ 5 files changed, 111 insertions(+), 9 deletions(-) create mode 100644 data/apps/minimal_md.cfg diff --git a/data/apps/cvtt.cfg b/data/apps/cvtt.cfg index 06a7fcf..0742423 100644 --- a/data/apps/cvtt.cfg +++ b/data/apps/cvtt.cfg @@ -9,7 +9,7 @@ # , "redis_settings": "localhost" , "redis_settings": "cloud17" } - + , "session_type": "PERMANENT" , "books": { "CVTT_BK01": {} } @@ -37,7 +37,7 @@ } # , "interval": "4 hours" , "interval": "6 hours" - , "from_time": "2024-02-01 09:00:00" + , "from_time": "2024-03-01 09:00:00" } , "initial_positions": { "COINBASE": { @@ -64,7 +64,6 @@ "app_channel": "TRDR" active_exchanges_: str , "is_short_allowed": false - , "algo": "TRDALGO_001" , "exchanges_settings": { "COINBASE_AT": { "mkt_data": { @@ -112,8 +111,6 @@ # -------------------------------------------------------------------- , "quant": { "app_channel": "QUANT" - # , "strategy": "CVTT_QST001" - , "strategy": "VWAP001" , "strategies": { "CVTT_QST001": { diff --git a/data/apps/cvtt_eqt_alpaca.cfg b/data/apps/cvtt_eqt_alpaca.cfg index 25112cb..21906b8 100644 --- a/data/apps/cvtt_eqt_alpaca.cfg +++ b/data/apps/cvtt_eqt_alpaca.cfg @@ -9,7 +9,13 @@ "type": "redis" , "redis_settings": "cvtt-prod-02" } - + , "session_type": "CALENDAR" + , "calendar": { + "trading_hours_url": [ + "GET" + , "http://cloud16.cvtt.vpn:8000/api/v1/markets/hours?mic=XNYS&start={start}&end={end}" + ] + } , "books": { "ALPACA_BK02": {} } @@ -18,7 +24,6 @@ "app_channel": "TRDR" active_exchanges_: str , "is_short_allowed": false - , "algo": "TRDALGO_001" , "exchanges_settings": { "*": { "mkt_data": { @@ -32,11 +37,39 @@ "class": "cvttpy.trading.algos.simple.SimpleTradingAlgo" , "params": {} } + , "TRDALGO_MOOMOC_01": { + "class": "cvttpy.trading.algos.moo_moc.MooMocTradingAlgo" + , "params": { + }, + } + , "TRDALGO_TWAP01": { + "class": "cvttpy.trading.algos.twap.BasicTwapAlgo" + , "params": { + "num_slices": 5 + , "duration_sec": 1500 # 25 min + , "max_order_usd": 100 + , "passive_stage_t1": 0.4 # join BBO, the rest is aggressive + , "aggressive_stage_t2": 0.4 + , "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick + , "marketable_stage_added_ticks": 0 + }, + } + , "TRDALGO_ICEBERG01": { + "class": "cvttpy.trading.algos.twap.BasicTwapAlgo" + , "params": { + "num_slices": 5 + , "duration_sec": 1500 # 25 min + , "max_order_usd": 100 + , "passive_stage_t1": 0 + , "aggressive_stage_t2": 0 + , "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick + , "marketable_stage_added_ticks": 0 + }, + } } , "trading_pos_diff_pct_trigger": 10.0 , "trading_depth": { - "BTC": 0.001 - # "BTC": 0.1 + "USD": 1000.0, } } # -------------------------------------------------------------------- @@ -79,6 +112,24 @@ , "trade": "ALPACA_SANDBOX" } } + , "ALPACA_SNDBX-MDPORTAL": { + "order_entry": { + "enabled": true + , "streaming": true + }, + "mkt_data": { + "enabled": false + , "streaming": false + }, + "accounting": { + "enabled": false + , "streaming": false + } + , "credentials_key": { + "read_only": "ALPACA_SANDBOX" + , "trade": "ALPACA_SANDBOX" + } + } } } # -------------------------------------------------------------------- @@ -108,6 +159,7 @@ , "DAILY_STOCK_001": { "class": "cvttpy.trading.strategies.daily_stocks_strat.DailyStocksStrategy" , "params": { + "liquidate_at": "15:45" # EDT Time } } } diff --git a/data/apps/minimal_md.cfg b/data/apps/minimal_md.cfg new file mode 100644 index 0000000..99cabb1 --- /dev/null +++ b/data/apps/minimal_md.cfg @@ -0,0 +1,17 @@ +@var CONFIG_SVC_HOST=cloud16.cvtt.vpn +{ + "refdata": @inc=http://${CONFIG_SVC_HOST}:6789/refdata/refdata + "exchanges_settings": { + "*": { + "mkt_data": { + "enabled": true + , "streaming": true + }, + } + } + , "cvttcomm": { + "type": "redis" + , "redis_settings": "localhost" + } +} + diff --git a/data/apps/tests/listen_market_data.cfg b/data/apps/tests/listen_market_data.cfg index 97cb4ac..2da194a 100644 --- a/data/apps/tests/listen_market_data.cfg +++ b/data/apps/tests/listen_market_data.cfg @@ -10,6 +10,12 @@ , "streaming": true }, } + , "ALPACA-MD-REST-ONLY": { + "mkt_data": { + "enabled": true + , "streaming": false + }, + } } , "cvttcomm": { "type": "redis" diff --git a/data/refdata/exchanges.cfg b/data/refdata/exchanges.cfg index 3c8e1b0..228a514 100644 --- a/data/refdata/exchanges.cfg +++ b/data/refdata/exchanges.cfg @@ -30,7 +30,10 @@ # , "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"] + , "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"] } + } , "accounting": { "class": "cvttpy.exchanges.alpaca.account.AlpacaAccounting" @@ -64,6 +67,12 @@ } , "mktdata" : { "class": "cvttpy.exchanges.proxies.md_portal_clnt.mkt_data.MktDataPortalFeed" + + # 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"] + } } , "accounting": { "class": "cvttpy.exchanges.alpaca.account.AlpacaAccounting" @@ -75,6 +84,27 @@ } } } + , "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"] + } + } + , "accounting": { + } + } # ---------------------- B , "BNBSPOT": { "exchange_id": "BNBSPOT"