Strasmore Research
Leren Matt ConnorDoor Matt Connor

AI-trading track record verifiëren: waar let u op?

Welke zes bewijzen maken een openbaar AI-trading track record verifieerbaar? Ontdek waarom één live kwartaal geen bewijs is en welke data u kunt controleren.

Een AI-trading track record is verifieerbaar wanneer een buitenstaander het kan reconstrueren aan de hand van gegevens die al bestonden voordat de uitkomsten bekend waren. Zeer weinig wat online wordt gepubliceerd, voldoet aan die norm. Hieronder staat een checklist die een lezer in ongeveer twee minuten kan toepassen. Vier onderdelen worden onderbouwd met market data: de benchmark, de timestamps, de trading costs en de lengte van de steekproef.

Wanneer is een AI-trading track record verifieerbaar?

Zes kenmerken. Elk kenmerk is iets waar u naar kunt zoeken en geen kwestie van beoordeling.

  1. Entries die zijn gepubliceerd voordat de uitkomst bekend was. De timestamp moet op een plaats staan die de auteur niet kan aanpassen, zoals een commit die op dat moment is gepusht of een broker statement. Een bestand met transacties uit het verleden is een bewering over het verleden en geen registratie ervan.
  2. Eén benchmark, aan het begin genoemd en daarna niet gewijzigd. "De markt verslaan" zegt niets totdat de vergelijking is vastgelegd op een specifiek fonds over een specifieke periode.
  3. Costs opgenomen in de gerapporteerde cijfers. Commissies, regulatory fees, borrow op shortposities en de spread die bij zowel entry als exit wordt betaald.
  4. Een runbook met versiebeheer in plaats van een bewerkt document. Wanneer een openbare repository het record ondersteunt, verwijst de relevante link naar een tagged release of een commit hash. Een link naar de default branch toont de strategie van vandaag. Dat hoeft niet de strategie te zijn die in maart heeft gehandeld.
  5. Elke positie en elke account, inclusief verlieslatende posities en accounts. Eén gepubliceerde account uit een groep van vijf die actief zijn, is een selectie.
  6. Voldoende startkapitaal om de fills plausibel te maken. Een notional van enkele honderden dollars kan posities "aanhouden" die geen enkele echte order tegen de weergegeven prijs zou vullen.

Een record dat een van deze kenmerken mist, is niet automatisch oneerlijk. Het is onverifieerbaar. Dat komt vaker voor en is voor de lezer even weinig bruikbaar.

Waarom de benchmark vooraf moet worden vastgelegd

Een benchmark die pas na de resultaten wordt gekozen, is de goedkoopste edge in finance. Zes brede Amerikaanse indexfondsen, over dezelfde zes maanden van 2026, uitsluitend op basis van price change:

QueryZes Amerikaanse indexfondsen, identiek tijdvenster: koersrendement, 2 januari tot en met 30 juni 2026
De exacte SQL achter elk getal
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 DESC
Run this yourself

IWM behaalde 21.12% en DIA behaalde 8.42%. Dat laat 12.7 punten tussen de hoogste en laagste waarde van de 6 over een identieke periode. Achteraf kiezen waarmee u vergelijkt, is die volledige bandbreedte waard. Geen enkele strategie hoeft daar iets voor te doen. Dit zijn price returns vóór dividenden. Een tweede meetregel die vooraf moet worden vastgelegd (hoe maandrendementen worden gemeten) behandelt de berekening van total return.

Waarom de entry-timestamp de volledige claim bepaalt

Een entry die na de beweging verschijnt, is een beschrijving van een chart. De afstand die een markt binnen één sessie aflegt, is groot genoeg om het verschil tussen "geplaatst om 09:35" en "geplaatst om 15:55" zwaarder te laten wegen dan de meeste geclaimde edges. Hieronder staat die afstand, gemeten vanaf de eerste print van elke sessie, over de eerste helft van 2026:

QueryHoe ver SPY afwijkt van de openingskoers, per halfuur ET, eerste helft van 2026
De exacte SQL achter elk getal
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_time
Run this yourself

In de bucket 09:30 ET eindigde de mediane sessie 0.216% verwijderd van de openingsprint. In de bucket 15:30 bedroeg de mediane afstand 0.415%. Alles wat een agent bij de opening wist, omvat vrijwel geen van die verdere beweging. Een commit history of een gedateerde openbare feed bewijst de volgorde (AI-rapporten voor dagelijks market research staan of vallen met dezelfde eigenschap). Een screenshot van een equity curve bewijst niets daarvan.

Wat in de cijfers moet zijn opgenomen

Gross returns beschrijven een portefeuille die niemand had kunnen aanhouden. Elke entry en exit kruist de bid-ask spread, het verschil tussen de beste koopprijs en de beste verkoopprijs. Die spread is niet voor elk aandeel gelijk:

QueryMediaan quoted spread en kosten van een round trip van $25.000: uur rond het middaguur, 15 juli 2026
De exacte SQL achter elk getal
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 DESC
Run this yourself

In dat ene uur rond het middaguur bedroeg de mediane quoted spread 10.08 basis points voor MSTR, tegenover 0.27 voor SPY. Eén basis point is een honderdste van een procentpunt. Bij een positie van $25.000 kost het eenmaal kruisen van die spread in beide richtingen $25.2 aan de brede kant van deze lijst en $0.66 aan de krappe kant, vóór commissies. Een book dat eenmaal per week volledig wordt omgezet, betaalt die tol ongeveer vijftig keer per jaar. Een record waarin deze kosten ontbreken, heeft die dollars ongemerkt aan zichzelf toegerekend (wat het kost om een aandeel te traden splitst de rest van de rekening uit).

