Compare commits

..

14 Commits

Author SHA1 Message Date
Cryptoval Trading Technologies
76cb915702 20250812 2025-08-12 22:23:07 +00:00
Cryptoval Trading Technologies
c4961217d7 20250812 2025-08-12 21:47:13 +00:00
Cryptoval Trading Technologies
cab71ef46e 20250812 2025-08-12 21:45:01 +00:00
Cryptoval Trading Technologies
bf8540fe4f 20250812 2025-08-12 21:38:46 +00:00
Cryptoval Trading Technologies
ce43cc308e 20250812 2025-08-12 21:37:01 +00:00
Cryptoval Trading Technologies
793448f4b9 20250812 2025-08-12 21:36:01 +00:00
Cryptoval Trading Technologies
9d92bb7635 20250812 2025-08-12 21:34:01 +00:00
Cryptoval Trading Technologies
d2e036f471 20250809 2025-08-09 21:29:02 +00:00
Cryptoval Trading Technologies
023ce27171 20250809 2025-08-09 01:03:01 +00:00
Cryptoval Trading Technologies
45e23b0c18 20250809 2025-08-09 01:02:01 +00:00
Cryptoval Trading Technologies
1f469ed148 20250809 2025-08-09 01:01:01 +00:00
Cryptoval Trading Technologies
3a260dc8e7 20250807 2025-08-07 20:49:01 +00:00
Cryptoval Trading Technologies
ebb9eec8e6 20250807 2025-08-07 20:48:01 +00:00
Cryptoval Trading Technologies
48efb65399 20250728 2025-07-28 00:53:01 +00:00
6 changed files with 172 additions and 72 deletions

View File

@ -1,7 +1,7 @@
{ {
"folders": [ "folders": [
{ {
"path": "../../../../works/repos/config_service" "path": "."
} }
] ]
} }

View File

@ -34,8 +34,10 @@
"Youtrack": { "Youtrack": {
"to_check": "Yes", "to_check": "Yes",
"protocol": "http", "protocol": "http",
"host": "cloud23.cvtt.vpn", # "host": "vendor-services.cvtt.vpn",
"port": 8383 # "port": 8383
"host": "tasks.cvtt.net",
"port": 443
}, },
"Trading Calendar": { "Trading Calendar": {
"to_check": "Yes", "to_check": "Yes",

View File

@ -0,0 +1,135 @@
@var COORDINATOR_REST_PORT=23456
# @var COORDINATOR_WS_PORT=12345
@var PRICER_REST_PORT=23457
@var PRICER_WS_PORT=12346
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
, "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"
]
}
, "order_entry_gateway": {
"exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS"
, "exchanges": [
"COINBASE_AT"
]
}
, "accounting_gateway": {
"exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW_APP_STATUS"
, "exchanges": [
"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_TRADING_CVTT_TESTDB"
"cred_key": "TSDB_CVTT_TRADINNG_PROD-01-RW"
}
}
, "risk_manager": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR_MUSVC_STATUS"
, "revalue_interval_sec": 10.5
}
, "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"
}
}
}
}

View File

@ -1,10 +0,0 @@
{
"folders": [
{
"path": ".."
}
],
"settings": {
"workbench.colorTheme": "Tomorrow Night Blue"
}
}

View File

