Compare commits
No commits in common. "42491d050cbc2e40d8f731d3bf09e71de78075a5" and "76cb915702ad515aad75ff5c10c94f743611f2db" have entirely different histories.
42491d050c
...
76cb915702
@ -52,11 +52,6 @@
|
||||
"users": ["oleg", "cvtt"],
|
||||
"docker": "true",
|
||||
},
|
||||
"cloud31": {
|
||||
"type": "cloud",
|
||||
"users": ["oleg", "cvtt"],
|
||||
"docker": "true",
|
||||
},
|
||||
|
||||
// ----------- B a r e M e t a l
|
||||
"hs01": {
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
{
|
||||
"DIRECT_ORDER_ALGO": {
|
||||
"class": "cvttpy_trading.trading.algos.common.trading_algo.DirOrdTradingAlgo"
|
||||
"TRDALGO_001": {
|
||||
"class": "cvttpy.trading.algos.simple.SimpleTradingAlgo"
|
||||
, "params": {}
|
||||
}
|
||||
, "TRDALGO_SIMPLE_BO": {
|
||||
"class": "cvttpy_trading.trading.algos.bid_and_offer.SimpleBidAndOfferTradingAlgo"
|
||||
"class": "cvttpy.trading.algos.bid_and_offer.SimpleBidAndOfferTradingAlgo"
|
||||
, "params": {}
|
||||
}
|
||||
, "TRDALGO_MOOMOC_01": {
|
||||
"class": "cvttpy_trading.trading.algos.moo_moc.MooMocTradingAlgo"
|
||||
"class": "cvttpy.trading.algos.moo_moc.MooMocTradingAlgo"
|
||||
, "params": {}
|
||||
}
|
||||
, "TRDALGO_TWAP01": {
|
||||
"class": "cvttpy_trading.trading.algos.twap.TwapAlgo"
|
||||
"class": "cvttpy.trading.algos.twap.TwapAlgo"
|
||||
, "params": {
|
||||
"num_slices": 5
|
||||
, "duration_sec": 1500 # 25 min
|
||||
@ -24,7 +24,7 @@
|
||||
},
|
||||
}
|
||||
, "TRDALGO_ICEBERG01_COINBS": {
|
||||
"class": "cvttpy_trading.trading.algos.twap.TwapAlgo"
|
||||
"class": "cvttpy.trading.algos.twap.TwapAlgo"
|
||||
, "params": {
|
||||
"num_slices": 5
|
||||
, "duration_sec": 1500 # 25 min #overloaded by --duration
|
||||
@ -37,7 +37,7 @@
|
||||
},
|
||||
}
|
||||
, "TRDALGO_ICEBERG01_ALPACA": {
|
||||
"class": "cvttpy_trading.trading.algos.twap.TwapAlgo"
|
||||
"class": "cvttpy.trading.algos.twap.TwapAlgo"
|
||||
, "params": {
|
||||
"num_slices": 5
|
||||
, "duration_sec": 1500 # 25 min
|
||||
|
||||
@ -1,63 +1,31 @@
|
||||
# /comm
|
||||
{
|
||||
"pubsub" : {
|
||||
"REDIS_DCKR_COMPOSE": { # docker compose used
|
||||
"type": "redis"
|
||||
, "url": "redis://redis:6379"
|
||||
"redis": {
|
||||
"docker_microservices": {
|
||||
"url": "redis://redis:6379"
|
||||
, "type": "redis"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
, "REDIS_LCLHOST": {
|
||||
"type": "redis"
|
||||
, "url": "redis://localhost"
|
||||
, "localhost": {
|
||||
"url": "redis://localhost"
|
||||
, "type": "redis"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
, "REDIS_LCLHOST_2_DCKR_COMPOSE": {
|
||||
"type": "redis"
|
||||
, "url": "redis://localhost:16379"
|
||||
, "localhost-2-docker": {
|
||||
"url": "redis://localhost:16379"
|
||||
, "type": "redis"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
, "REDIS_tester-01_2_DCKR_COMPOSE": { # to use docker compose service from outside
|
||||
"type": "redis"
|
||||
, "url": "redis://cvtt-tester-01.cvtt.vpn:16379"
|
||||
, "cloud29": {
|
||||
"url": "redis://cloud29.cvtt.vpn:6379"
|
||||
, "type": "redis"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
# , "redis": {
|
||||
# "docker_microservices": { # docker compose used
|
||||
# "url": "redis://redis:6379"
|
||||
# , "type": "redis"
|
||||
# , "read_timeout" : 0.01
|
||||
# , "ping_timeout_secs": 2.0
|
||||
# , "verbose": false
|
||||
# }
|
||||
# , "localhost": {
|
||||
# "url": "redis://localhost"
|
||||
# , "type": "redis"
|
||||
# , "read_timeout" : 0.01
|
||||
# , "ping_timeout_secs": 2.0
|
||||
# , "verbose": false
|
||||
# }
|
||||
# , "localhost-2-docker": {
|
||||
# "url": "redis://localhost:16379"
|
||||
# , "type": "redis"
|
||||
# , "read_timeout" : 0.01
|
||||
# , "ping_timeout_secs": 2.0
|
||||
# , "verbose": false
|
||||
# }
|
||||
# , "tester-01": { # to use docker compose service from outside
|
||||
# "url": "redis://cvtt-tester-01.cvtt.vpn:16379"
|
||||
# , "type": "redis"
|
||||
# , "read_timeout" : 0.01
|
||||
# , "ping_timeout_secs": 2.0
|
||||
# , "verbose": false
|
||||
# }
|
||||
# }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,6 @@
|
||||
@var COORDINATOR_REST_PORT=23456
|
||||
# @var COORDINATOR_WS_PORT=12345
|
||||
|
||||
@var PRICER_REST_PORT=23457
|
||||
@var PRICER_WS_PORT=12346
|
||||
|
||||
@ -14,6 +16,74 @@
|
||||
, "comm_settings": @env{CONFIG_COMM_SETTINGS}
|
||||
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
|
||||
|
||||
, "coordinator": {
|
||||
"api": {
|
||||
"REST": {
|
||||
"port": ${COORDINATOR_REST_PORT},
|
||||
"base_url": ["POST", "http://localhost:${COORDINATOR_REST_PORT}"]
|
||||
}
|
||||
# , "WS": {
|
||||
# "url": "ws://localhost:${COORDINATOR_WS_PORT}/ws"
|
||||
# }
|
||||
}
|
||||
}
|
||||
, "market_data_gateway": {
|
||||
"exchanges_settings": {
|
||||
"*": {
|
||||
"mkt_data": {
|
||||
"enabled": true
|
||||
, "streaming": true
|
||||
},
|
||||
"order_entry": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
},
|
||||
"accounting": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
},
|
||||
},
|
||||
}
|
||||
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
|
||||
, "exchanges": [
|
||||
"COINBASE_AT"
|
||||
, "BNBSPOT"
|
||||
, "BNBFUT"
|
||||
# , "KRAKEN"
|
||||
# , "BITSTAMP"
|
||||
# , "OKX"
|
||||
# , "GEMINI"
|
||||
, "ALPACA_SNDBX"
|
||||
]
|
||||
}
|
||||
, "order_entry_gateway": {
|
||||
"exchanges_settings": {
|
||||
"ALPACA_SNDBX": {
|
||||
"mkt_data": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
},
|
||||
"order_entry": {
|
||||
"enabled": true
|
||||
, "streaming": true
|
||||
},
|
||||
"accounting": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
}
|
||||
, "credentials_key": {
|
||||
"read_only": "ALPACA_SANDBOX"
|
||||
, "trade": "ALPACA_SANDBOX"
|
||||
}
|
||||
}
|
||||
}
|
||||
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS"
|
||||
, "exchanges": [
|
||||
"ALPACA_SNDBX"
|
||||
]
|
||||
}
|
||||
, "accounting_gateway": {
|
||||
"exchanges_settings": {
|
||||
"ALPACA_SNDBX": {
|
||||
@ -58,112 +128,39 @@
|
||||
"ALPACA_SNDBX", "COINBASE_AT"
|
||||
]
|
||||
}
|
||||
, "quant": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.QUANT"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.QUANT_MUSVC_STATUS"
|
||||
}
|
||||
, "trader": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER_MUSVC_STATUS"
|
||||
}
|
||||
, "bookkeeper": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR_MUSVC_STATUS"
|
||||
, "db": {
|
||||
"server_type": "timescale",
|
||||
"cred_key": "TSDB_CVTT_TESTER_01_DIRECT"
|
||||
# "cred_key": "TSDB_CVTT_TRADINNG_PROD-01-RW"
|
||||
# "cred_key": "TSDB_TRADING_CVTT_TESTDB"
|
||||
"cred_key": "TSDB_CVTT_TRADINNG_PROD-01-RW"
|
||||
}
|
||||
}
|
||||
, "coordinator": {
|
||||
"api": {
|
||||
"REST": {
|
||||
"port": @env{COORDINATOR_REST_PORT},
|
||||
"base_url": ["POST", "http://localhost:@env{COORDINATOR_REST_PORT}"]
|
||||
}
|
||||
}
|
||||
}
|
||||
, "market_data_gateway": {
|
||||
"exchanges_settings": {
|
||||
"*": {
|
||||
"mkt_data": {
|
||||
"enabled": true
|
||||
, "streaming": true
|
||||
},
|
||||
"order_entry": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
},
|
||||
"accounting": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
},
|
||||
},
|
||||
}
|
||||
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
|
||||
, "exchanges": [
|
||||
"COINBASE_AT"
|
||||
, "COINBASE_FUT"
|
||||
# , "BNBSPOT"
|
||||
# , "BNBFUT"
|
||||
# , "KRAKEN"
|
||||
# , "BITSTAMP"
|
||||
# , "OKX"
|
||||
# , "GEMINI"
|
||||
# , "ALPACA_SNDBX"
|
||||
]
|
||||
}
|
||||
, "order_entry_gateway": {
|
||||
"exchanges_settings": {
|
||||
"ALPACA_SNDBX": {
|
||||
"mkt_data": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
},
|
||||
"order_entry": {
|
||||
"enabled": true
|
||||
, "streaming": true
|
||||
},
|
||||
"accounting": {
|
||||
"enabled": false
|
||||
, "streaming": false
|
||||
}
|
||||
, "credentials_key": {
|
||||
"read_only": "ALPACA_SANDBOX"
|
||||
, "trade": "ALPACA_SANDBOX"
|
||||
}
|
||||
}
|
||||
}
|
||||
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS"
|
||||
, "exchanges": [
|
||||
"ALPACA_SNDBX"
|
||||
]
|
||||
}
|
||||
, "pricer": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER_MUSVC_STATUS"
|
||||
, "api": {
|
||||
"REST": {
|
||||
"port": @env{PRICER_REST_PORT},
|
||||
"base_url": ["POST", "http://localhost:@env{PRICER_REST_PORT}"]
|
||||
}
|
||||
, "WS": {
|
||||
"url": "ws://localhost:@env{PRICER_WS_PORT}/ws"
|
||||
}
|
||||
}
|
||||
}
|
||||
, "quant": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.QUANT"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.QUANT_MUSVC_STATUS"
|
||||
}
|
||||
, "risk_manager": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR_MUSVC_STATUS"
|
||||
, "revalue_interval_sec": 10.5
|
||||
}
|
||||
, "trader": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER_MUSVC_STATUS"
|
||||
|
||||
, "pos_diff_pct_trigger": 10.0
|
||||
, "trading_depth": {
|
||||
"BTC": 0.001
|
||||
# "BTC": 0.1
|
||||
, "pricer": {
|
||||
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER"
|
||||
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER_MUSVC_STATUS"
|
||||
, "api": {
|
||||
"REST": {
|
||||
"port": ${PRICER_REST_PORT},
|
||||
"base_url": ["POST", "http://localhost:${PRICER_REST_PORT}"]
|
||||
}
|
||||
, "WS": {
|
||||
"url": "ws://localhost:${PRICER_WS_PORT}/ws"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
{
|
||||
"__DUMMY__": null
|
||||
|
||||
, "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
|
||||
# , "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
|
||||
|
||||
, "exchanges_settings": {
|
||||
|
||||
"COINBASE_AT": {
|
||||
"accounting": {
|
||||
"enabled": true
|
||||
, "streaming": false
|
||||
}
|
||||
, "credentials_key": {
|
||||
"read_only": "COINBASE_ADV_RO"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -301,25 +301,6 @@
|
||||
},
|
||||
}
|
||||
}
|
||||
, "COINBASE-FUT": {
|
||||
"instruments": {}
|
||||
, "dynamic_instruments": {
|
||||
# dynamically created instruments (futures)
|
||||
"credentials_key": "COINBASE_ADV_RO"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.futures.market.InstrumentLoader"
|
||||
, "api": {
|
||||
"REST": {
|
||||
"products_method": "GET"
|
||||
, "products_url": "https://api.coinbase.com/api/v3/brokerage/products"
|
||||
, "futures_params": {
|
||||
"product_type": "FUTURE"
|
||||
, "contract_expiry_type": "EXPIRING"
|
||||
, "expiring_contract_status": "STATUS_UNEXPIRED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
, "GEMINI": {
|
||||
"instruments": {
|
||||
# --- PAIRs
|
||||
|
||||
@ -290,9 +290,37 @@
|
||||
, "name": "Coinbase Advanced Trade"
|
||||
, "type": "SPOT"
|
||||
|
||||
, "order_entry": {
|
||||
"credentials_key": "COINBASE_ADV_TRD"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
|
||||
|
||||
, "api": {
|
||||
"web_socket": {
|
||||
"url": "wss://advanced-trade-ws.coinbase.com"
|
||||
}
|
||||
, "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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
, "accounting": {
|
||||
"credentials_key": "COINBASE_ADV_RO"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.account.CoinbaseSpotAccounting"
|
||||
|
||||
, "api": {
|
||||
"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_trading.exchanges.coinbase.spot.mkt_data.CoinbaseSpotMdFeed"
|
||||
# "class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed"
|
||||
|
||||
, "reconnect_secs": 2
|
||||
, "max_connections": 10
|
||||
@ -307,95 +335,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
, "order_entry": {
|
||||
"credentials_key": "COINBASE_ADV_TRD"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
|
||||
|
||||
, "api": {
|
||||
"web_socket": {
|
||||
"url": "wss://advanced-trade-ws.coinbase.com"
|
||||
}
|
||||
, "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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
, "accounting": {
|
||||
"credentials_key": "COINBASE_ADV_RO"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.account.CoinbaseSpotAccounting"
|
||||
|
||||
, "api": {
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
, "COINBASE_FUT": {
|
||||
"exchange_id": "COINBASE-FUT"
|
||||
, "name": "Coinbase Advanced Trade Futures"
|
||||
, "type": "FUTURES"
|
||||
|
||||
, "mktdata" : {
|
||||
"credentials_key": "COINBASE_ADV_TRD"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.futures.mkt_data.CoinbaseFutMdFeed"
|
||||
|
||||
, "reconnect_secs": 2
|
||||
, "max_connections": 10
|
||||
, "price_throttle": true
|
||||
|
||||
, "api": {
|
||||
"REST": {
|
||||
"products": {
|
||||
"method": "GET"
|
||||
, "url": "https://api.coinbase.com/api/v3/brokerage/products"
|
||||
, "params": {
|
||||
"product_type": "FUTURE"
|
||||
, "contract_expiry_type": "EXPIRING"
|
||||
, "expiring_contract_status": "STATUS_UNEXPIRED"
|
||||
}
|
||||
}
|
||||
},
|
||||
"web_socket": {
|
||||
"url": "wss://advanced-trade-ws.coinbase.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
, "order_entry": {
|
||||
"credentials_key": "COINBASE_ADV_TRD"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
|
||||
|
||||
, "api": {
|
||||
"web_socket": {
|
||||
"url": "wss://advanced-trade-ws.coinbase.com"
|
||||
}
|
||||
, "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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
, "accounting": {
|
||||
"credentials_key": "COINBASE_ADV_RO"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.account.CoinbaseSpotAccounting"
|
||||
|
||||
, "api": {
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
# ---------------------------- G
|
||||
, "GEMINI": {
|
||||
|
||||
@ -3,5 +3,5 @@
|
||||
, "instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/instruments
|
||||
, "exchanges": @inc=http://@env{CONFIG_SERVICE}/refdata/exchanges
|
||||
, "exchange_instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/exchange_instruments
|
||||
, "instant_exch_inst_ids": ["ALPACA"]
|
||||
, "dynamic_instrument_exchanges": ["ALPACA"]
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user