v1 working switch symbols w volume filter

This commit is contained in:
2026-05-01 20:45:26 +00:00
parent 7d579faa82
commit b05f389e49
40 changed files with 12837 additions and 28654 deletions

View File

@@ -45,7 +45,7 @@ STREAM_TRADES: str = f'{SYMBOL.lower()}@aggTrade'
### Globals ###
WSS_URL: str = f"wss://fstream.asterdex.com/stream?streams={STREAM_MARKPRICE}/{STREAM_BOOKTICKER}/{STREAM_TRADES}"
ALLOW_SYMBOL_CHG: bool = False
ALLOW_SYMBOL_CHG: bool = True
### Funcs ###
async def subscribe_streams(websocket, streams: list[str]) -> None:
@@ -84,7 +84,7 @@ async def ws_stream():
### Update Symbol if Algo Outputs Change ###
if ALLOW_SYMBOL_CHG:
best_symbol_by_exchange: dict = json.loads(s=VAL_KEY.get(name='fr_algo_working_symbol')) # ty:ignore[invalid-argument-type]
best_symbol: str = f'{best_symbol_by_exchange['ASTER']['lh_asset']}{best_symbol_by_exchange['ASTER']['rh_asset']}'
best_symbol: str = best_symbol_by_exchange['ASTER']['symbol']
if best_symbol != SYMBOL:
logging.info(f'Symbol Change: {SYMBOL} -> {best_symbol}')
SYMBOL = best_symbol
@@ -133,22 +133,22 @@ async def ws_stream():
VAL_KEY.set(VK_TICKER, VAL_KEY_OBJ)
continue
case c if c == STREAM_TRADES:
# print(f'MKT_TRADE: {data}')
trade_obj = {
'timestamp_arrival': ts_arrival,
'timestamp_msg': data['data']['E'],
'timestamp_trade': data['data']['T'],
'symbol': data['data']['s'],
'aggregate_trade_id': data['data']['a'],
'price': float(data['data']['p']),
'qty': float(data['data']['q']),
'first_trade_id': data['data']['f'],
'last_trade_id': data['data']['l'],
'is_buyer_mkt_maker': bool(data['data']['m']),
}
# VAL_KEY.set(VK_LAST_TRADE, json.dumps(trade_obj))
if USE_DB:
await db.insert_df_to_mysql(table_name='fr_aster_mkt_trades', params=trade_obj, CON=CON)
# # print(f'MKT_TRADE: {data}')
# trade_obj = {
# 'timestamp_arrival': ts_arrival,
# 'timestamp_msg': data['data']['E'],
# 'timestamp_trade': data['data']['T'],
# 'symbol': data['data']['s'],
# 'aggregate_trade_id': data['data']['a'],
# 'price': float(data['data']['p']),
# 'qty': float(data['data']['q']),
# 'first_trade_id': data['data']['f'],
# 'last_trade_id': data['data']['l'],
# 'is_buyer_mkt_maker': bool(data['data']['m']),
# }
# # VAL_KEY.set(VK_LAST_TRADE, json.dumps(trade_obj))
# if USE_DB:
# await db.insert_df_to_mysql(table_name='fr_aster_mkt_trades', params=trade_obj, CON=CON)
continue
case _:
logging.warning(f'UNMATCHED OTHER MSG: {data}')