5.0: apprendimento in ombra (ADR-0006), skill di progetto, documenti della sessione
Con il backtest negativo e zero basket chiusi nel forward test, un meta-modello attivo e un bandit che cambia il preset da solo sono rumore: learning.enabled = false di fabbrica lascia il ledger, la calibrazione, la previsione di volatilità e la logistica in ombra, e spegne ciclo settimanale e challenger finché non valgono 300 basket chiusi e un P&L forward non negativo. Le skill in .claude/skills dicono come si comincia, si verifica, si diagnostica, si chiude e si rilascia una sessione. CLAUDE.md, glossario e problemi noti aggiornati alla 5.0; catena Verifica verde con 219 test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,24 @@
|
||||
# Apprendimento: livelli 0-3
|
||||
|
||||
Aggiornato: 2026-09-16. Tutto è costruito da zero nel Core (`src/Encelado.Core/Baskets/Learning/`), senza pacchetti: regressione logistica online, un MLP a 16 unità ReLU con Adam, un bandit di Thompson, due previsori di volatilità e un indice di stabilità (PSI). Il codice del Bot che li usa a runtime è `src/Encelado.Bot/Baskets/LearningState.cs`.
|
||||
Aggiornato: 2026-09-23 (ADR-0006). Tutto è costruito da zero nel Core (`src/Encelado.Core/Baskets/Learning/`), senza pacchetti: regressione logistica online, un MLP a 16 unità ReLU con Adam, un bandit di Thompson, due previsori di volatilità e un indice di stabilità (PSI). Il codice del Bot che li usa a runtime è `src/Encelado.Bot/Baskets/LearningState.cs`.
|
||||
|
||||
**Regola che governa tutto**: nessun livello cambia un parametro live da solo. Il meta-modello può soltanto *rifiutare* un ingresso quando è attivo; il bandit *propone* un preset e lo applica solo in Paper/Demo; tutto il resto finisce in `knowledge/proposals.csv` e passa dal forward test pre-registrato.
|
||||
**Regola che governa tutto**: nessun livello cambia un parametro live da solo. Il meta-modello può soltanto *rifiutare* un ingresso quando è attivo; il bandit *propone* un preset e **non lo applica** (dalla 5.0; fino alla 4.0.0 lo applicava in Paper e Demo); tutto il resto finisce in `knowledge/proposals.csv` e passa dal forward test pre-registrato.
|
||||
|
||||
## Stato dalla 5.0 (ADR-0006): quasi tutto in ombra
|
||||
|
||||
`strategy.json` → `learning` è `{enabled: false, weeklyCycle: false, challenger: false}` di fabbrica. Con `enabled = false`:
|
||||
|
||||
| Componente | Runtime |
|
||||
|---|---|
|
||||
| Ledger, `orders.jsonl`, `baskets.csv` | scritti sempre: sono il dato |
|
||||
| Livello 0 (calibrazione) | generato dal ciclo, quindi fermo finché il ciclo non gira (strumento `learn`, Fase 6) |
|
||||
| Previsione di volatilità | attiva, deterministica, usata da `z_in` effettivo |
|
||||
| Logistica (livello 1) | **in ombra**: `p_ML` a ogni chiusura di barra nel ledger, apprendimento a ogni chiusura di basket; mai un cancello (`mlActive = false`) |
|
||||
| MLP challenger (livello 2) | non addestrato |
|
||||
| Bandit (livello 3) | riceve i premi e **propone** nel log; non applica |
|
||||
| Ciclo settimanale | non gira nel bot; passa a `tools/Encelado.Backtest learn` (Fase 6) |
|
||||
|
||||
**Criterio di riattivazione** (`learning.enabled = true`, scritto dall'operatore, mai dal bot): almeno **300 basket chiusi in Demo** *e* **P&L netto forward ≥ 0** sulla metrica pre-registrata in `knowledge/preregistrazione.csv`. Prima di allora qualunque «adattamento automatico» è rumore: il meta-modello può solo ridurre le perdite di una strategia che il backtest dice non reggere i costi, e a poche entrate al giorno i 300 basket sono mesi. Motivazione completa in `docs/adr/ADR-0006-apprendimento-in-ombra.md`.
|
||||
|
||||
## Il dataset
|
||||
|
||||
|
||||
Reference in New Issue
Block a user