Files
PythagorasGoal/docs/diary/2026-08-28-gtaa-fase-e-allarmi.md
Adriano Dal Pastro 418f523be7 gtaa: la decisione tenere/bloccare va a $15k — gate (A) ritirato, soglia sorvegliata
Decisione dell'operatore: GTAA01 NON si blocca oggi, si decide quando il book
arriva a $15k. Il motivo registrato non e' «non contribuisce» — la misura dice
il contrario (+0,095/+0,124 di Sharpe a iso-rischio secondo la fase, positivo in
tutte e cinque, hold-out +0,247, 6 anni su 8, correlazione col resto +0,087).
Il motivo e' che sotto $15k di book lo sleeve NON E' ACCENDIBILE:
GTAA_MIN_CAPITAL e' $3.000 allocati, che al peso 20% fa $15.000 contro i $2.068
attuali. Finora era manutenzione senza beneficio incassabile.

Registrate anche le due ragioni contro il blocco, che restano valide: N7 (uno
sleeve difensivo si giudica sul sinistro, e questa finestra non lo contiene) e
N4 (togliendolo il portafoglio di ricerca diventa 100% cripto su un venue solo).
E il costo che sarebbe andato pagato: GTAA01 e' uno dei quattro nomi di
W_DEPLOY, da cui escono i $313k del muro.

PERCHE' LA DECISIONE NON SI DIMENTICHI (N9). Una decisione parcheggiata su un
numero che nessuno sorveglia e' parcheggiata per sempre. `journal.SOGLIE_CAPITALE`
legge l'equity ogni giorno — il giornale lo fa comunque — e il giorno che supera
la soglia la voce dice quale decisione si sblocca e perche'. Seconda riga: $20k,
dove si riapre «100% Deribit fino a $20k». Una riga si TOGLIE quando la decisione
e' presa. 5 test, incluso «equity non leggibile non e' una soglia superata» (P5).

GATE (A) RITIRATO come pass/fail, congelando il MOTIVO e non l'esito — come il
07/08 col confronto fra ranghi, e per la stessa ragione: il criterio decide su un
margine piu' piccolo del rumore che lo scuote. In piu' una guardia sulla CAUSA
(`test_la_fase_di_ribilanciamento_e_ancora_ancorata_alla_POSIZIONE`) che si rompe
il giorno che qualcuno ancorasse la fase al calendario: quel giorno il gate
potrebbe tornare decidibile, ed e' un fatto da guardare, non da ignorare.
Il test sul margine assoluto si e' auto-ritirato: diceva «se scendesse sotto un
centesimo questo criterio smetterebbe di essere una misura», ed e' sceso a 0,0074.

CLAUDE.md: §3 nuova riga · §5.2 RISOLTO (trasporto allarmi) · §5.4 riscritto (la
domanda fiscale (a) ha una risposta alla fonte: derivati in c-quater al 26%, non
c-sexies al 33% — Circolare AdE 30/E del 27/10/2023, citata verbatim) · §5.13
nuovo debito, la fase che ruota — quantificata e dichiarata INNOCUA oggi (D5):
0,029 di Sharpe a livello di portafoglio, dentro la banda [1,81-2,12].

Diario: docs/diary/2026-08-28-gtaa-fase-e-allarmi.md
Suite: 789 passati, 0 falliti.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-28 12:54:08 +00:00

9.0 KiB
Raw Permalink Blame History

2026-08-28 — La fase che ruota, gli allarmi che si perdevano, e una risposta fiscale

Scritto il 2026-08-28. Numeri riprodotti dagli script citati; le letture in prosa sono firmate come tali (P13).

In una riga

Un test rosso su GTAA01 non parlava di GTAA01: parlava del fatto che la finestra "congelata" pre-2015 rotola da sola ogni notte. Nel frattempo si e' chiuso il debito del trasporto degli allarmi, e la prima delle due domande al commercialista ha trovato una risposta alla fonte.


1. Il gate (A) della banda GTAA01 e' una moneta — la finestra rotola

r0828_gtaa_band_phase.py. Replica bit-exact della produzione verificata (max|Δ| = 0.00e+00 su 7.544 barre). Codice fermo dal 07/08: nessun commit su src/portfolio/gtaa.py ne' su r0727_gtaa_band_gate.py. Si e' mosso il DATO.

(0) La finestra in-sample non e' ferma. IB serve una finestra rotolante di 30 anni. SPY e' l'unica gamba al muro (30,0 anni) e nel logs/cron_daily.log la sua data d'inizio avanza di un giorno di borsa ogni notte: 1996-07-02 il 24/06 → 1996-09-04 oggi. QQQ e IWM arriveranno allo stesso muro fra 2,5 e 3,7 anni.

