Il bot ora ha un secondo parere prima di ogni ingresso: un classificatore GBDT
(scritto in C#, senza dipendenze native) addestrato sugli esiti dei segnali passati
con triple-barrier e meta-labeling, validato con CPCV, PBO e Sharpe deflazionato
contando tutte le configurazioni provate. Il modello non propone mai operazioni:
può solo rifiutarne una sotto la probabilità minima o ridurne la size, e si
sospende da solo quando le feature dal vivo derivano da quelle di addestramento.
Senza un campione promosso il bot opera come prima.
Perché tutto questo serve, e nell'ordine in cui è stato fatto:
- I log del giro reale sul testnet mostravano zero barre chiuse in tre giorni: il
decodificatore saltava l'oggetto annidato dei kline. Corretto con test di
regressione. Lo stesso giro restava a 1499/1500 barre di riscaldamento perché
Binance ne serve al massimo 1500 per richiesta: il client ora pagina e il motore
chiede quante ne servono davvero.
- Il log è diventato una tabella `;` con data, livello, sorgente, evento ed
eccezione (grep `;ERR;` trova ogni errore), con rotazione a dimensione impostabile
dalla finestra. Anche decisions.csv/executions.csv/trades.csv hanno intestazione
stabile, id monotoni e colonna `motivazione`, e vengono scritti anche in SQLite.
- La configurazione vive in Documenti\Encelado (con migrazione dal file accanto
all'eseguibile), le credenziali restano in LocalAppData, il database in
%ProgramData%\Encelado: tre cartelle per tre ruoli diversi.
- In modalità demo gli ordini partono davvero sul testnet (dryRun spento di
fabbrica): è l'unico modo di provare il percorso di esecuzione come in produzione.
- Lo strumento di backtest copre le fasi 0-4 della guida: qualità dei dati,
baseline buy&hold/SMA con PSR e DSR, Engle-Granger + Johansen + Kalman con costo
di break-even, dataset e addestramento del meta-modello, DQN su molti seed.
Ogni tabella è CSV `;` con motivazione, e la promozione a campione avviene solo
se il modello supera i criteri della Fase 3.
Sui dati disponibili nessuna coppia supera quei criteri, quindi nessun campione è
stato promosso: il bot resta sulla sola regola statistica, che a sua volta non
regge fuori campione. Il risultato è documentato, non nascosto.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>