Decisione dell'operatore 10/09 («riportarla a quota in autonomia»). Verificato da revisione fable (10 segnalazioni, 9 applicate; loop numerico su usde_convert.piano: nessuna sequenza vendita→acquisto). - quarto stato ECCEDENTE: slack > cuscino_riacquisto_frac (0,40) x cuscino => acquisto di USDE fino allo stesso bersaglio della vendita, q* = 1 - 0,30 x (1 + cuscino_margine_frac 0,20) = 0,64. Isteresi [0 ; 0,40] x cuscino con bersaglio unico 0,20: per oscillare servono +-8,6% di equity USDC (~$380); un bonifico alza lo slack di 0,7 x importo e sopra ~9% dell'equity ricompra da solo. - le tre frazioni (preavviso/margine/riacquisto) in config/live.json sezione usde, lette da usde.bande_cuscino() che verifica l'ordine; quota_target 0,70 TOLTO (slack zero per costruzione). - notifier.notify: html.escape su titolo e valori — la prima allerta vera (13:53Z) era andata persa per un '<' nudo; allerta_errore registrato nel record (P3). - da ECCEDENTE un fallimento si ritenta ogni 24h (non 4 Telegram/giorno per sempre); bande fuori ordine => BLIND con motivo, non un traceback ingoiato dal cron. - CLAUDE.md §1/§4/§5.17, config _nota_usde/_nota_cuscino, diario. 0,64 e' una DERIVAZIONE dell'autore, non la quota decisa il 30/08 (0,70): dichiarato, da confermare. - test: 1070 (+8 netti). Fixes #7 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016kqvff47UBGeYfj1QeN4zE
PythagorasGoal
Ricerca e esecuzione di strategie algoritmiche su BTC/ETH, con un libro che gira con soldi veri su Deribit mainnet dal 20 giugno 2026.
🚨 v2.0.0 — RESET del 2026-06-19. Tutto ciò che questo README diceva prima è archiviato in
Old/e non è fidato. L'intera libreria di strategie "validata out-of-sample" (le famiglie FADE/HONEST/PAIRS/TSMOM/SHAPE, i portafogli PORT01-06, gli Sharpe fra 6 e 10) era un artefatto di uno storico contaminato: print fantasma di un feed testnet più storico Binance/USDT. Ri-testate sul feed reale ricostruito da Deribit mainnet, perdono ogni anno. Documento di fondazione:docs/diary/2026-06-19-deribit-history.md.Questo README descrive il progetto dopo il reset. È stato riscritto il 2026-09-02, dopo essere rimasto fermo al 4 giugno — quindici giorni prima del reset — mentre pubblicava i numeri che il progetto aveva già dichiarato falsi.
L'autorità sui numeri e sulle decisioni è CLAUDE.md, e il racconto completo sta in
docs/memory/. Questo file è l'ingresso, non la fonte.
Cos'è vivo, adesso
| libro live | TP01 + SKH01 a 75/25, nettati in software su una sola posizione per asset (50/50 BTC/ETH) |
| venue | Deribit mainnet, perpetual lineari USDC. Esecuzione armata dal 2026-06-20 |
| capitale | ~$2.050 (USDC + USDE), non i €2.000 nominali di nessun paper trader |
| cadenza | oraria, minuto :47 (scripts/cron_book.sh) |
| leva | lorda ~0,28x su un tetto di 1,00x. Il cap non ha mai morso: il vincolo è il segnale |
| protezione on-book | un solo disaster-SL rotolante al −30% sulla posizione netta |
Non sono nel libro live: XS01, VRP01, GTAA01, XSR01. Vivono nel portafoglio di ricerca (paper, 5 sleeve), che è una serie diversa da quella che gira — quasi tutti i numeri di portafoglio del progetto sono su quella, non su questa.
I numeri, con la loro lente
Ogni numero va scritto con la lente e la banda che gli appartengono. La tabella completa
("non citare" ↔ "citare") è in CLAUDE.md §2; qui i tre che contano.
| grandezza | valore onesto |
|---|---|
| rendimento del libro live | TWR +10,6% dall'armamento, spezzato sul versamento del 25/08: +11,61% prima, −0,9% dopo |
| crescita di trading | +$50 in 71 giorni, su 30 round-trip chiusi e $0,87 di fee totali |
| Sharpe del portafoglio di ricerca | 1,95 [1,81 – 2,12] full, 1,54 [1,11 – 1,91] hold-out |
⚠️ Il rendimento dell'equity non è la performance: il 96% della crescita del conto è un bonifico. Chi legge una percentuale su questo progetto deve sapere se è un TWR o un rapporto fra due saldi — è stato un difetto reale, riparato il 2026-09-02.
La riga che ordina tutto il resto
La ricerca ha smesso di essere il vincolo il 2026-07-26, e sei ondate successive lo hanno confermato invece che ribaltarlo. I vincoli sono il capitale che entra e il conto che non sparisce.
Misurato: il miglior candidato nuovo vale +0,046 €/giorno; versare €500/mese invece di €250 porta la probabilità di arrivare al traguardo in 20 anni dal 14% all'85%. E €100/mese in più equivalgono a +4,07%/anno di drift, cioè più di tutta la leva autorizzabile.
Metodo — cosa deve superare una strategia nuova
Sei requisiti, nessuno negoziabile (CLAUDE.md §8, gate in scripts/research/alt/altlib.py):
- ingresso eseguibile — direzione e prezzo da dati fino a
close[i], mai l'estremo di una candela; - backtest netto dopo fee Deribit realistiche, più la leva;
- out-of-sample held-out, robustezza su griglia, sweep fee;
- liquidità e plausibilità — un edge su un book fermo o su wick fantasma non è un edge;
- i gate:
marginal_vs_tp01(Sharpe marginale, non assoluto),study_family_honestcon deflated-Sharpe ≥ 0,95,day_boundary_robust,anchor_luck_band,weights_tilt_null; - codice, test e diario.
Il progetto ha 73 regole di prim'ordine (CLAUDE.md §6) — sul dato, sul metodo, sui costi,
sulla produzione e sul piano — ognuna pagata almeno una volta. La più
ricorrente, cinque occorrenze: un sorvegliante deve derivare il proprio bersaglio dal codice
sorvegliato, mai ridichiararlo — un controllo puntato su una configurazione diversa da quella che
gira passa sempre, e non sta controllando niente.
Il dato
- La verità è Deribit mainnet, perché è dove si esegue. Binance è un audit indipendente, mai un'ancora per "ripulire": è USDT, ~10 bps fuori, fino al 3% sotto depeg.
- Universo certificato: solo BTC/ETH, ogni timeframe. Gli alt sono esclusi.
- Lo storico si aggiorna solo con
rebuild_history.pye si certifica sempre concertify_feed.py. Il vecchio downloader è la causa del reset. - La catena opzioni si raccoglie ogni ora (
collect_chain.py, minuto:25): un'ora non raccolta è persa per sempre.
Struttura
src/
data/downloader.py load_data(asset, tf) sui parquet certificati
strategies/ trend_portfolio.py (TP01) · skyhook.py (SKH01) · base · indicators
portfolio/ portfolio.py (N sleeve + weights_tilt_null) · sleeves.py · gtaa.py
backtest/harness.py backtest onesto, senza look-ahead
live/ book.py (esecutore netto) · deribit · livefeed · usde
venue_watch · venue_probe · venue_news · monitor_health · scale_watch
tradesdb · journal · analista · notifier · cli
scripts/
live/ book_execute · trades_db · journal · analista · balance_watch
paper_* (forward-monitor) · usde_watch · usde_convert · fee_watch
research/ r<data>_*.py — un file per esperimento, harness in alt/altlib.py
analysis/ rebuild_history · certify_feed · audit_feed · multi_source_check
cron_{book,daily,chain,balance,usde,opt_snapshot,vol_term}.sh
docs/
memory/ LA MEMORIA — 6 file, indicizzati in testa a CLAUDE.md
research/ RESULTS-0822 (§1-77, un registro per filone) · BRIEF-0822 · SPEC-scale-key
diary/ una voce per esperimento (144)
journal/ libro di bordo, una voce al giorno, 4 livelli per provenienza
tests/ 1008, tutti verdi
Old/ archivio pre-reset — consultabile, non fidato
Comandi
uv sync # dipendenze
uv run python scripts/analysis/rebuild_history.py --asset BTC ETH # storico da Deribit mainnet
uv run python scripts/analysis/certify_feed.py # certifica i feed
uv run python scripts/live/trades_db.py --report # stato del libro + TWR
uv run python scripts/live/journal.py # voce del giorno
uv run python scripts/live/analista.py --secco # analisi del giorno, senza salvare
uv run python scripts/portfolio/run_portfolio.py # portafoglio di ricerca
uv run pytest # 1008 test
Ogni script di scripts/live/ accetta --help e rifiuta un flag che non conosce (esce 2): fino
al 2026-09-02 un flag sbagliato eseguiva l'azione di default, e su tre script quell'azione scriveva.
Gate aperti
Un gate si decide alla data, coi criteri scritti prima. Elenco completo in CLAUDE.md §4.
| gate | data | dove punta oggi |
|---|---|---|
| STATARB | 2026-09-27 | ritiro (Sharpe −1,61 sulla serie vera) |
| SCALA-01 — leva 1,00 → 1,25 | non prima del 2026-10-01 | chiave costruita e inerte; 9 condizioni, 2 fatte |
| XSR01 | 2026-10-23 | sotto la lente rendita il meccanismo vale ~0 |
| DVOLSPREAD | kill 2026-10-24 | serie −4,41 |
| GTAA01 tenere/bloccare | al book a $15k | contributo reale +0,10/+0,12 di Sharpe, non incassabile sotto la soglia |
Obiettivo, e cosa lo rende difficile
Il target dichiarato è €50/giorno partendo da €1.000. Non è raggiungibile a questo capitale: servono ~$313k (banda [$187k – $1,14M]) o €1.733/mese per dieci anni per averlo al 90% di probabilità. La leva non è la scorciatoia — quella difendibile vale quanto €100-150/mese di versamento. La via è target-vol, capitale e tempo.
Onestà prima di tutto: nessun numero va creduto finché non è netto fee, out-of-sample, robusto su griglia, e su dati certificati, liquidi ed eseguibili. Il resto di questo repo esiste per rendere quella frase verificabile invece che dichiarata.