Wanneer zeggen live resultaten iets?

Een kwartaal live trading is één trekking uit een brede verdeling. De breedte daarvan is meetbaar. Alle overlappende periodes met een bepaalde lengte sinds januari 2015 voor SPY, het grootste fonds dat de S&P 500 volgt, gerangschikt in percentielen:

QuerySPY-resultaten over de houdperiode sinds 2015: 5e percentiel, mediaan, 95e percentiel
De exacte SQL achter elk getal
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 sessions
Run this yourself

Over 2826 overlappende periodes van drie maanden bedroeg de mediane uitkomst van aanhouden en niets doen 3.9%. Het 5e percentiel lag op -8.8% en het 95e percentiel op 12.2%. Dat is een bandbreedte van 21.1 punten. Elke afzonderlijke kwartaaluitkomst binnen die band is verenigbaar met het bezitten van de index en op vakantie gaan. Lanceer twintig agents, laat ze een kwartaal draaien en publiceer de beste. Het weergegeven cijfer komt dan per constructie uit de bovenkant van een dergelijke band.

De rekenkundige gevolgen van de lengte van de steekproef zijn streng. Uitkomsten over twaalf maanden in dezelfde reeks hebben een standaarddeviatie van 13.6 punten. Om een echte edge van ruis te onderscheiden, zijn ongeveer (2 × variation ÷ edge)² jaar aan live resultaten nodig. Bij die mate van variatie heeft een hypothetische edge van 3 punten per jaar vele decennia nodig. Zelfs een edge van 10 punten vereist jaren in plaats van maanden. De periodes hierboven overlappen. 2826 telt daarom periodes en geen onafhankelijke steekproeven.

Beslecht $25.000 aan echt geld de kwestie?

Echt geld verbetert het bewijs op één specifieke manier. Paper trading vult tegen prijzen waar geen tegenpartij mee heeft ingestemd en krijgt nooit een orderafwijzing. Een gefinancierde account van $25.000 wordt gevuld tegen live quotes en betaalt echte commissies. Dat gebeurt op statements die een derde partij kan controleren. De posities zijn bovendien groot genoeg om de fills normaal en niet fictief te maken.

Het steekproefprobleem blijft bestaan. Vijfentwintigduizend dollar die vier maanden wordt getraded, is nog steeds één trekking uit de bovenstaande verdeling. Een live account kan na een drawdown worden gesloten en opnieuw worden geopend, waarna het record opnieuw begint. Omvang maakt de fills betrouwbaar. Alleen tijd maakt de resultaten informatief.

Vier failure modes die u moet herkennen

  • Een backtest in de kleding van een track record. Gesimuleerde resultaten op historische data zijn hypotheses over het verleden. Look-ahead bias laat zien hoe een simulatie informatie kan opnemen die de strategie op dat moment niet kon hebben. Het duidelijkste signaal is een equity curve die jaren begint voordat de code bestond.
  • Alleen de survivor op het podium. Tien agents worden gelanceerd en één wordt gepubliceerd. Multi-agent AI-trading systemen maken dit gemakkelijk zonder dat dit opzettelijk gebeurt. Het framework dat tien varianten uitvoert, kiest ook de variant waarover wordt geschreven.
  • De restart. Een drawdown, een pauze, een nieuwe account en een curve die op de datum van de restart begint. De vraag die dit beslist: laat de equity curve zien vanaf de eerste dollar van de eerste account.
  • Het herschreven runbook. Prompts en positielimieten worden aangepast tussen de trade en het verslag. LLM-gegenereerde alpha factors kunnen bij duizenden worden geproduceerd. Daarom moet de selectieregel vóór de selectie worden gepubliceerd. Anders wordt het record een verhaal over de factoren die toevallig werkten.

FAQ

Kan een AI-trading track record worden geverifieerd?

Ja, wanneer de entries zijn gepubliceerd voordat de uitkomsten bekend waren, de benchmark vooraf is vastgelegd, de costs in de cijfers zitten en elke account wordt getoond. De controle is mechanisch en duurt enkele minuten. De meeste gepubliceerde records falen al op het eerste punt.

Hoe lang moet een live AI-trading record lopen?

Langer dan vrijwel elk gepubliceerd record. Uitkomsten over twaalf maanden voor de index hadden over de hier gemeten periodes een standaarddeviatie van 13.6 punten. Een bescheiden edge van geluk onderscheiden bij conventionele confidence levels vereist daarom minimaal jaren en voor een kleine edge decennia.

Is $25.000 voldoende om de resultaten van een AI-portefeuille betekenisvol te maken?

Het is voldoende om de fills echt te maken: live quotes, echte commissies en controleerbare statements. Het is niet voldoende om resultaten over enkele maanden statistisch betekenisvol te maken. Dat is een kwestie van verstreken tijd en niet van de omvang van de account.

Wat is het verschil tussen een backtest en een track record?

Een backtest past regels toe op data die al bestaat. Een track record is een reeks beslissingen die vóór de uitkomsten zijn gepubliceerd. Alleen de tweede kan worden weerlegd door wat daarna gebeurt. Dat maakt haar tot bewijs.

Waarom is de keuze van de benchmark zo belangrijk?

In de eerste helft van 2026 eindigden de zes indexfondsen hierboven op basis van price return alleen 12.7 punten uit elkaar. Een benchmark die pas na afloop van de periode wordt gekozen, kan die volledige marge opleveren zonder dat er een strategie aan te pas komt.


Elk getal op deze pagina is afkomstig uit een stored query op market data. De SQL staat onder elk paneel. Pas dezelfde periodes toe op uw eigen datums in de Strasmore-terminal.

#ai agents#track record#live trading#backtesting#quant