This commit is contained in:
Cryptoval Trading Technologies 2024-12-03 18:58:02 +00:00
parent cf62777b62
commit 8b109e933c
4 changed files with 211 additions and 148 deletions

View File

@ -1,153 +1,172 @@
# ------- I M P O R T A N T
# -----------------------------------------------------------------
# ---- DO NOT USE JSON Booleans, jq considers "false" as missing,
# ---- So it will replace it with default value
# ---- Instead use strings (case insensitive): "false", "no", "N", "T"
# -----------------------------------------------------------------
{ {
"cvtt.vpn": { "cvtt.vpn": {
// ----------- C l o u d // ----------- C l o u d
"cloud11": { "cloud11": {
"type": "cloud", "type": "cloud",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
}, },
"cloud15": { "cloud15": {
"type": "cloud", "type": "cloud",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
}, },
"cloud16": { "cloud16": {
"type": "cloud", "type": "cloud",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
}, },
"cloud21": { "cloud21": {
"type": "cloud", "type": "cloud",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
}, },
"cloud22": { "cloud22": {
"type": "cloud", "type": "cloud",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
}, },
"cloud23": { "cloud23": {
"type": "cloud", "type": "cloud",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
}, },
"cloud24": { "cloud24": {
"type": "cloud", "type": "cloud",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
}, },
// ----------- B a r e M e t a l // ----------- B a r e M e t a l
"homestore": { "homestore": {
"type": "metal", "type": "metal",
"users": ["oleg"], "users": ["oleg"],
"docker": true, "docker": "true",
}, },
"nsbackup": { "nsbackup": {
"type": "metal", "type": "metal",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
}, },
"cryptoval2": { "cryptoval2": {
"type": "metal", "type": "metal",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
"desktop": true, "desktop": "true",
}, },
"cryptoval3": { "cryptoval3": {
"type": "metal", "type": "metal",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
"desktop": true, "desktop": "true",
}, },
"cryptoval4": { "cryptoval4": {
"type": "metal", "type": "metal",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
"desktop": true, "desktop": "true",
}, },
"dtvmhost": { "dtvmhost": {
"type": "metal", "type": "metal",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
"desktop": true, "desktop": "true",
}, },
"gpushnik": { "gpushnik": {
"type": "metal", "type": "metal",
"users": ["oleg"], "users": ["oleg"],
"docker": true, "docker": "true",
}, },
// ----------- V i r t u a l M a c h i n e s // ----------- V i r t u a l M a c h i n e s
// - GUI
"cvtt-admin": { "cvtt-admin": {
"type": "vm", "type": "vm",
"users": ["oleg"], "users": ["oleg"],
"docker": true, "docker": "true",
"desktop": true, "gui": "true",
},
"cvtt-build": {
"type": "vm",
"users": ["oleg"],
"docker": true,
}, },
"cvtt-dev": { "cvtt-dev": {
"type": "vm", "type": "vm",
"users": ["oleg"], "users": ["oleg"],
"docker": true, "docker": "true",
"desktop": true, "gui": "true",
}, },
"cvtt-edu": { "cvtt-edu": {
"type": "vm", "type": "vm",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
"desktop": true, "gui": "true",
},
"cvtt-md": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": true,
},
"cvtt-prod-03": {
"type": "vm",
"users": ["oleg"],
"docker": false,
"supervisor": true,
},
"cvtt-prod-eqty-01": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": true,
}, },
"cvtt-research": { "cvtt-research": {
"type": "vm", "type": "vm",
"users": ["oleg"], "users": ["oleg"],
"docker": true, "docker": "true",
}, "gui": "true",
"cvtt-testserver": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": true,
},
"cvttdata": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": true,
},
"cvttdata-testdb": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": true,
}, },
"desktop": { "desktop": {
"type": "vm", "type": "vm",
"users": ["oleg"], "users": ["oleg"],
"docker": false, "docker": "false",
"desktop": true, "gui": "true",
},
// -- Headless
"cvtt-build": {
"type": "vm",
"users": ["oleg"],
"docker": "true",
},
"cvtt-md": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": "true",
},
"cvtt-prod-03": {
"type": "vm",
"users": ["oleg"],
"docker": "false",
"supervisor": "true",
},
"cvtt-prod-eqty-01": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": "true",
},
"cvttdata": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": "true",
},
"cvtt-testserver": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": "true",
"to_check": "No",
},
"cvttdata-testdb": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": "true",
"to_check": "false",
"timeout_sec": 11,
}, },
"ops-server": { "ops-server": {
"type": "vm", "type": "vm",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": true, "docker": "true",
},
"cvtt-dev-server": {
"type": "vm",
"users": ["oleg", "cvtt"],
"docker": "true",
"to_check": "Yes",
}, },
}, },

