usde_convert: residui cercati sotto USDC e USDE (#26)
Non e' verificato sotto quale valuta Deribit elenchi lo spot USDE_USDC: la quotazione (USDC) o la base (USDE). cancella_residui interroga entrambe e unisce per order_id prima di applicare il filtro instrument+label, cosi' un residuo elencato sotto USDE non si accumula in eterno per non essere mai letto. Se una delle due letture solleva, solleva come prima (nessun try aggiunto attorno al giro). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -120,9 +120,18 @@ def cancella_residui(c) -> list[str]:
|
||||
|
||||
-> lista degli order_id cancellati. Se la LETTURA degli ordini aperti fallisce SOLLEVA: non
|
||||
si piazza un nuovo ordine senza sapere cosa c'e' gia' aperto (P5, non si ordina al buio)."""
|
||||
out = c._unwrap(c._post("/mcp-deribit/tools/get_open_orders",
|
||||
{"currency": "USDC", "kind": "spot", "type": "all"}))
|
||||
ordini = out if isinstance(out, list) else (out.get("orders", []) if isinstance(out, dict) else [])
|
||||
# non e' verificato sotto quale valuta Deribit elenchi lo spot USDE_USDC (quotazione USDC o
|
||||
# base USDE): si interrogano entrambe e si unisce per order_id, cosi' non si perde il residuo
|
||||
# se il venue lo elenca sotto la base.
|
||||
visti = {}
|
||||
for valuta in ("USDC", "USDE"):
|
||||
out = c._unwrap(c._post("/mcp-deribit/tools/get_open_orders",
|
||||
{"currency": valuta, "kind": "spot", "type": "all"}))
|
||||
ordini = out if isinstance(out, list) else (out.get("orders", []) if isinstance(out, dict) else [])
|
||||
for o in ordini:
|
||||
if isinstance(o, dict) and o.get("order_id") is not None:
|
||||
visti[o["order_id"]] = o
|
||||
ordini = list(visti.values())
|
||||
cancellati = []
|
||||
for o in ordini:
|
||||
if not isinstance(o, dict):
|
||||
|
||||
Reference in New Issue
Block a user