(1) L'amplificatore e' la fase. _gated_returns ribilancia su i % every == 0, dove i e' la posizione nell'array. Se la prima barra scivola, si ri-fasa ogni decisione di ribilanciamento di trent'anni di storia.

misura valore
spostamento max dello Sharpe in-sample dal 07/08 (finestra CHIUSA, codice fermo) 0,076
banda scelta al buio in 10 notti consecutive 25% · 40% · 60%
notti col margine sotto il pavimento dichiarato (0,01) 4/10 (minimo 0,0026)
a dato FISSO, muovendo solo la fase 25% su 3 fasi, 60% su 2

Il criterio decideva su ~0,007-0,015 di Sharpe mentre il rumore che lo scuote vale fino a 0,076. E' lo stesso modo di fallire del criterio a ranghi ritirato il 07/08 (che decideva su 0,00116), in un costume nuovo.

2. Criterio (C): la mediana delle 5 fasi

r0828_gtaa_band_median_phase.py. ⚠️ Scelto DOPO aver visto la tabella delle fasi: misura lo strumento, non valida la banda. Pavimento tenuto a 0,01, invariato.

  • (i) scelta stabile su 10 notti: SI60% in tutte e dieci
  • (ii) margine sempre ≥ 0,01: SI — minimo 0,0197
  • (iii) potenza (al buio ≠ hold-out): SI — 60% contro 40%

Escursione dello Sharpe in-sample su 10 notti: 74/99% per ogni banda. Lo strumento regge. Ma la cella che sceglie non e' la proposta: al buio esce il 60%, il 25% vince 0 notti su 10. Da tenere accanto: sull'hold-out il 60% e' penultimo (0,7430 contro 0,9315 del 40%), coerente con lo Spearman IS/OOS ~0 misurato il 07/08 — la scelta in-sample non predice.

Contorno che vale piu' del verdetto: le 5 serie di fase correlano 0,988N_eff 1,01. La mediana di 5 fasi e' UNA osservazione: toglie l'artefatto, non compra precisione.

Le due domande che erano state confuse

Il gate (A) puo' chiedere due cose diverse, e il 07/08 coincidevano per fortuna di fase:

forma difetto quanto e' grave
«la banda e' la scelta che si fa al buio?» non ha risoluzione cambia verdetto ogni notte
«la banda non e' stata selezionata sull'hold-out?» non ha potenza 1 cella su 30 e' l'argmax dell'hold-out → 29/30 lo passano per costruzione

📌 Lettura (agente, fallibile). Il 25% non viene dalla griglia affatto: viene dall'argomento strutturale del 27/07 — una banda in dollari assoluti degenera al variare del capitale, una frazione no. Sotto la mediana delle fasi il 25% e' 2° in-sample e 3° sull'hold-out: decente ovunque, primo da nessuna parte, che e' la firma di un parametro NON selezionato sui dati. A un parametro scelto per ragioni strutturali non si applica un gate di selezione ma uno di robustezza — «fa danno da qualche parte?». Risposta: no.

Esito: gate (A) ritirato come pass/fail, congelando il MOTIVO (come il 07/08), piu' una guardia sulla CAUSA che si rompe il giorno che la fase venisse ancorata al calendario.

3. Cosa cambia togliendo GTAA01 — e la decisione dell'operatore

r0828_senza_gtaa.py. Portafoglio di ricerca a 5 sleeve; NON il book live.

Sharpe CAGR maxDD vol
CON GTAA01 2,28 +19,2% 6,1% 7,8%
SENZA, iso-nozionale 2,16 +23,8% 7,8% 10,1%
SENZA, iso-rischio (×0,77) 2,16 +18,0% 6,0% 7,8%

A iso-nozionale togliendolo si guadagna drift e si compra volatilita'. A iso-rischio — la sola lente onesta per un diversificatore a basso CAGR (M6) — Δ Sharpe +0,121, maxDD invariato. Hold-out 2025+: Δ +0,247. Aiuta in 6 anni su 8. Correlazione col resto +0,087: e' davvero altro. Standalone Sharpe 1,06, CAGR +5,8%.

⚠️ Con la sua fascia di fase: il Δ sulle 5 fasi va da +0,095 a +0,124 e supera la soglia dichiarata (0,12) in 2 fasi su 5. Il segno e' stabile, il verdetto binario no.

La decisione: rinviata a $15k di book

