Sorvegliante del cuscino USDC di regolamento con riconversione automatica (debito §5.17) #3
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
COSA: script orario che legge l'EQUITY USDC dal gateway, deriva il cuscino richiesto da config (n_asset x frac x disaster_sl_pct x equity totale, la stessa formula di usde_convert.cuscino_richiesto_usd, spostata in src/live/usde.py cosi' i due lettori la condividono — P1), e: preavviso ⚠️ alla transizione sotto il 10% di slack; 🚨 sotto zero, e in quel caso lancia usde_convert --quota --esegui per ricostituire il cuscino (vende USDE, ~6 bps). PERCHE': P&L e funding dei perp si regolano in USDC; a quota 68,7% lo slack e' ~$41 e un USDC negativo costa 0,05%/giorno (18,25%/anno). usde_watch allerta solo sulla quota > 0,85: a -$58 di USDC il cuscino e' gia' scoperto. Decisione dell'operatore 10/09: misura = equity USDC, azione = riconverte da solo. CRITERIO DI FATTO: funzioni pure testate (slack, soglia, quota bersaglio derivata), dry-run registrato in jsonl, riga di cron, spec in monitor_health, allerta 'non vedo' se il conto non e' leggibile.
Soluzione
Commit
f82f685(2026-09-10). Nuovo scripts/live/cuscino_watch.py (cron orario :53 via scripts/cron_cuscino.sh, installato in crontab; spec in src/live/monitor_health.py, max 3h). Misura: EQUITY USDC dal gateway. Cuscino = usde.cuscino_richiesto_usd(equity_tot) = 2 x book.WEIGHT x disaster_sl_pct x equity totale: la formula e' stata SPOSTATA in src/live/usde.py e usde_convert.py la importa (una formula, due lettori: P1). Stati OK / PREAVVISO (slack < 10% del cuscino, allerta alla transizione) / SCOPERTO (slack < 0: 🚨 e riconversione automatica via subprocess 'usde_convert.py --quota usde.quota_ripristino(0.20)=0.64 --esegui', cuscino + 20% di margine) / BLIND. Guardie: execution_enabled di config (stesso interruttore del libro), niente vendita sotto depeg_warn, un tentativo VERO ogni 6h, guardie proprie di usde_convert ereditate; marcatore 'gia detto' = esito di notify (§5.2); --secco non ordina, non notifica, non scrive il registro. In usde_convert.piano il tetto del venue ora vale solo in acquisto (bloccava la vendita: revisione fable). Limiti dichiarati: ratchet verso il basso (nessun riacquisto automatico a 0,70: decisione dell'operatore aperta), slack zero per costruzione a quota 0,70 (PREAVVISO e' lo stato normale a quota piena), nessun lock col lancio a mano. Primo giro 13:00Z: PREAVVISO, slack +$26 su $1.335. Test: tests/test_cuscino_watch.py (16, crontab letta viva).