feat(ops): reconciler read-only conto vs libri worker (primo passo verso il position-manager)
scripts/analysis/reconcile_account.py: per strumento USDC confronta l'atteso (somma quote reali dai status.json: single-leg + pairs 2 gambe + orphan_legs registrati = drift spiegato) col conto reale (get_positions, size/mark -> coin). Tolleranza 1.5x step contratto, anti-race (ricontrollo a 10s), alert Telegram ACCOUNT_DRIFT con --telegram. SOLO lettura, gira dall'host (cron orario :40, nessun deploy). Al primo run: vero positivo su BTC (libro MR02 short 0.0028 vs conto flat — TP fillato dallo spike reale, si riconcilia alla chiusura sim). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -56,6 +56,16 @@ orfanizzarsi: ora è VISIBILE e contabilizzato giusto, ma non eliminato. Opzioni
|
||||
in 2 minuti) — accettabile su testnet, NON per capitale vero.
|
||||
Raccomandazione: C ora, A prima di passare a capitale reale.
|
||||
|
||||
**Primo passo verso A — FATTO (sera stessa): reconciler read-only.**
|
||||
`scripts/analysis/reconcile_account.py`: per ogni strumento USDC confronta
|
||||
atteso (Σ quote reali dai status.json: single-leg + pairs 2 gambe + orphan_legs
|
||||
registrati = drift SPIEGATO) vs conto reale (`get_positions`, size/mark → coin),
|
||||
tolleranza 1.5×step, anti-race (ricontrollo a 10s prima di segnalare). In crontab
|
||||
host ORARIO (:40) con alert Telegram `ACCOUNT_DRIFT`. Al primo run ha beccato un
|
||||
vero positivo: BTC libro short 0.0028 vs conto flat (il TP di MR02_BTC fillato
|
||||
dallo spike reale delle 12:22Z, che il worker riconcilierà alla chiusura sim) —
|
||||
esattamente la classe di divergenza che prima restava invisibile per ore.
|
||||
|
||||
## Altri esiti della tornata
|
||||
|
||||
- **Dedup engine gate** (TODO chiuso): `_port06_gate_common.py`, output 3 gate
|
||||
|
||||
Reference in New Issue
Block a user