Discussa con l'operatore. L'argomento che ha deciso non e' «GTAA01 non contribuisce» — la misura dice il contrario — ma che a questo capitale lo sleeve non e' accendibile: GTAA_MIN_CAPITAL e' $3.000 allocati, che al peso 20% significa $15.000 di book contro i $2.068 attuali. Sotto quella soglia e' manutenzione senza beneficio incassabile.

Due ragioni registrate contro il blocco immediato, entrambe regole del progetto:

  • N7 — uno sleeve difensivo si giudica sul sinistro, non sul premio, e la finestra 2019-2026 non contiene il sinistro per cui esiste un GTAA a sei gambe;
  • N4 — il rischio di venue si compra con un conto, non con uno sleeve: togliere GTAA01 renderebbe il portafoglio di ricerca 100% cripto su un venue solo.

E un costo che sarebbe andato pagato, non saltato: GTAA01 e' uno dei quattro nomi di r0726_wall_fixedpoint.W_DEPLOY, da cui escono i $313k e tutta la pianificazione da €500/mese.

Perche' la decisione non si dimentichi (N9), la soglia e' sorvegliata dal giornale: journal.SOGLIE_CAPITALE legge l'equity ogni giorno e il giorno che supera $15k la voce lo dice, con la domanda da rispondere accanto. Stessa tabella, seconda riga: $20k, dove si riapre «100% Deribit fino a $20k».

4. Allarmi: il marcatore «gia' detto» si scrive DOPO l'invio

Debito §5.2 chiuso su decisione dell'operatore. venue_watch.run_once salvava lo stato coi marcatori alerted gia' a True e l'invio lo faceva il chiamante dopo: col 6,9% di invii falliti misurato (2/29), un 🚨 perso restava perso per l'episodio intero (200-2.324 ore).

Ora il sender e' iniettato (la funzione resta testabile senza rete d'uscita, che era la ragione del disegno precedente) e su fallimento si disfano i soli marcatori, non le misure: asset in ALERT → ri-allerta l'ora dopo; lock MAINT/ALERT → flag azzerati ma le ore continuano a correre, cosi' una manutenzione che sfora la grazia sale ad ALERT anche col trasporto giu'; lock RIENTRATO → stato ripristinato, perche' il rientro si annuncia una volta sola. notify() accetta tentativi (venue_watch: 3) e l'esito finisce nel log del cron.

⚠️ Resta scoperto ogni altro chiamante di notify(): la disciplina e' oggi solo in venue_watch.

5. L'analista del 27/08, e la riga di diagnosi che mancava

La voce del 27/08 era senza analisi. Causa, dal transcript della sessione headless: Failed to authenticate: OAuth session expired and could not be refreshed, exit 1 alle 00:37:00.98Z. La meccanica aveva retto (nessuna analisi vecchia spacciata per nuova, esito nel DB, notifica partita) ma il motivo registrato era uscita 1: — vuoto: interroga() leggeva il solo stderr, e la CLI aveva scritto su stdout. Riparato (motivo_uscita), analisi recuperata. Guasto transitorio: il refresh token era valido, unico caso su 24 sessioni.

6. Fisco: la domanda (a) ha una risposta alla fonte

Circolare AdE 30/E del 27/10/2023, letta direttamente dal PDF ufficiale. I derivati con sottostante cripto stanno in c-quater → 26%, non in c-sexies → 33%, e la circolare dice esplicitamente che la riforma 2023 non sposta nulla. Il collaterale sconta il 2‰ al 31/12 (intermediario non residente → imposta sul valore delle cripto-attivita', ~$4/anno a questo capitale). E la conversione USDC→USDE non e' fattispecie realizzativa. Dettaglio e citazioni verbatim in CLAUDE.md §5.4. La (b), i payout di una prop firm, resta aperta.

Cosa cambia

  • CLAUDE.md: §3 nuova riga (GTAA01 rinviato a $15k) · §5.2 risolto · §5.4 riscritto · §5.13 nuovo debito (la fase che ruota, quantificata e innocua oggi).
  • src/live/journal.py: SOGLIE_CAPITALE + regola soglia_capitale.
  • src/live/venue_watch.py, src/live/notifier.py, scripts/live/venue_watch.py: commit dopo l'invio.
  • src/live/analista.py: motivo_uscita da stdout E stderr.
  • tests/test_gtaa_band_gate.py: gate (A) ritirato, motivo e causa congelati.
  • Script nuovi: r0828_gtaa_band_phase.py, r0828_gtaa_band_median_phase.py, r0828_senza_gtaa.py.

Suite: 789 passati, 0 falliti.