Compare commits
80 Commits
76cb915702
...
42491d050c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42491d050c | ||
|
|
2ebac80d7b | ||
|
|
2abce705ee | ||
|
|
606f0a685d | ||
|
|
b2594d75be | ||
|
|
7ff811196e | ||
|
|
4b0309631e | ||
|
|
9b580edf9e | ||
|
|
27b46bb5fb | ||
|
|
e07264da16 | ||
|
|
c9bbcfdf8b | ||
|
|
4000cb2cec | ||
|
|
13dc133043 | ||
|
|
84bd268ac4 | ||
|
|
357faf0442 | ||
|
|
6d073efb04 | ||
|
|
b90e1f55b2 | ||
|
|
dd5cb32d0b | ||
|
|
ae8d85b216 | ||
|
|
92466faa3e | ||
|
|
64aaf6d3c4 | ||
|
|
36c12092bb | ||
|
|
6f0c8acefc | ||
|
|
a0464ad59e | ||
|
|
d5b4886202 | ||
|
|
6371a713bc | ||
|
|
1a6c940e6d | ||
|
|
35e037d2bf | ||
|
|
4ad394e28b | ||
|
|
71381027fd | ||
|
|
58d298cc58 | ||
|
|
ab62540c99 | ||
|
|
1454db27fb | ||
|
|
aced092d0a | ||
|
|
3d8c3114ab | ||
|
|
e59c4431de | ||
|
|
edfdc4aee8 | ||
|
|
b8d3fd905a | ||
|
|
fa098a79a0 | ||
|
|
fa94cba379 | ||
|
|
561251fec7 | ||
|
|
1cef86db6b | ||
|
|
f52bc56171 | ||
|
|
9ae93e6132 | ||
|
|
98e08b86b7 | ||
|
|
f167ee1f71 | ||
|
|
c8c2f08c20 | ||
|
|
92cfbc36a6 | ||
|
|
3e774723c1 | ||
|
|
420db0fe4e | ||
|
|
5c028d6236 | ||
|
|
fb390fa5e7 | ||
|
|
e08805c75f | ||
|
|
fed37d0729 | ||
|
|
f5839e2d76 | ||
|
|
789e05c539 | ||
|
|
a28a263aea | ||
|
|
6b962a489e | ||
|
|
9d531a87e6 | ||
|
|
7ead186330 | ||
|
|
88fccf318e | ||
|
|
0e41203177 | ||
|
|
27dd217f9a | ||
|
|
69f9ea6e6e | ||
|
|
b3b6ee4b47 | ||
|
|
5aaa4ff2a3 | ||
|
|
fb56028485 | ||
|
|
3dcdcddba9 | ||
|
|
42a47c68a6 | ||
|
|
20270da409 | ||
|
|
af375e9587 | ||
|
|
f8fad120d7 | ||
|
|
467fa58d32 | ||
|
|
313f535887 | ||
|
|
3d18791797 | ||
|
|
1bacfb6c42 | ||
|
|
89dd815ea1 | ||
|
|
e1c581afcb | ||
|
|
d96ae9c408 | ||
|
|
92a561beec |
@ -52,6 +52,11 @@
|
||||
"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 @@
|
||||
{
|
||||
"TRDALGO_001": {
|
||||
"class": "cvttpy.trading.algos.simple.SimpleTradingAlgo"
|
||||
"DIRECT_ORDER_ALGO": {
|
||||
"class": "cvttpy_trading.trading.algos.common.trading_algo.DirOrdTradingAlgo"
|
||||
, "params": {}
|
||||
}
|
||||
, "TRDALGO_SIMPLE_BO": {
|
||||
"class": "cvttpy.trading.algos.bid_and_offer.SimpleBidAndOfferTradingAlgo"
|
||||
"class": "cvttpy_trading.trading.algos.bid_and_offer.SimpleBidAndOfferTradingAlgo"
|
||||
, "params": {}
|
||||
}
|
||||
, "TRDALGO_MOOMOC_01": {
|
||||
"class": "cvttpy.trading.algos.moo_moc.MooMocTradingAlgo"
|
||||
"class": "cvttpy_trading.trading.algos.moo_moc.MooMocTradingAlgo"
|
||||
, "params": {}
|
||||
}
|
||||
, "TRDALGO_TWAP01": {
|
||||
"class": "cvttpy.trading.algos.twap.TwapAlgo"
|
||||
"class": "cvttpy_trading.trading.algos.twap.TwapAlgo"
|
||||
, "params": {
|
||||
"num_slices": 5
|
||||
, "duration_sec": 1500 # 25 min
|
||||
@ -24,7 +24,7 @@
|
||||
},
|
||||
}
|
||||
, "TRDALGO_ICEBERG01_COINBS": {
|
||||
"class": "cvttpy.trading.algos.twap.TwapAlgo"
|
||||
"class": "cvttpy_trading.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.algos.twap.TwapAlgo"
|
||||
"class": "cvttpy_trading.trading.algos.twap.TwapAlgo"
|
||||
, "params": {
|
||||
"num_slices": 5
|
||||
, "duration_sec": 1500 # 25 min
|
||||
|
||||
@ -1,31 +1,63 @@
|
||||
# /comm
|
||||
{
|
||||
"pubsub" : {
|
||||
"redis": {
|
||||
"docker_microservices": {
|
||||
"url": "redis://redis:6379"
|
||||
, "type": "redis"
|
||||
"REDIS_DCKR_COMPOSE": { # docker compose used
|
||||
"type": "redis"
|
||||
, "url": "redis://redis:6379"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
, "localhost": {
|
||||
"url": "redis://localhost"
|
||||
, "type": "redis"
|
||||
, "REDIS_LCLHOST": {
|
||||
"type": "redis"
|
||||
, "url": "redis://localhost"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
, "localhost-2-docker": {
|
||||
"url": "redis://localhost:16379"
|
||||
, "type": "redis"
|
||||
, "REDIS_LCLHOST_2_DCKR_COMPOSE": {
|
||||
"type": "redis"
|
||||
, "url": "redis://localhost:16379"
|
||||
, "read_timeout" : 0.01
|
||||
, "ping_timeout_secs": 2.0
|
||||
, "verbose": false
|
||||
}
|
||||
, "cloud29": {
|
||||
"url": "redis://cloud29.cvtt.vpn:6379"
|
||||
, "type": "redis"
|
||||
, "REDIS_tester-01_2_DCKR_COMPOSE": { # to use docker compose service from outside
|
||||
"type": "redis"
|
||||
, "url": "redis://cvtt-tester-01.cvtt.vpn:16379"
|
||||
, "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,6 +1,4 @@
|
||||
@var COORDINATOR_REST_PORT=23456
|
||||
# @var COORDINATOR_WS_PORT=12345
|
||||
|
||||
@var PRICER_REST_PORT=23457
|
||||
@var PRICER_WS_PORT=12346
|
||||
|
||||
@ -16,74 +14,6 @@
|
||||
, "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": {
|
||||
@ -128,39 +58,112 @@
|
||||
"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"
|
||||
"cred_key": "TSDB_CVTT_TESTER_01_DIRECT"
|
||||
# "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
|
||||
, "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": ${PRICER_REST_PORT},
|
||||
"base_url": ["POST", "http://localhost:${PRICER_REST_PORT}"]
|
||||
"port": @env{PRICER_REST_PORT},
|
||||
"base_url": ["POST", "http://localhost:@env{PRICER_REST_PORT}"]
|
||||
}
|
||||
, "WS": {
|
||||
"url": "ws://localhost:${PRICER_WS_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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
20
data/apps/utils/coinbase/accounting.cfg
Normal file
20
data/apps/utils/coinbase/accounting.cfg
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"__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,6 +301,25 @@
|
||||
},
|
||||
}
|
||||
}
|
||||
, "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,6 +290,23 @@
|
||||
, "name": "Coinbase Advanced Trade"
|
||||
, "type": "SPOT"
|
||||
|
||||
, "mktdata" : {
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseSpotMdFeed"
|
||||
# "class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed"
|
||||
|
||||
, "reconnect_secs": 2
|
||||
, "max_connections": 10
|
||||
, "price_throttle": true
|
||||
|
||||
, "api": {
|
||||
"REST": {
|
||||
"products_url": "https://api.exchange.coinbase.com/products"
|
||||
},
|
||||
"web_socket": {
|
||||
"url": "wss://ws-feed.exchange.coinbase.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
, "order_entry": {
|
||||
"credentials_key": "COINBASE_ADV_TRD"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
|
||||
@ -319,8 +336,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
, "COINBASE_FUT": {
|
||||
"exchange_id": "COINBASE-FUT"
|
||||
, "name": "Coinbase Advanced Trade Futures"
|
||||
, "type": "FUTURES"
|
||||
|
||||
, "mktdata" : {
|
||||
"class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed"
|
||||
"credentials_key": "COINBASE_ADV_TRD"
|
||||
"class": "cvttpy_trading.exchanges.coinbase.futures.mkt_data.CoinbaseFutMdFeed"
|
||||
|
||||
, "reconnect_secs": 2
|
||||
, "max_connections": 10
|
||||
@ -328,13 +352,50 @@
|
||||
|
||||
, "api": {
|
||||
"REST": {
|
||||
"products_url": "https://api.exchange.coinbase.com/products"
|
||||
"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://ws-feed.exchange.coinbase.com"
|
||||
"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
|
||||
, "dynamic_instrument_exchanges": ["ALPACA"]
|
||||
, "instant_exch_inst_ids": ["ALPACA"]
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user