@var CONFIG_SVC_HOST=cloud16.cvtt.vpn @var ResultPath=/tmp { "refdata": @inc=http://${CONFIG_SVC_HOST}:6789/refdata/refdata , "redis": @inc=http://${CONFIG_SVC_HOST}:6789/apps/redis , "active_instruments": @inc=http://${CONFIG_SVC_HOST}:6789/apps/active_instruments , "cvttcomm": { "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": {} } # -------------------------------------------------------------------- , "trader": { "app_channel": "TRDR" active_exchanges_: str , "is_short_allowed": false , "exchanges_settings": { "*": { "mkt_data": { "enabled": true , "streaming": true }, } } , "algos": { "TRDALGO_001": { "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": { "USD": 1000.0, } } # -------------------------------------------------------------------- "executor": { "app_channel": "EXEC" , "exchanges_settings": { "COINBASE_AT": { "order_entry": { "enabled": true , "streaming": true }, "mkt_data": { "enabled": false , "streaming": false }, "accounting": { "enabled": false , "streaming": false } , "credentials_key": { "read_only": "COINBASE_ADV_RO" , "trade": "COINBASE_ADV_TRD" } } , "ALPACA_SNDBX": { "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" } } , "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" } } } } # -------------------------------------------------------------------- , "quant": { "app_channel": "QUANT" # , "strategy": "CVTT_QST001" # , "strategy": "VWAP001" , "strategy": "DAILY_STOCK_001" , "strategies": { "CVTT_QST001": { "class": "cvttpy.trading.strategies.test_strat.SeesawTestStrategy" , "params": { "dummy": "dummy" } } , "VWAP001": { "class": "cvttpy.trading.strategies.vwap_strat.VWAP001" , "params": { "vwap_interval": "1 hour" , "hist_md_database": { "class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient" , "cred_key": "TSDB_MD_CVTTDATA_RO" , "data_type": "OHLCV" } } } , "DAILY_STOCK_001": { "class": "cvttpy.trading.strategies.daily_stocks_strat.DailyStocksStrategy" , "params": { "liquidate_at": "15:45" # EDT Time } } } , "exchanges_settings": { "*": { "mkt_data": { "enabled": true , "streaming": true }, } , "COINBASE_AT": { "mkt_data": { "enabled": true , "streaming": true }, } } } # -------------------------------------------------------------------- , "risk_manager": { "app_channel": "RMGR" , "books": { "CVTT_BK01": {} } , "db": { "positions_table": "prod.cvtt_positions" , "cred_key": { "write": "TSDB_TRD_CVTTDATA" , "read_only": "TSDB_TRD_CVTTDATA" } } , "positions": { "load_interval_sec": 10.0 , "to_store_zero_positions": false , "to_save_unchanged_positions": false } , "publish_value_interval": 10.0 , "exchanges_settings": { "*": { "mkt_data": { "enabled": true , "streaming": true }, "accounting": { "enabled": true , "streaming": false } , "credentials_key": { "trade": "ALPACA_SANDBOX" , "read_only": "ALPACA_SANDBOX" } } } } , "trading_recorder": { # "format": "CSV" # "format": "TSDB" "format": "SQLite" , "csv_settings": { "order_events_file_path": "%T.order_events.csv" "position_events_file_path": "%T.position_events.csv" } , "tsdb_settings": { "db": { "class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient" , "cred_key": "TSDB_TRD_CVTTDATA_DB_TEST" } , "order_events_table": "backtest.trading_orders" , "trade_events_table": "backtest.trading_trades" , "trading_md_summary_table": "backtest.trading_md" } , "sqlite_settings": { # "file_name": "/tmp/%T.cvtt_backtest.db" "file_name": "/tmp/%T.cvtt_alpaca_sandbox.db" } } }