@ -43,9 +43,9 @@
"md_symbol": "ADAUSDT", "md_symbol": "ADAUSDT",
"trade_symbol": "ADAUSDT" "trade_symbol": "ADAUSDT"
}, },
"PAIR-AVAX-BUSD": { "PAIR-AVAX-USDT": {
"md_symbol": "AVAXBUSD", "md_symbol": "AVAXUSDT",
"trade_symbol": "AVAXBUSD" "trade_symbol": "AVAXUSDT"
}, },
"PAIR-BCH-BUSD": { "PAIR-BCH-BUSD": {
"md_symbol": "BCHBUSD", "md_symbol": "BCHBUSD",

View File

@ -9,10 +9,9 @@
, "name": "Alpaca Trading" , "name": "Alpaca Trading"
, "type": "EQUITY" , "type": "EQUITY"
, "cred_key": "ALPACA_PROD"
, "order_entry": { , "order_entry": {
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient" "credentials_key": "ALPACA_PROD"
, "class": "cvttpy_trading.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
# D E P R E C A T E D # D E P R E C A T E D
, "REST": { , "REST": {
@ -39,7 +38,7 @@
} }
} }
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.alpaca.mkt_data.AlpacaStockFeed" "class": "cvttpy_trading.exchanges.alpaca.mkt_data.AlpacaStockFeed"
, "reconnect_secs": 2.0 , "reconnect_secs": 2.0
# D E P R E C A T E D # D E P R E C A T E D
@ -70,7 +69,7 @@
} }
} }
, "accounting": { , "accounting": {
"class": "cvttpy.exchanges.alpaca.acct_client.AlpacaAccounting" "class": "cvttpy_trading.exchanges.alpaca.acct_client.AlpacaAccounting"
# D E P R E C A T E D # D E P R E C A T E D
, "REST": { , "REST": {
@ -95,10 +94,10 @@
, "name": "Alpaca Trading" , "name": "Alpaca Trading"
, "type": "EQUITY" , "type": "EQUITY"
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": { , "order_entry": {
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient" "credentials_key": "ALPACA_SANDBOX"
, "class": "cvttpy_trading.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
# D E P R E C A T E D # D E P R E C A T E D
, "REST": { , "REST": {
@ -125,7 +124,7 @@
} }
} }
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.alpaca.mkt_data.AlpacaMdFeed" "class": "cvttpy_trading.exchanges.alpaca.mkt_data.AlpacaMdFeed"
, "reconnect_secs": 2.0 , "reconnect_secs": 2.0
# D E P R E C A T E D # D E P R E C A T E D
@ -155,7 +154,8 @@
} }
} }
, "accounting": { , "accounting": {
"class": "cvttpy.exchanges.alpaca.acct_client.AlpacaAccounting" "credentials_key": "ALPACA_SANDBOX"
, "class": "cvttpy_trading.exchanges.alpaca.acct_client.AlpacaAccounting"
# D E P R E C A T E D # D E P R E C A T E D
, "REST": { , "REST": {
@ -180,11 +180,9 @@
, "name": "Bitstamp" , "name": "Bitstamp"
, "type": "SPOT" , "type": "SPOT"
, "module" : "cvttpy.oms.exchange"
, "connector_class" : "MdOnlyExchangeConnector"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.bitstamp.mkt_data.BitstampMdFeed" "class": "cvttpy_trading.exchanges.bitstamp.mkt_data.BitstampMdFeed"
, "reconnect_secs": 2 , "reconnect_secs": 2
# D E P R E C A T E D # D E P R E C A T E D
@ -204,7 +202,7 @@
, "type": "FUTURES" , "type": "FUTURES"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.binance.futures.mkt_data.BnbFutMktDataFeed" "class": "cvttpy_trading.exchanges.binance.futures.mkt_data.BnbFutMktDataFeed"
, "max_connections": 10 , "max_connections": 10
, "reconnect_secs": 2.0 , "reconnect_secs": 2.0
@ -234,7 +232,7 @@
, "type": "SPOT" , "type": "SPOT"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed" "class": "cvttpy_trading.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed"
, "max_connections": 10 , "max_connections": 10
, "reconnect_secs": 2.0 , "reconnect_secs": 2.0
@ -265,7 +263,7 @@
, "type": "SPOT" , "type": "SPOT"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed" "class": "cvttpy_trading.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed"
, "reconnect_secs": 10 , "reconnect_secs": 10
# D E P R E C A T E D # D E P R E C A T E D
@ -293,16 +291,8 @@
, "type": "SPOT" , "type": "SPOT"
, "order_entry": { , "order_entry": {
"class": "cvttpy.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient" "credentials_key": "COINBASE_ADV_TRD"
"class": "cvttpy_trading.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
# D E P R E C A T E D
# , "ws_url": ["WSS", "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"]
# }
# D E P R E C A T E D
, "api": { , "api": {
"web_socket": { "web_socket": {
@ -317,15 +307,8 @@
} }
, "accounting": { , "accounting": {
"class": "cvttpy.exchanges.coinbase.spot.account.CoinbaseSpotAccounting" "credentials_key": "COINBASE_ADV_RO"
"class": "cvttpy_trading.exchanges.coinbase.spot.account.CoinbaseSpotAccounting"
# D E P R E C A T E D
# , "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"]
# }
# D E P R E C A T E D
, "api": { , "api": {
"REST": { "REST": {
@ -337,16 +320,12 @@
} }
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed" "class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed"
, "reconnect_secs": 2 , "reconnect_secs": 2
, "max_connections": 10 , "max_connections": 10
, "price_throttle": true , "price_throttle": true
# D E P R E C A T E D
# , "ws_url": ["WSS", "wss://ws-feed.exchange.coinbase.com"]
# D E P R E C A T E D
, "api": { , "api": {
"REST": { "REST": {
"products_url": "https://api.exchange.coinbase.com/products" "products_url": "https://api.exchange.coinbase.com/products"
@ -364,11 +343,8 @@
, "name": "Gemini" , "name": "Gemini"
, "type": "SPOT" , "type": "SPOT"
, "module" : "cvttpy.oms.exchange"
, "connector_class" : "MdOnlyExchangeConnector"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.gemini.mkt_data.GeminiMdFeed" "class": "cvttpy_trading.exchanges.gemini.mkt_data.GeminiMdFeed"
, "reconnect_secs": 1 , "reconnect_secs": 1
# D E P R E C A T E D # D E P R E C A T E D
@ -389,11 +365,8 @@
, "name": "Gemini" , "name": "Gemini"
, "type": "SPOT" , "type": "SPOT"
, "module" : "cvttpy.oms.exchange"
, "connector_class" : "MdOnlyExchangeConnector"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.gemini.mkt_data.GeminiMdFeed" "class": "cvttpy_trading.exchanges.gemini.mkt_data.GeminiMdFeed"
, "reconnect_secs": 1 , "reconnect_secs": 1
# D E P R E C A T E D # D E P R E C A T E D
@ -422,7 +395,7 @@
} }
} }
, "accounting": { , "accounting": {
"class": "cvttpy.exchanges.gemini.account.GeminiExchAccounting" "class": "cvttpy_trading.exchanges.gemini.account.GeminiExchAccounting"
# D E P R E C A T E D # D E P R E C A T E D
, "REST": { , "REST": {
"open_orders_url": ["POST", "https://api.sandbox.gemini.com/v1/orders"] "open_orders_url": ["POST", "https://api.sandbox.gemini.com/v1/orders"]
@ -455,7 +428,7 @@
, "type": "SPOT" , "type": "SPOT"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.kraken.mkt_data.KrakenMdFeed" "class": "cvttpy_trading.exchanges.kraken.mkt_data.KrakenMdFeed"
, "max_connections": 10 , "max_connections": 10
, "reconnect_secs": 2.0 , "reconnect_secs": 2.0
@ -480,7 +453,7 @@
, "type": "SPOT" , "type": "SPOT"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy.exchanges.okx.mkt_data.OkxMdFeed" "class": "cvttpy_trading.exchanges.okx.mkt_data.OkxMdFeed"
, "max_connections": 10 , "max_connections": 10
, "reconnect_secs": 2.0 , "reconnect_secs": 2.0
@ -508,12 +481,12 @@
# , "mktdata" : { # , "mktdata" : {
# "class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed" # "class": "cvttpy_trading.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
# "ws_url": ["WS", "ws://localhost:10180/ws"] # "ws_url": ["WS", "ws://localhost:10180/ws"]
# } # }
# , "order_entry": { # , "order_entry": {
# "class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient" # "class": "cvttpy_trading.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
# , "REST": { # , "REST": {
# "new_order_url": ["POST", "http://localhost:10182/order"] # "new_order_url": ["POST", "http://localhost:10182/order"]
@ -525,7 +498,7 @@
# "ws_url": ["WSS", "ws://localhost:10181/ws"] # "ws_url": ["WSS", "ws://localhost:10181/ws"]
# } # }
# , "accounting": { # , "accounting": {
# "class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting" # "class": "cvttpy_trading.exchanges.mkt_simulator.acct_client.MktSimAccounting"
# , "REST": { # , "REST": {
# "positions_url": ["GET", "http://localhost:10083/positions"] # "positions_url": ["GET", "http://localhost:10083/positions"]
# , "trades_url": ["GET", "http://localhost:10083/trades"] # , "trades_url": ["GET", "http://localhost:10083/trades"]
@ -540,12 +513,12 @@
# , "mktdata" : { # , "mktdata" : {
# "class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed" # "class": "cvttpy_trading.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
# "ws_url": ["WS", "ws://localhost:8080/ws"] # "ws_url": ["WS", "ws://localhost:8080/ws"]
# } # }
# , "order_entry": { # , "order_entry": {
# "class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient" # "class": "cvttpy_trading.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
# , "REST": { # , "REST": {
# "new_order_url": ["POST", "http://localhost:8181/order"] # "new_order_url": ["POST", "http://localhost:8181/order"]
@ -557,7 +530,7 @@
# "ws_url": ["WSS", "ws://localhost:8180/ws"] # "ws_url": ["WSS", "ws://localhost:8180/ws"]
# } # }
# , "accounting": { # , "accounting": {
# "class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting" # "class": "cvttpy_trading.exchanges.mkt_simulator.acct_client.MktSimAccounting"
# , "REST": { # , "REST": {
# "positions_url": ["GET", "http://localhost:8182/positions"] # "positions_url": ["GET", "http://localhost:8182/positions"]
# , "trades_url": ["GET", "http://localhost:8182/trades"] # , "trades_url": ["GET", "http://localhost:8182/trades"]