View File

@ -29,7 +29,21 @@
"enabled": true "enabled": true
, "streaming": false , "streaming": false
}, },
} },
"ALPACA_SIM": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
},
},
} }
} }

View File

@ -1,10 +1,13 @@
@var CONFIG_SERVICE=cloud23.cvtt.vpn:6789 @var CONFIG_SERVICE=cloud23.cvtt.vpn:6789
@var SQLITE_DIR=/home/oleg/tmp/sqlite
@var DATE="20241114" @var DATA_DIR=/home/coder/project/data
# @var FROM_TIME="2024-11-14 13:30:00"
# @var INTERVAL="18 minutes" @var MD_WS_PORT=10180
# @var INTERVAL="5 minutes" @var OE_WS_PORT=10181
@var OE_REST_PORT=10182
@var ACCT_REST_PORT=10083
@var DATE=20241114
{ {
"refdata": @inc=http://${CONFIG_SERVICE}/refdata/refdata "refdata": @inc=http://${CONFIG_SERVICE}/refdata/refdata
@ -29,75 +32,70 @@
"sources": [ "sources": [
{ {
"loader_class": "cvttpy.trading.mkt_data.time_series.loaders.sqlite_loader.SqliteMdLoader" "loader_class": "cvttpy.trading.mkt_data.time_series.loaders.sqlite_loader.SqliteMdLoader"
, "file_name": "${SQLITE_DIR}/20240906.COIN.1min.db" , "file_name": "${DATA_DIR}/eqty/${DATE}.alpaca_sim_md.db"
, "table_name": "md_1min_bars"
, "columns": [
"tstamp"
, "tstamp_ns as tm" # must have tm for DataFrame
, "tstamp_ns as local_time_ns" # must have for simrunner
, "exchange_id"
, "instrument_id"
, "open"
, "high"
, "low"
, "close"
, "volume"
, "vwap"
, "num_trades"
]
, "time_column": "tstamp"
, "exchange_id": "ALPACA" , "exchange_id": "ALPACA"
, "instruments": ["STOCK-COIN"] , "instruments": ["STOCK-COIN", "STOCK-CAN"]
, "md_type": "HIST_BAR" , "md_types": {
"TRADES": {
"table_name": "md_trades"
, "columns": [
"tstamp"
, "tstamp_ns as tm" # required column
, "tstamp_ns as exchange_ts_ns"
, "tstamp_ns as local_time_ns"
, "exchange_id"
, "instrument_id"
, "exch as exchange_code"
, "px as price"
, "qty as quantity"
, "'' as taker_side" # get from condition (?)
, "trade_id"
, "condition"
, "tape"
]
, "time_column": "tstamp"
}
, "BOOK_TOP": {
"table_name": "md_quotes"
, "columns": [
"tstamp"
, "tstamp_ns as tm" # required column
, "tstamp_ns as local_time_ns"
, "exchange_id"
, "instrument_id"
, "bid_exch as bid_exchange_code"
, "ask_exch as ask_exchange_code"
, "bid_px as bid_price"
, "bid_qty as bid_quantity"
, "ask_px as ask_price"
, "ask_qty as ask_quantity"
]
, "time_column": "tstamp"
}
# , "HIST_BAR": {
# "table_name": "md_1min_bars"
# , "columns": [
# "tstamp"
# , "tstamp_ns as tm" # must have tm for DataFrame
# , "tstamp_ns as local_time_ns" # must have for simrunner
# , "exchange_id"
# , "instrument_id"
# , "open"
# , "high"
# , "low"
# , "close"
# , "volume"
# , "vwap"
# , "num_trades"
# ]
# , "time_column": "tstamp"
# }
}
} }
# { ]
# "loader_class": "cvttpy.trading.mkt_data.time_series.loaders.tsdb_loader.TimescaleTSLoader"
# , "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": ${INTERVAL}
# , "from_time": ${FROM_TIME} #"2024-10-03 09:00:00"
# , "exchange_id": "COINBASE"
# , "instruments": ["PAIR-BTC-USD"]
# , "md_type": "TRADES"
# , "table_name": "coinbase.md_trades"
# , "columns": [
# "time",
# "local_time_ns",
# "exchange_ts_ns",
# "exchange_id",
# "instrument_id",
# "price",
# "quantity",
# "taker_side",
# "'TRD' as type",
# ]
# , "time_column": "time"
# }
# , {
# "loader_class": "cvttpy.trading.mkt_data.time_series.loaders.tsdb_loader.TimescaleTSLoader"
# , "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": ${INTERVAL}
# , "from_time": ${FROM_TIME} #"2024-10-03 09:00:00"
# , "exchange_id": "COINBASE"
# , "instruments": ["PAIR-BTC-USD"]
# , "md_type": "BOOK_TOP"
# , "table_name": "coinbase.md_booktops"
# , "columns": [
# "time",
# "local_time_ns",
# "exchange_id",
# "instrument_id",
# "bid_price",
# "bid_quantity",
# "ask_price",
# "ask_quantity",
# "'BT' as type",
# ]
# , "time_column": "time"
# }
# ]
, "api": { , "api": {
"web_socket": { "web_socket": {
"url": "ws://localhost:8080/ws" "url": "ws://localhost:${MD_WS_PORT}/ws"
} }
} }
} }
@ -109,32 +107,32 @@
, "pricing_method": "BY_MKT_TRD_PRICE_BY_TRADE" , "pricing_method": "BY_MKT_TRD_PRICE_BY_TRADE"
, "short_sale_allowed": false , "short_sale_allowed": false
, "fee_schedule": { , "fee_schedule": { # ALPACA -
"taker_fee_rate": 0.006 "taker_fee_rate": 0.0
"maker_fee_rate": 0.004 "maker_fee_rate": 0.0
} }
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"] # , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
} }
, "api": { , "api": {
"web_socket": { "web_socket": {
"url": "ws://localhost:8180/ws" "url": "ws://localhost:${OE_WS_PORT}/ws"
} }
, "REST": { , "REST": {
"port": 8181 "port": ${OE_REST_PORT}
"new_order_url": ["POST", "http://localhost:8181/order"] "new_order_url": ["POST", "http://localhost:${OE_REST_PORT}/order"]
, "cancel_order_url": ["POST", "http://localhost:8181/cancel"] , "cancel_order_url": ["POST", "http://localhost:${OE_REST_PORT}/cancel"]
, "cancel_all_url": ["POST", "http://localhost:8181/cancel_all"] , "cancel_all_url": ["POST", "http://localhost:${OE_REST_PORT}/cancel_all"]
, "open_orders_url": ["GET", "http://localhost:8181/open_orders"] , "open_orders_url": ["GET", "http://localhost:${OE_REST_PORT}/open_orders"]
, "order_status_url": ["GET", "http://localhost:8181/order_status"] , "order_status_url": ["GET", "http://localhost:${OE_REST_PORT}/order_status"]
} }
} }
} }
, "accounting": { , "accounting": {
"api": { "api": {
"REST": { "REST": {
"port": 8182 "port": ${ACCT_REST_PORT}
, "positions_url": ["GET", "http://localhost:8182/positions"] , "positions_url": ["GET", "http://localhost:${ACCT_REST_PORT}/positions"]
, "trades_url": ["GET", "http://localhost:8182/trades"] , "trades_url": ["GET", "http://localhost:${ACCT_REST_PORT}/trades"]
} }
} }
} }

View File

@ -3,6 +3,38 @@
{ {
"__DUMMY__": {} "__DUMMY__": {}
# ----------------------------- A # ----------------------------- A
, "ALPACA_SIM": {
# https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA"
, "name": "Alpaca Trading"
, "type": "EQUITY"
, "mktdata" : {
"class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
"ws_url": ["WS", "ws://localhost:10180/ws"]
}
, "order_entry": {
"class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
, "REST": {
"new_order_url": ["POST", "http://localhost:10182/order"]
, "cancel_order_url": ["POST", "http://localhost:10182/cancel"]
, "cancel_all_url": ["POST", "http://localhost:10182/cancel_all"]
, "open_orders_url": ["GET", "http://localhost:10182/open_orders"]
, "order_status_url": ["GET", "http://localhost:10182/order_status"]
},
"ws_url": ["WSS", "ws://localhost:10181/ws"]
}
, "accounting": {
"class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
, "REST": {
"positions_url": ["GET", "http://localhost:10083/positions"]
, "trades_url": ["GET", "http://localhost:10083/trades"]
}
}
}
, "ALPACA_SNDBX": { , "ALPACA_SNDBX": {
# https://docs.alpaca.markets/reference/ # https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA" "exchange_id": "ALPACA"