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>
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# 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: **SI** — `60%` 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,988** → **N_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.**
|
||||
Reference in New Issue
Block a user