Approfondimenti e Notizie

Blog

Approfondimenti sul trading con IA, l'analisi di mercato e il futuro della DeFi.

Browse collections →
Filter by tag:
July 2, 2026
#algotrading

La tassa del framework: quando la tua libreria di backtest è più lenta di un ingenuo ciclo pandas

Abbiamo messo a confronto otto motori di backtest su un'unica identica ricerca di parametri — 150k barre, 80 combinazioni di incrocio HMA, parità del conteggio operazioni bloccata a 2707. Due dei framework event-driven più popolari sono risultati più lenti di un ciclo pandas scritto a mano, mentre un motore vettorizzato/compilato ha eseguito lo stesso lavoro ~13,000× più velocemente. Uno studio sull'overhead per barra che le librerie popolari non sono mai state costruite per ammortizzare.

#algotrading#backtest#prestazioni
Leggi l'Articolo →
July 1, 2026
#algotrading

La Probability of Backtest Overfitting: La Tua Ricerca Ha Battuto un Lancio di Moneta?

Il Deflated Sharpe Ratio prezza la strategia vincente; il PBO prezza la ricerca che l'ha scelta. La Combinatorially Symmetric Cross-Validation esegue C(16,8) = 12,870 split train/test su una matrice di performance 1000x200 e chiede: il vincitore in-sample finisce nella metà inferiore out-of-sample? La trappola che quasi tutti si perdono — il nullo del PBO è 0.5, non 1. Su 200 strategie a vantaggio zero, il miglior Sharpe annualizzato in-sample di 1.98 collassa a 0.06 out-of-sample e PBO = 0.476: un lancio di moneta, completamente overfit. Pianta un vantaggio reale (Sharpe annualizzato 2.38) e il PBO scende a 0.001, con l'in-sample 3.73 che sopravvive a un out-of-sample 2.34. Anche una griglia di medie mobili su un puro random walk non ha alcuna abilità out-of-sample — PBO 0.463 mediato su 60 matrici, statisticamente indistinguibile dal nullo — e su una matrice rappresentativa il miraggio è vivido: un miglior Sharpe in-sample di 2.33 collassa a un out-of-sample mediano di -0.22, PBO 0.573, un 63% di probabilità di perdita.

#algotrading#backtest#overfitting
Leggi l'Articolo →
June 30, 2026
#algotrading

La Tassa IPC: Metti il Motore di Backtest Dietro un Socket e Perdi il 13% — Ma Quasi Nulla è Colpa del Socket

Abbiamo portato un kernel di backtest numba riga per riga in Rust e lo abbiamo chiamato attraverso un confine di processo in quattro modi diversi, con un gate di equivalenza che conferma un PnL identico fino all'ultimo trade. Spedire l'intera serie di prezzi da 1.2 MB attraverso un Unix socket costa ~2 ms — circa lo 0.1% del lavoro. Codificare lo stesso payload in JSON costa 1348 volte più dei byte raw, le chiamate chatty per-combo rispediscono i dati 80 volte, e un pattern di chiamata per-barra pagherebbe 2.1 s di puro IPC su un job da 2.0 s. Il confine è economico; la tassa sta in come lo attraversi.

#algotrading#backtest#performance
Leggi l'Articolo →
June 29, 2026
#algotrading

Il Deflated Sharpe Ratio: Quanti dei 'Vincitori' del Tuo Backtest Sopravvivono ai Test Multipli?

Una ricerca di parametri è una macchina per fabbricare fortuna. Su puro rumore — 1,000 strategie con vantaggio reale pari a zero — lo Sharpe annuale migliore ha una media di 1.63 e il test di significatività ingenuo segnala una scoperta il 100% delle volte. Costruiamo una ground truth controllata e mostriamo che il Deflated Sharpe Ratio, l'haircut di Harvey-Liu e la Reality Check di White ripristinano l'onestà: le scoperte false scendono da 1.000 a 0.001-0.057, i vantaggi genuini sopra il tetto di rumore vengono mantenuti con potenza ~1 — e un'unica vera trappola (griglie correlate) in cui il DSR grezzo sovra-deflaziona e il verdetto va letto attraverso un'intera banda di stime dei trial effettivi, non una sola.

#algotrading#backtest#overfitting
Leggi l'Articolo →
June 28, 2026
#algotrading

Il Design della Funzione Obiettivo: La Metrica che Ottimizzi Sceglie di Nascosto la Tua Strategia

Per cercare la strategia 'migliore' devi prima definire 'migliore' — e quello scalare sceglie di nascosto il vincitore. Su dati sintetici con un vantaggio noto (600 seed, T=2000, 80 soglie), uno Sharpe per-trade ingenuo incorona una lotteria: sceglie un vincitore con esposizione sotto il 5% nel 56% dei seed e degenera nel 57% — nel seed più estremo, 8 trade che ottengono uno Sharpe in-sample di 21.09 che collassa a 0.13 out of sample. La riparazione onesta è quasi banale: misurare sull'intera timeline, che non degenera mai (out-of-sample 1.71). Uno shrinkage sul conteggio dei trade (conf_k) e un floor di esposizione possono correggere retroattivamente una metrica per-trade, ma anche completamente riparati eguagliano soltanto lo Sharpe sull'intera timeline (1.70 contro 1.71) — senza mai batterlo. La legge di Goodhart, in un backtest, con una ground truth controllata.

#algotrading#backtest#overfitting
Leggi l'Articolo →
June 27, 2026
#algotrading

Look-Ahead Bias: Come un Errore di un Singolo Bar Genera uno Sharpe di 15 dal Rumore Puro

Uno studio controllato dei sottili leak di look-ahead che gonfiano silenziosamente i backtest. Con zero vantaggio reale, un fill sullo stesso bar genera uno Sharpe annualizzato di +14.8 dal puro rumore; una sbirciata di un bar sull'indicatore, +4.8. La tassonomia, le magnitudini misurate, e come rilevare ogni leak prima che ti costi denaro.

#algotrading#backtest#look-ahead bias
Leggi l'Articolo →
June 26, 2026
#algotrading

La Scala di Velocità del Backtest: 298x su una CPU da Laptop, PnL Identico Fino all'Ultimo Trade

Cinque implementazioni dello stesso sweep di parametri a 80 combo, tutte verificate per produrre lo stesso PnL: pandas rolling.apply impiega 69.9 secondi, numpy 3.1, numba 2.0, numba parallelo 0.23 — uno speedup misurato di 298x su un Apple M2 Max a parità di hardware, e ancora ~13x rispetto a una baseline vettorizzata competente. Cosa guadagna ogni gradino, perché una GPU non è il pezzo mancante, e dove si trova il vero collo di bottiglia nella ricerca massiva di parametri.

#algotrading#backtest#performance
Leggi l'Articolo →