Compare commits

...

7 Commits

Author SHA1 Message Date
Cryptoval Trading Technologies 641b083a49 progress 2024-10-25 21:07:31 +00:00
Cryptoval Trading Technologies f512abe271 progress with mkt simulator 2024-10-15 23:37:40 +00:00
Cryptoval Trading Technologies b693b57778 progress 2024-10-11 22:18:06 +00:00
Cryptoval Trading Technologies 4bc2ee411a progress 2024-10-06 16:08:06 +00:00
Cryptoval Trading Technologies 16228e7f0d fix 2024-10-03 15:11:34 +00:00
Cryptoval Trading Technologies e5448f2ab4 progress 2024-09-11 01:28:31 +00:00
Cryptoval Trading Technologies 0e726530ee run_trading_calendar 2024-09-11 02:10:06 +01:00
19 changed files with 450 additions and 33 deletions
+5 -2
View File
@@ -3,10 +3,13 @@
"class": "cvttpy.trading.algos.simple.SimpleTradingAlgo"
, "params": {}
}
, "TRDALGO_SIMPLE_BO": {
"class": "cvttpy.trading.algos.bid_and_offer.SimpleBidAndOfferTradingAlgo"
, "params": {}
}
, "TRDALGO_MOOMOC_01": {
"class": "cvttpy.trading.algos.moo_moc.MooMocTradingAlgo"
, "params": {
},
, "params": {}
}
, "TRDALGO_TWAP01": {
"class": "cvttpy.trading.algos.twap.TwapAlgo"
+35
View File
@@ -0,0 +1,35 @@
# INTENDED TO REPLACE redis.cfg
{
"redis": {
"localhost": {
"url": "redis://localhost"
, "read_timeout" : 0.01
, "ping_timeout_secs": 2.0
}
, "cvttdata": {
"url": "redis://cvttdata.cvtt.vpn"
, "read_timeout" : 0.01
, "ping_timeout_secs": 2.0
}
, "cvtt-testserver": {
"url": "redis://cvtt-testserver.cvtt.vpn"
, "read_timeout" : 0.01
, "ping_timeout_secs": 2.0
}
, "cvtt-prod-eqty-01": {
"url": "redis://cvtt-prod-eqty-01.cvtt.vpn"
, "read_timeout" : 0.01
, "ping_timeout_secs": 2.0
}
, "cvtt-prod-03": {
"url": "redis://cvtt-prod-03.cvtt.vpn"
, "read_timeout" : 0.01
, "ping_timeout_secs": 2.0
}
, "cvtt-prod-eqty-01": {
"url": "redis://cvtt-prod-eqty-01.cvtt.vpn"
, "read_timeout" : 0.01
, "ping_timeout_secs": 2.0
}
}
}
+1 -1
View File
@@ -34,7 +34,7 @@
}
# --------------------------------------------------------------------
, "trader": {
"app_channel": "TRDR" active_exchanges_: str
"app_channel": "TRDR"
, "is_short_allowed": false
, "exchanges_settings": {
+13 -13
View File
@@ -18,19 +18,19 @@
, "status_channel": "Status-CVTT"
}
, "data_checks": {
"BNBFUT-1": {
"tables": ["bnbfut.md_booktops"]
, "exchange_id": "BNBFUT"
, "instruments": ["PERP-BTC-USDT"]
, "threshold_sec": 3600.0
}
, "BNBFUT-2": {
"tables": ["bnbfut.md_trades"]
, "exchange_id": "BNBFUT"
, "instruments": ["PERP-BTC-USDT"]
, "threshold_sec": 3600.0
}
, "BNBSPOT-1": {
# "BNBFUT-1": {
# "tables": ["bnbfut.md_booktops"]
# , "exchange_id": "BNBFUT"
# , "instruments": ["PERP-BTC-USDT"]
# , "threshold_sec": 3600.0
# }
# , "BNBFUT-2": {
# "tables": ["bnbfut.md_trades"]
# , "exchange_id": "BNBFUT"
# , "instruments": ["PERP-BTC-USDT"]
# , "threshold_sec": 3600.0
# }
"BNBSPOT-1": {
"tables": ["bnbspot.md_booktops"]
, "exchange_id": "BNBSPOT"
, "instruments": ["PAIR-BTC-USDT"]
+64 -4
View File
@@ -14,7 +14,59 @@
//------------------------------------------------------------------------------
, "md_recorder": {
"db": {
"instrument_groups": {
"BNBFUT_CLD21": [
"BNBFUT:PERP-BTC-USDT"
, "BNBFUT:PERP-ETH-USDT"
]
"BNBFUT_CVTTDATA": [
"BNBFUT:PERP-BTC-USDT"
, "BNBFUT:PERP-ETH-USDT"
]
, "BNBSPOT_CLD21": [
"BNBSPOT:PAIR-ADA-USDT"
, "BNBSPOT:PAIR-BCH-USDT"
, "BNBSPOT:PAIR-BTC-USDT"
, "BNBSPOT:PAIR-DOT-USDT"
, "BNBSPOT:PAIR-ETH-USDT"
, "BNBSPOT:PAIR-LTC-USDT"
, "BNBSPOT:PAIR-SOL-USDT"
, "BNBSPOT:PAIR-USDC-USDT"
, "BNBSPOT:PAIR-XRP-USDT"
]
, "BNBSPOT_CVTTDATA": [
"BNBSPOT:PAIR-ADA-USDT"
, "BNBSPOT:PAIR-BCH-USDT"
, "BNBSPOT:PAIR-BTC-USDT"
, "BNBSPOT:PAIR-DOT-USDT"
, "BNBSPOT:PAIR-ETH-USDT"
, "BNBSPOT:PAIR-LTC-USDT"
, "BNBSPOT:PAIR-SOL-USDT"
, "BNBSPOT:PAIR-USDC-USDT"
, "BNBSPOT:PAIR-XRP-USDT"
]
, "COINBASE_CLD21": [
"COINBASE:PAIR-ADA-USD"
, "COINBASE:PAIR-BCH-USD"
, "COINBASE:PAIR-BTC-USD"
, "COINBASE:PAIR-DOT-USD"
, "COINBASE:PAIR-ETH-USD"
, "COINBASE:PAIR-LTC-USD"
, "COINBASE:PAIR-SOL-USD"
, "COINBASE:PAIR-XRP-USD"
]
, "COINBASE_CVTTDATA": [
"COINBASE:PAIR-ADA-USD"
, "COINBASE:PAIR-BCH-USD"
, "COINBASE:PAIR-BTC-USD"
, "COINBASE:PAIR-DOT-USD"
, "COINBASE:PAIR-ETH-USD"
, "COINBASE:PAIR-LTC-USD"
, "COINBASE:PAIR-SOL-USD"
, "COINBASE:PAIR-XRP-USD"
]
}
, "db": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
}
, "flush_interval_sec": 0.5
@@ -31,11 +83,15 @@
}
, "BNBSPOT": {
"instruments": {
"PAIR-BTC-USDT": ["TRADES", "BOOK_TOP"]
"PAIR-ADA-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-BCH-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-BTC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-DOT-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-ETH-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-LTC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-SOL-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-USDC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USDT": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "bnbspot.md_trades"
@@ -56,9 +112,13 @@
}
, "COINBASE": {
"instruments": {
"PAIR-BTC-USD": ["TRADES", "BOOK_TOP"]
"PAIR-ADA-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-BCH-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-BTC-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-DOT-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-ETH-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-LTC-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-SOL-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USD": ["TRADES", "BOOK_TOP"]
}
, "tables": {
+35
View File
@@ -0,0 +1,35 @@
@var CONFIG_SERVICE=cloud23.cvtt.vpn:6789
{
"refdata": @inc=http://${CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://${CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://${CONFIG_SERVICE}/apps/common/algos
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
},
"ALPACA-MD-REST-ONLY": {
"mkt_data": {
"enabled": true
, "streaming": false
},
},
"COINBASE_SIM": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
},
}
}
}
+141
View File
@@ -0,0 +1,141 @@
@var CONFIG_SERVICE=cloud23.cvtt.vpn:6789
@var SQLITE_DIR=/home/oleg/tmp/sqlite
@var FROM_TIME="2024-10-03 13:30:00"
@var INTERVAL="18 minutes"
# @var INTERVAL="5 minutes"
{
"refdata": @inc=http://${CONFIG_SERVICE}/refdata/refdata
, "redis": @inc=http://${CONFIG_SERVICE}/apps/common/redis
, "comm": @inc=http://${CONFIG_SERVICE}/apps/common/comm
, "redis_settings": "localhost"
, "simulation": {
# "speed_factor": 1.0,
"speed_factor": 0.0,
"time_events_interval_ms": 0
}
, "market_simulator" : {
"initial_positions": {
"exchange": "COINBASE",
"assets": {
"BTC": 0.5
, "ETH": 0.0
, "USD": 10_000.0
}
}
, "market_data": {
"sources": [
# {
# "loader_class": "cvttpy.trading.mkt_data.time_series.loaders.sqlite_loader.SqliteMdLoader"
# , "file_name": "${SQLITE_DIR}/20240906.COIN.1min.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"
# , "instruments": ["STOCK-COIN"]
# , "md_type": "HIST_BAR"
# }
{
"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": {
"web_socket": {
"url": "ws://localhost:8080/ws"
}
}
}
, "order_entry": {
"execution": {
"execute_on": ["BOOK_TOP", "TRADES"]
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_TRADE"
, "short_sale_allowed": false
, "fee_schedule": {
"taker_fee_rate": 0.006
"maker_fee_rate": 0.004
}
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
, "api": {
"web_socket": {
"url": "ws://localhost:8180/ws"
}
, "REST": {
"port": 8181
"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"]
}
}
}
, "accounting": {
"api": {
"REST": {
"port": 8182
, "positions_url": ["GET", "http://localhost:8182/positions"]
, "trades_url": ["GET", "http://localhost:8182/trades"]
}
}
}
}
}
+22 -6
View File
@@ -39,9 +39,9 @@
"md_symbol": "AAVEBUSD",
"trade_symbol": "AAVEBUSD"
},
"PAIR-XRP-BUSD": {
"md_symbol": "XRPBUSD",
"trade_symbol": "XRPBUSD"
"PAIR-ADA-USDT": {
"md_symbol": "ADAUSDT",
"trade_symbol": "ADAUSDT"
},
"PAIR-AVAX-BUSD": {
"md_symbol": "AVAXBUSD",
@@ -51,6 +51,10 @@
"md_symbol": "BCHBUSD",
"trade_symbol": "BCHBUSD"
},
"PAIR-BCH-USDT": {
"md_symbol": "BCHUSDT",
"trade_symbol": "BCHUSDT"
},
"PAIR-BTC-BUSD": {
"md_symbol": "BTCBUSD",
"trade_symbol": "BTCBUSD"
@@ -71,6 +75,10 @@
"md_symbol": "DOGEUSDT",
"trade_symbol": "DOGEUSDT"
},
"PAIR-DOT-USDT": {
"md_symbol": "DOTUSDT",
"trade_symbol": "DOTUSDT"
},
"PAIR-ETH-BUSD": {
"md_symbol": "ETHBUSD",
"trade_symbol": "ETHBUSD"
@@ -111,9 +119,9 @@
"md_symbol": "MATICUSDT",
"trade_symbol": "MATICUSDT"
},
"PAIR-SOL-BUSD": {
"md_symbol": "SOLBUSD",
"trade_symbol": "SOLBUSD"
"PAIR-SOL-USDT": {
"md_symbol": "SOLUSDT",
"trade_symbol": "SOLUSDT"
},
"PAIR-UNI-BUSD": {
"md_symbol": "UNIBUSD",
@@ -235,6 +243,10 @@
"md_symbol": "AVAX-USD",
"trade_symbol": "AVAX-USD"
},
"PAIR-ADA-USD": {
"md_symbol": "ADA-USD",
"trade_symbol": "ADA-USD"
},
"PAIR-BCH-USD": {
"md_symbol": "BCH-USD",
"trade_symbol": "BCH-USD"
@@ -247,6 +259,10 @@
"md_symbol": "DOGE-USD",
"trade_symbol": "DOGE-USD"
},
"PAIR-DOT-USD": {
"md_symbol": "DOT-USD",
"trade_symbol": "DOT-USD"
},
"PAIR-ETH-USD": {
"md_symbol": "ETH-USD",
"trade_symbol": "ETH-USD"
+46 -5
View File
@@ -12,7 +12,7 @@
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.connector.AlpacaOrderEntryClient"
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
@@ -57,7 +57,7 @@
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.connector.AlpacaOrderEntryClient"
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
@@ -122,7 +122,7 @@
, "cred_key": "ALPACA_SANDBOX"
, "order_entry": {
"class": "cvttpy.exchanges.alpaca.connector.AlpacaOrderEntryClient"
"class": "cvttpy.exchanges.alpaca.oe_client.AlpacaOrderEntryClient"
, "REST": {
"submit_order_url": ["POST", "https://paper-api.alpaca.markets/v2/orders"]
@@ -254,7 +254,7 @@
, "type": "SPOT"
, "order_entry": {
"class": "cvttpy.exchanges.coinbase.spot.connector.CoinbaseSpotRestExchConnector"
"class": "cvttpy.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
, "REST": {
"open_orders_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/orders/historical/batch"]
@@ -290,7 +290,7 @@
, "type": "SPOT"
, "order_entry": {
"class": "cvttpy.exchanges.coinbase.spot.connector.CoinbaseSpotRestExchConnector"
"class": "cvttpy.exchanges.coinbase.spot.oe_client.CoinbaseSpotOEClient"
, "REST": {
"open_orders_url": ["GET", "https://api.coinbase.com/api/v3/brokerage/orders/historical/batch"]
@@ -316,6 +316,37 @@
}
}
, "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"]
}
}
}
# ---------------------------- G
, "GEMINI": {
# https://docs.gemini.com/rest-api
@@ -419,6 +450,16 @@
, "channel_prefix": "MD_ALPACA_03"
}
}
# , "MARKET_SIMULATOR": {
# "exchange_id": "MARKET_SIMULATOR"
# , "name": "Market Simulator"
# , "type": "SIM"
# , "mktdata" : {
# "class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
# "ws_url": ["WS", "ws://localhost:8080/ws"]
# }
# }
# ---------------------------- O
, "OKX": {
"exchange_id": "OKX"
+37 -1
View File
@@ -13,6 +13,18 @@
"quantity_precision": "0.001",
"price_tick": 0.01
},
"PAIR-ADA-USD": {
"base_asset": "ADA",
"quote_asset": "USD",
"quantity_precision": "0.1",
"price_tick": 0.0001
},
"PAIR-ADA-USDT": {
"base_asset": "ADA",
"quote_asset": "USDT",
"quantity_precision": "0.1",
"price_tick": 0.0001
},
"PAIR-ASD-USDT": {
"base_asset": "ASD",
"quote_asset": "USDT",
@@ -51,6 +63,12 @@
"quantity_precision": "0.001",
"price_tick": 0.1
},
"PAIR-BCH-USDT": {
"base_asset": "BCH",
"quote_asset": "USDT",
"quantity_precision": "0.001",
"price_tick": 0.1
},
"PAIR-BTC-BUSD": {
"base_asset": "BTC",
"quote_asset": "BUSD",
@@ -100,6 +118,18 @@
"quantity_precision": "0.01",
"price_tick": 0.00001
},
"PAIR-DOT-USD": {
"base_asset": "DOT",
"quote_asset": "USD",
"quantity_precision": "0.01",
"price_tick": 0.001
},
"PAIR-DOT-USDT": {
"base_asset": "DOT",
"quote_asset": "USDT",
"quantity_precision": "0.01",
"price_tick": 0.001
},
# --- PAIR-E
"PAIR-ETH-BUSD": {
"base_asset": "ETH",
@@ -216,7 +246,13 @@
"PAIR-SOL-USD": {
"base_asset": "SOL",
"quote_asset": "USD",
"quantity_precision": "0.01",
"quantity_precision": "0.001",
"price_tick": 0.01
},
"PAIR-SOL-USDT": {
"base_asset": "SOL",
"quote_asset": "USDT",
"quantity_precision": "0.001",
"price_tick": 0.01
},
# --- PAIR-U
+2 -1
View File
@@ -1,4 +1,5 @@
#!/bin/bash
cd $(dirname ${0})
docker compose down && docker compose up -d --pull=always
docker compose down
docker compose up -d --pull=always
+13
View File
@@ -0,0 +1,13 @@
version: "3.8"
#==================================================
services:
relative_liquidity:
image: cloud21.cvtt.vpn:5500/relative_liquidity:latest
container_name: relative_liquidity_svc
restart: unless-stopped
volumes:
- /home/cvtt/prod/data:/app/data
- /home/cvtt/prod/logs:/logs
ports:
- 5678:5678
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
cd $(dirname ${0})
docker compose down
docker compose up -d --pull=always
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
cd $(dirname ${0})
docker compose up -d --pull=always
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
cd $(dirname ${0})
docker compose down
+10
View File
@@ -0,0 +1,10 @@
version: "3.8"
#==================================================
services:
trading_calendar:
image: apptasticsoftware/trading-calendar
container_name: trading-calendar
restart: unless-stopped
ports:
- 8000:80
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
cd $(dirname ${0})
docker compose down
docker compose up -d --pull=always
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
cd $(dirname ${0})
docker compose up -d --pull=always
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
cd $(dirname ${0})
docker compose down