feat(binance_order_event_logger, user_data_stream): 优化算法更新字段兼容性
在 `binance_order_event_logger.py` 和 `user_data_stream.py` 中更新了 ALGO_UPDATE 事件的字段处理逻辑,增强了对不同字段名的兼容性,确保在获取算法 ID 和客户端算法 ID 时能够正确解析多种可能的字段。这一改进提升了系统在处理算法订单时的灵活性与准确性。
This commit is contained in:
parent
32c50466f3
commit
fa7208f5f3
|
|
@ -72,10 +72,11 @@ def log_order_event(account_id: int, event_type: str, event_time_ms: Optional[in
|
||||||
elif event_type == "ALGO_UPDATE" and data:
|
elif event_type == "ALGO_UPDATE" and data:
|
||||||
o = data
|
o = data
|
||||||
row["symbol"] = (o.get("s") or "").strip()
|
row["symbol"] = (o.get("s") or "").strip()
|
||||||
row["algoId"] = o.get("aid") # 币安 ALGO_UPDATE 用 aid
|
# 币安文档:aid=Algo Id,兼容 i/algoId;caid=Client Algo Id,兼容 c/clientAlgoId
|
||||||
row["clientAlgoId"] = (o.get("caid") or "").strip() or None # 币安用 caid,SL_/TP_+entry_order_id
|
row["algoId"] = o.get("aid") or o.get("i") or o.get("algoId")
|
||||||
|
row["clientAlgoId"] = (o.get("caid") or o.get("c") or o.get("clientAlgoId") or "").strip() or None
|
||||||
row["algoStatus"] = (o.get("X") or "").strip() # TRIGGERED/FINISHED
|
row["algoStatus"] = (o.get("X") or "").strip() # TRIGGERED/FINISHED
|
||||||
row["triggeredOrderId"] = o.get("ai") or None # 触发后的普通订单 id
|
row["triggeredOrderId"] = o.get("ai") or o.get("triggeredOrderId") or None
|
||||||
else:
|
else:
|
||||||
row["raw"] = data
|
row["raw"] = data
|
||||||
line = json.dumps(row, ensure_ascii=False, default=_default_serializer) + "\n"
|
line = json.dumps(row, ensure_ascii=False, default=_default_serializer) + "\n"
|
||||||
|
|
|
||||||
|
|
@ -690,8 +690,9 @@ class UserDataStream:
|
||||||
x = (o.get("X") or "").strip().upper()
|
x = (o.get("X") or "").strip().upper()
|
||||||
ai = o.get("ai")
|
ai = o.get("ai")
|
||||||
symbol = (o.get("s") or "").strip()
|
symbol = (o.get("s") or "").strip()
|
||||||
algo_id = o.get("aid") # 币安 ALGO_UPDATE 用 aid(Algo Id)
|
# 币安文档:aid/caid;兼容 i/c、algoId/clientAlgoId
|
||||||
client_algo_id = (o.get("caid") or "").strip() or None # 币安用 caid(Client Algo Id)
|
algo_id = o.get("aid") or o.get("i") or o.get("algoId")
|
||||||
|
client_algo_id = (o.get("caid") or o.get("c") or o.get("clientAlgoId") or "").strip() or None
|
||||||
entry_order_id = None
|
entry_order_id = None
|
||||||
if client_algo_id and (client_algo_id.startswith("SL_") or client_algo_id.startswith("TP_")):
|
if client_algo_id and (client_algo_id.startswith("SL_") or client_algo_id.startswith("TP_")):
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user