separate folder for simulation, standardized REST and WS settings

This commit is contained in:
Cryptoval Trading Technologies
2025-05-13 15:55:49 +00:00
parent bc8c470a1a
commit ee9d93b5ad
3 changed files with 625 additions and 202 deletions
+276 -74
View File
@@ -14,6 +14,7 @@
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
# D E P R E C A T E D
, "REST": {
"submit_order_url": ["POST", "https://api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://api.alpaca.markets/v2/orders"]
@@ -22,12 +23,26 @@
, "cancel_all_url": ["DELETE", "https://api.alpaca.markets/v2/orders"]
}
, "ws_url": ["WSS", "wss://api.alpaca.markets/stream"]
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://api.alpaca.markets/stream"
}
, "REST": {
"submit_order_url": ["POST", "https://api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://api.alpaca.markets/v2/orders"]
, "order_status": ["GET", "https://api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_order_url": ["DELETE", "https://api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_all_url": ["DELETE", "https://api.alpaca.markets/v2/orders"]
}
}
}
, "mktdata" : {
"class": "cvttpy.exchanges.alpaca.mkt_data.AlpacaStockFeed"
, "reconnect_secs": 2.0
# , "ws_url": ["WSS", "wss://stream.data.alpaca.markets/v2/sip"]
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://stream.data.alpaca.markets/v2/iex"]
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
@@ -37,46 +52,40 @@
, "assets": ["GET", "https://api.alpaca.markets/v2/assets"]
# , "assets": ["GET", "https://data.alpaca.markets/v2/assets"]
}
# D E P R E C A T E D
, "api": {
"web_socket": {
# "wss://stream.data.alpaca.markets/v2/sip"
"url": "wss://stream.data.alpaca.markets/v2/iex"
}
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
, "hist_md_quotes": ["GET", "https://data.alpaca.markets/v2/stocks/quotes"]
, "hist_md_trades": ["GET", "https://data.alpaca.markets/v2/stocks/trades"]
, "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"]
, "assets": ["GET", "https://api.alpaca.markets/v2/assets"]
# , "assets": ["GET", "https://data.alpaca.markets/v2/assets"]
}
}
}
, "accounting": {
"class": "cvttpy.exchanges.alpaca.acct_client.AlpacaAccounting"
# D E P R E C A T E D
, "REST": {
"balances_url": ["GET", "https://api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://api.alpaca.markets/v2/account/activities/FILL"]
}
}
}
, "ALPACA_SIM": {
# https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA"
, "name": "Alpaca Trading"
, "type": "EQUITY"
# D E P R E C A T E D
, "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"]
, "api": {
"REST": {
"balances_url": ["GET", "https://api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://api.alpaca.markets/v2/account/activities/FILL"]
}
}
}
}
@@ -91,6 +100,7 @@
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
# D E P R E C A T E D
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://paper-api.alpaca.markets/v2/orders"]
@@ -99,11 +109,26 @@
, "cancel_all_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders"]
}
, "ws_url": ["WSS", "wss://paper-api.alpaca.markets/stream"]
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://paper-api.alpaca.markets/stream"
}
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
, "orders_url": ["GET", "https://paper-api.alpaca.markets/v2/orders"]
, "order_status": ["GET", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_order_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders/{order_id}"]
, "cancel_all_url": ["DELETE", "https://paper-api.alpaca.markets/v2/orders"]
}
}
}
, "mktdata" : {
"class": "cvttpy.exchanges.alpaca.mkt_data.AlpacaMdFeed"
, "reconnect_secs": 2.0
# D E P R E C A T E D
# , "ws_url": ["WSS", "wss://stream.data.alpaca.markets/v2/sip"]
, "ws_url": ["WSS", "wss://stream.data.alpaca.markets/v2/iex"]
, "REST": {
@@ -114,15 +139,39 @@
, "assets": ["GET", "https://paper-api.alpaca.markets/v2/assets"]
# , "assets": ["GET", "https://data.alpaca.markets/v2/assets"]
}
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://stream.data.alpaca.markets/v2/iex"
}
, "REST": {
"hist_md_bars": ["GET", "https://data.alpaca.markets/v2/stocks/bars"]
, "hist_md_quotes": ["GET", "https://data.alpaca.markets/v2/stocks/quotes"]
, "hist_md_trades": ["GET", "https://data.alpaca.markets/v2/stocks/trades"]
, "latest_trade": ["GET", "https://data.alpaca.markets/v2/stocks/{symbol}/trades/latest"]
, "assets": ["GET", "https://paper-api.alpaca.markets/v2/assets"]
}
}
}
, "accounting": {
"class": "cvttpy.exchanges.alpaca.acct_client.AlpacaAccounting"
# D E P R E C A T E D
, "REST": {
"balances_url": ["GET", "https://paper-api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://paper-api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://paper-api.alpaca.markets/v2/account/activities/FILL"]
}
# D E P R E C A T E D
, "api": {
"REST": {
"balances_url": ["GET", "https://paper-api.alpaca.markets/v2/positions"]
, "account_info_url": ["GET", "https://paper-api.alpaca.markets/v2/account"]
, "trades_url": ["GET", "https://paper-api.alpaca.markets/v2/account/activities/FILL"]
}
}
}
}
# ---------------------------- B
@@ -138,7 +187,15 @@
"class": "cvttpy.exchanges.bitstamp.mkt_data.BitstampMdFeed"
, "reconnect_secs": 2
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://ws.bitstamp.net"]
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://ws.bitstamp.net"
}
}
}
}
, "BNBFUT": {
@@ -151,12 +208,23 @@
, "max_connections": 10
, "reconnect_secs": 2.0
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://fstream.binance.com/ws"]
, "REST": {
# https://fapi.binance.com/fapi/v1/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://fapi.binance.com/fapi/v1/depth"],
}
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://fstream.binance.com/ws"
}
, "REST": {
# https://fapi.binance.com/fapi/v1/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://fapi.binance.com/fapi/v1/depth"],
}
}
}
}
@@ -171,11 +239,24 @@
, "reconnect_secs": 2.0
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://stream.binance.com/ws"]
, "REST": {
# https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://stream.binance.com/ws"
}
, "REST": {
# https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
}
}
}
, "BNBSPOT_US": {
@@ -187,12 +268,23 @@
"class": "cvttpy.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed"
, "reconnect_secs": 10
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://stream.binance.us:9443/ws"]
, "REST": {
# https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://stream.binance.us:9443/ws"
}
, "REST": {
# https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
}
}
}
, "COINBASE_AT": {
@@ -203,22 +295,45 @@
, "order_entry": {
"class": "cvttpy.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"]
}
, "ws_url": ["WSS", "wss://advanced-trade-ws.coinbase.com"]
# D E P R E C A T E D
, "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": {
"class": "cvttpy.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": {
"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" : {
@@ -228,37 +343,14 @@
, "max_connections": 10
, "price_throttle": true
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://ws-feed.exchange.coinbase.com"]
}
}
, "COINBASE_SIM": {
"exchange_id": "COINBASE"
, "name": "Coinbase Advanced Trade (Simulation)"
, "type": "SPOT"
# D E P R E C A T E D
, "mktdata" : {
"class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
"ws_url": ["WS", "ws://localhost:8080/ws"]
}
, "order_entry": {
"class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
, "REST": {
"new_order_url": ["POST", "http://localhost:8181/order"]
, "cancel_order_url": ["POST", "http://localhost:8181/cancel"]
, "cancel_all_url": ["POST", "http://localhost:8181/cancel_all"]
, "open_orders_url": ["GET", "http://localhost:8181/open_orders"]
, "order_status_url": ["GET", "http://localhost:8181/order_status"]
},
"ws_url": ["WSS", "ws://localhost:8180/ws"]
}
, "accounting": {
"class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
, "REST": {
"positions_url": ["GET", "http://localhost:8182/positions"]
, "trades_url": ["GET", "http://localhost:8182/trades"]
, "api": {
"web_socket": {
"url": "wss://ws-feed.exchange.coinbase.com"
}
}
}
}
@@ -276,18 +368,16 @@
"class": "cvttpy.exchanges.gemini.mkt_data.GeminiMdFeed"
, "reconnect_secs": 1
# D E P R E C A T E D
, "ws_url": ["WSS" , "wss://api.gemini.com/v2/marketdata"]
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://api.gemini.com/v2/marketdata"
}
}
}
# , "REST": {
# "open_orders_url": ["POST", "https://api.gemini.com/v1/orders"]
# , "order_status_url": ["POST", "https://api.gemini.com/v1/order/status"]
# , "cancel_all_url": ["POST", "https://api.gemini.com/v1/order/cancel/all"]
# , "balances_url": ["POST", "https://api.gemini.com/v1/balances"]
# , "positions_url": ["POST", "https://api.gemini.com/v1/positions"]
# , "trades_url": ["POST", "https://api.gemini.com/v1/mytrades"]
# , "symbol_url": ["GET", "https://api.gemini.com/v1/symbols/details"]
# , "margin_url": ["POST", "https://api.gemini.com/v1/margin"]
# }
}
, "GEMINI-SNDBX": {
@@ -303,18 +393,34 @@
"class": "cvttpy.exchanges.gemini.mkt_data.GeminiMdFeed"
, "reconnect_secs": 1
# D E P R E C A T E D
, "ws_url": ["WSS" , "wss://api.sandbox.gemini.com/v2/marketdata"]
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://api.sandbox.gemini.com/v2/marketdata"
}
}
}
, "order_entry": {
# D E P R E C A T E D
"REST": {
"order_status_url": ["POST", "https://api.sandbox.gemini.com/v1/order/status"]
, "cancel_all_url": ["POST", "https://api.sandbox.gemini.com/v1/order/cancel/all"]
}
# D E P R E C A T E D
, "api": {
"REST": {
"order_status_url": ["POST", "https://api.sandbox.gemini.com/v1/order/status"]
, "cancel_all_url": ["POST", "https://api.sandbox.gemini.com/v1/order/cancel/all"]
}
}
}
, "accounting": {
"class": "cvttpy.exchanges.gemini.account.GeminiExchAccounting"
# D E P R E C A T E D
, "REST": {
"open_orders_url": ["POST", "https://api.sandbox.gemini.com/v1/orders"]
, "order_status_url": ["POST", "https://api.sandbox.gemini.com/v1/order/status"]
@@ -324,6 +430,19 @@
, "symbol_url": ["GET", "https://api.sandbox.gemini.com/v1/symbols/details"]
, "margin_url": ["POST", "https://api.sandbox.gemini.com/v1/margin"]
}
# D E P R E C A T E D
, "api": {
"REST": {
"open_orders_url": ["POST", "https://api.sandbox.gemini.com/v1/orders"]
, "order_status_url": ["POST", "https://api.sandbox.gemini.com/v1/order/status"]
, "balances_url": ["POST", "https://api.sandbox.gemini.com/v1/balances"]
, "positions_url": ["POST", "https://api.sandbox.gemini.com/v1/positions"]
, "trades_url": ["POST", "https://api.sandbox.gemini.com/v1/mytrades"]
, "symbol_url": ["GET", "https://api.sandbox.gemini.com/v1/symbols/details"]
, "margin_url": ["POST", "https://api.sandbox.gemini.com/v1/margin"]
}
}
}
}
# ---------------------------- K
@@ -338,8 +457,17 @@
, "reconnect_secs": 2.0
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://ws.kraken.com/v2"]
, "REST": {}
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://ws.kraken.com/v2"
}
, "REST": {}
}
}
}
# ---------------------------- O
@@ -354,8 +482,82 @@
, "reconnect_secs": 2.0
# D E P R E C A T E D
, "ws_url": ["WSS", "wss://ws.okx.com:8443/ws/v5/public"]
, "REST": {}
# D E P R E C A T E D
, "api": {
"web_socket": {
"url": "wss://ws.okx.com:8443/ws/v5/public"
}
, "REST": {}
}
}
}
}
# , "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"]
# }
# }
# }
# , "COINBASE_SIM": {
# "exchange_id": "COINBASE"
# , "name": "Coinbase Advanced Trade (Simulation)"
# , "type": "SPOT"
# , "mktdata" : {
# "class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
# "ws_url": ["WS", "ws://localhost:8080/ws"]
# }
# , "order_entry": {
# "class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
# , "REST": {
# "new_order_url": ["POST", "http://localhost:8181/order"]
# , "cancel_order_url": ["POST", "http://localhost:8181/cancel"]
# , "cancel_all_url": ["POST", "http://localhost:8181/cancel_all"]
# , "open_orders_url": ["GET", "http://localhost:8181/open_orders"]
# , "order_status_url": ["GET", "http://localhost:8181/order_status"]
# },
# "ws_url": ["WSS", "ws://localhost:8180/ws"]
# }
# , "accounting": {
# "class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
# , "REST": {
# "positions_url": ["GET", "http://localhost:8182/positions"]
# , "trades_url": ["GET", "http://localhost:8182/trades"]
# }
# }
# }