Come verificare un track record di trading AI
Quali prove rendono verificabile un track record pubblico di trading AI: sei riscontri richiesti dal lettore e perché un trimestre live non basta.
Un track record di trading basato sull’AI è verificabile quando un estraneo può ricostruirlo a partire da documenti esistenti prima che si verificassero i risultati. Ben poco di ciò che viene pubblicato online supera questo criterio. Di seguito la checklist che un lettore può applicare in circa due minuti, con dati di mercato a supporto di quattro elementi: benchmark, timestamp, costi di trading e durata del campione.
Cosa rende verificabile un track record di trading basato sull’AI?
Sei caratteristiche. Ognuna è un elemento che si può verificare, non un giudizio discrezionale.
- Ingressi pubblicati prima che il risultato sia noto. Il timestamp deve trovarsi in un luogo che l’autore non possa riscrivere, per esempio un commit inviato in quel momento o un estratto conto del broker. Un file con l’elenco delle operazioni passate è un’affermazione sul passato, non una registrazione degli eventi.
- Un solo benchmark, indicato all’inizio e mai modificato. “Battere il mercato” non significa nulla finché il confronto non è ancorato a un fondo specifico su un intervallo specifico.
- Costi inclusi nei numeri riportati. Commissioni, oneri regolamentari, costi di borrow sulle posizioni short e spread pagato sia in entrata sia in uscita.
- Un runbook versionato, non modificato a posteriori. Quando un repository pubblico sostiene il track record, il link utile deve puntare a una release contrassegnata o a un commit hash. Un link al default branch mostra la strategia di oggi, che potrebbe non essere quella che ha operato a marzo.
- Ogni posizione e ogni account, perdite incluse. Pubblicare un solo account su cinque in funzione è una selezione.
- Capitale iniziale sufficiente a rendere plausibili le esecuzioni. Un nozionale di poche centinaia di dollari può “detenere” posizioni che nessun ordine reale avrebbe eseguito al prezzo indicato.
Un track record privo di uno di questi elementi non è necessariamente disonesto. È non verificabile, una situazione più comune e altrettanto inutile per il lettore.
Perché il benchmark deve essere indicato in anticipo
Scegliere il benchmark dopo aver visto i risultati è il vantaggio più facile da ottenere in finanza. Sei fondi indicizzati statunitensi ampi, gli stessi sei mesi del 2026, considerando solo la variazione di prezzo:
L'esatto SQL dietro ogni numero
WITH rets AS (
SELECT ticker,
round(100 * (toFloat64(argMax(close, window_start))
/ toFloat64(argMin(close, window_start)) - 1), 2) AS return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'DIA', 'RSP', 'MDY')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
)
SELECT ticker,
return_pct,
round(return_pct - min(return_pct) OVER (), 2) AS points_above_worst
FROM rets
ORDER BY return_pct DESCIWM ha restituito 21.12% e DIA ha restituito 8.42%, lasciando 12.7 punti tra il migliore e il peggiore dei 6 nello stesso intervallo. Scegliere con quale fondo confrontarsi dopo la chiusura del periodo equivale a ottenere per intero quella differenza, senza che la strategia debba fare nulla. Si tratta di rendimenti di prezzo prima dei dividendi: è una seconda regola di misurazione che conviene dichiarare in anticipo (come vengono misurati i rendimenti mensili illustra il calcolo del total return).
Perché il timestamp dell’ingresso è l’intera tesi
Un ingresso che compare dopo il movimento è la descrizione di un grafico. L’ampiezza del movimento che un mercato compie in una singola seduta è sufficiente a fare sì che la differenza tra “pubblicato alle 09:35” e “pubblicato alle 15:55” superi la maggior parte dei vantaggi dichiarati. Ecco questa distanza, misurata dal primo print di ogni seduta, nella prima metà del 2026:
L'esatto SQL dietro ogni numero
WITH minute_px AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
),
opens AS (
SELECT session_date, argMin(px, et) AS open_px
FROM minute_px
GROUP BY session_date
),
buckets AS (
SELECT session_date,
toStartOfInterval(et, INTERVAL 30 MINUTE) AS bucket,
argMax(px, et) AS bucket_px
FROM minute_px
GROUP BY session_date, bucket
)
SELECT formatDateTime(b.bucket, '%H:%i') AS et_time,
count() AS session_count,
round(quantileDeterministic(0.5)(abs(100 * (b.bucket_px / o.open_px - 1)),
cityHash64(b.session_date)), 3) AS median_abs_move_pct
FROM buckets AS b
INNER JOIN opens AS o ON b.session_date = o.session_date
GROUP BY et_time
ORDER BY et_timeNella fascia 09:30 ET, la distanza mediana della seduta dalla prima print è stata di 0.216%. Nella fascia 15:30, la distanza mediana è stata di 0.415%. Qualsiasi informazione disponibile all’agente all’apertura esclude quasi tutto quel movimento. Una cronologia dei commit o un feed pubblico datato dimostra l’ordine temporale (i report quotidiani di ricerca di mercato basati sull’AI dipendono dalla stessa caratteristica). Uno screenshot della curva azionaria non dimostra nulla di tutto questo.
Cosa deve essere incluso nei numeri
I rendimenti lordi descrivono un portafoglio che nessuno avrebbe potuto detenere. Ogni ingresso e ogni uscita attraversano lo spread bid-ask, cioè la differenza tra il miglior prezzo di acquisto e il miglior prezzo di vendita, e questa differenza non è uguale per ogni titolo:
L'esatto SQL dietro ogni numero
SELECT ticker,
round(quantileDeterministic(0.5)(20000 * (toFloat64(ask_price) - toFloat64(bid_price))
/ (toFloat64(ask_price) + toFloat64(bid_price)),
cityHash64(sip_timestamp)), 2) AS median_spread_bps,
round(25000 * quantileDeterministic(0.5)(2 * (toFloat64(ask_price) - toFloat64(bid_price))
/ (toFloat64(ask_price) + toFloat64(bid_price)),
cityHash64(sip_timestamp)), 2) AS round_trip_cost_per_25k_usd
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'MSTR')
AND sip_timestamp >= toDateTime('2026-07-15 15:00:00')
AND sip_timestamp < toDateTime('2026-07-15 16:00:00')
AND bid_price > 1
AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps DESCIn quell’unica ora di metà giornata, lo spread quotato mediano è stato di 10.08 punti base su MSTR, contro 0.27 su SPY. Un punto base è un centesimo di punto percentuale. Su una posizione da $25.000, attraversare lo spread una volta in ciascuna direzione costa $25.2 all’estremità più ampia di questo elenco e $0.66 all’estremità più stretta, prima delle commissioni. Un portafoglio che registra un turnover completo una volta alla settimana paga questo costo circa cinquanta volte l’anno. Un track record che lo omette accredita silenziosamente quei dollari a se stesso (quanto costa negoziare un’azione analizza il resto del conto).
Quanto tempo deve trascorrere prima che i risultati live abbiano significato?
Un trimestre di trading live è un’osservazione estratta da una distribuzione ampia, e la sua ampiezza è misurabile. Tutte le finestre sovrapposte di una determinata durata dal gennaio 2015 per SPY, il maggiore fondo che replica l’S&P 500, ordinate per percentile:
L'esatto SQL dietro ogni numero
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toFloat64(argMax(close, window_start)) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2015-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY session_date
),
series AS (
SELECT groupArray(close_px) AS px
FROM (SELECT close_px FROM daily ORDER BY session_date)
),
horizons AS (
SELECT arrayJoin([21, 63, 126, 252]) AS sessions, px
FROM series
),
windows AS (
SELECT sessions,
arrayJoin(arrayMap(i -> (i, 100 * (px[i + sessions] / px[i] - 1)),
range(1, length(px) - sessions + 1))) AS w
FROM horizons
),
measured AS (
SELECT sessions,
w.1 AS window_index,
w.2 AS window_return_pct
FROM windows
)
SELECT multiIf(sessions = 21, '1 month',
sessions = 63, '3 months',
sessions = 126, '6 months',
'12 months') AS holding_period,
count() AS window_count,
round(quantileDeterministic(0.05)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS p05_return_pct,
round(quantileDeterministic(0.50)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS median_return_pct,
round(quantileDeterministic(0.95)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS p95_return_pct,
round(quantileDeterministic(0.95)(window_return_pct,
cityHash64(window_index * 1000 + sessions))
- quantileDeterministic(0.05)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS spread_pct,
round(stddevSamp(window_return_pct), 1) AS stdev_pct
FROM measured
GROUP BY sessions
ORDER BY sessionsNelle 2826 finestre trimestrali sovrapposte, il risultato mediano del semplice buy and hold è stato 3.9%, con il 5° percentile a -8.8% e il 95° percentile a 12.2%: una fascia ampia 21.1 punti. Qualsiasi risultato trimestrale compreso in quella fascia è compatibile con il possesso dell’indice senza effettuare operazioni. Si lanciano venti agenti, li si fa operare per un trimestre e si pubblica il migliore: per costruzione, il numero mostrato proviene dalla parte alta di una fascia come quella.
Il calcolo sulla durata del campione non lascia margine. I risultati a dodici mesi della stessa serie hanno una deviazione standard di 13.6 punti. Per distinguere un vantaggio reale dal rumore servono all’incirca (2 × variazione ÷ vantaggio)² anni di risultati live. Con quel livello di variazione, un ipotetico vantaggio di 3 punti all’anno richiede molti decenni, mentre anche un vantaggio di 10 punti richiede anni, non mesi. Le finestre indicate sopra si sovrappongono, quindi 2826 conta le finestre, non i campioni indipendenti.
$25.000 di denaro reale risolvono il problema?
Il denaro reale migliora l’evidenza in un modo specifico. Il paper trading esegue gli ordini a prezzi che nessuna controparte ha accettato e non subisce mai il rifiuto di un ordine. Un account finanziato con $25.000 esegue gli ordini contro quotazioni live e paga commissioni reali, con estratti conto che una terza parte può verificare. Inoltre, le dimensioni delle posizioni sono sufficienti a rendere le esecuzioni ordinarie anziché immaginarie.
Non risolve il problema del campione. Venticinquemila dollari negoziati per quattro mesi sono ancora un’unica osservazione estratta dalla distribuzione sopra indicata. Un account live può essere chiuso dopo un drawdown e riaperto, facendo ripartire il track record da zero. La dimensione rende le esecuzioni credibili. Solo il tempo rende i risultati informativi.
Quattro modalità di fallimento da riconoscere
- Un backtest travestito da track record. I risultati simulati su dati passati sono ipotesi sul passato. Il look-ahead bias mostra come una simulazione possa incorporare informazioni che la strategia non avrebbe potuto avere in quel momento. Il segnale più evidente è una curva azionaria che inizia anni prima del codice.
- Solo il superstite sul palco. Dieci agenti vengono lanciati e uno viene pubblicato. I sistemi di trading basati sull’AI multi-agent rendono facile farlo per errore, perché il framework che esegue dieci varianti sceglie anche quella di cui vale la pena scrivere.
- Il riavvio. Un drawdown, una pausa, un account nuovo e una curva che inizia alla data del riavvio. La domanda decisiva è: mostrare la curva azionaria dal primo dollaro del primo account.
- Il runbook riscritto. Prompt e limiti di posizione modificati tra l’operazione e il resoconto. Gli alpha factor generati dagli LLM possono essere prodotti a migliaia. Perciò la regola di selezione deve essere pubblicata prima della selezione. In caso contrario, il track record diventa una storia sui fattori che, casualmente, hanno funzionato.
FAQ
Un track record di trading basato sull’AI può essere verificato?
Sì, quando gli ingressi sono stati pubblicati prima che i risultati fossero noti, il benchmark è stato fissato in anticipo, i costi sono inclusi nei numeri e vengono mostrati tutti gli account. Il controllo è meccanico e richiede pochi minuti. La maggior parte dei track record pubblicati fallisce già sul primo requisito.
Quanto deve durare un track record live di trading basato sull’AI?
Più a lungo di quasi tutti i track record pubblicati. Nei periodi misurati qui, i risultati a dodici mesi dell’indice hanno avuto una deviazione standard di 13.6 punti. Separare un vantaggio modesto dalla fortuna con un livello di confidenza convenzionale richiede quindi almeno anni, e decenni nel caso di un vantaggio ridotto.
$25.000 sono sufficienti a rendere significativi i risultati di un portafoglio basato sull’AI?
Sono sufficienti a rendere reali le esecuzioni: quotazioni live, commissioni reali ed estratti conto verificabili. Non sono sufficienti a rendere statisticamente significativi i risultati di pochi mesi. Questa è una questione di tempo trascorso, non di dimensione dell’account.
Qual è la differenza tra un backtest e un track record?
Un backtest applica regole a dati già esistenti. Un track record è una serie di decisioni pubblicate prima che se ne conoscano i risultati. Solo il secondo può essere smentito da ciò che accade in seguito, ed è questo che lo rende un’evidenza.
Perché la scelta del benchmark è così importante?
Nella prima metà del 2026, i sei fondi indicizzati sopra indicati hanno chiuso con 12.7 punti di differenza considerando solo il prezzo. Un benchmark scelto dopo la chiusura dell’intervallo può fornire per intero quel margine senza alcun contributo della strategia.
Ogni numero riportato in questa pagina proviene da una stored query sui dati di mercato, e il codice SQL è disponibile sotto ciascun pannello. Applica le stesse finestre alle tue date sul terminale Strasmore.