Dit is de vraag die ik het vaakst krijg, in een of andere vorm, van mensen die net hun eerste strategie hebben afgerond: hoeveel trades heb ik nodig voordat het resultaat echt is? Meestal noemen ze er meteen een getal bij. "Ik heb 1,200 trades, dat is genoeg, toch?" Het eerlijke antwoord stelt iedereen teleur, want het gaat helemaal niet om het aantal trades.
Hier staat het hele verhaal in één regel. Daarna leg ik uit waarom die pijn doet.
Wat is de standaardfout van een Sharpe-ratio?
Voor een Sharpe berekend over n periodieke rendementen, onder de aanname dat die onafhankelijk en ongeveer normaal verdeeld zijn, is de steekproeffout:
SE(s) ≈ √((1 + s²/2) / n)
waarbij s de Sharpe is gemeten op diezelfde frequentie. Annualiseer beide kanten en er volgt een eenvoudige uitkomst. Met k waarnemingen per jaar en T jaar geldt voor de geannualiseerde Sharpe S:
SE(S) ≈ √((1 + S²/(2k)) / T)
Kijk naar die 2k in de noemer. Voor dagelijkse rendementen is k = 252, dus zelfs een Sharpe van 2 draagt 4/504 ≈ 0.008 bij aan de teller. De hele term komt uit op 1. De standaardfout van een geannualiseerde Sharpe is ongeveer 1/√T, waarbij T het aantal kalenderjaren aan data is. De standaardfout hangt nauwelijks af van de Sharpe zelf, niet van je steekproeffrequentie en absoluut niet van het aantal trades.
Dus:
| Jaren aan data | SE(Sharpe) | 95%-BI bij een gemeten waarde van 1.5 |
|---|---|---|
| 1 | 1.00 | −0.46 tot 3.46 |
| 2 | 0.71 | 0.11 tot 2.89 |
| 3 | 0.58 | 0.37 tot 2.63 |
| 5 | 0.45 | 0.62 tot 2.38 |
| 10 | 0.32 | 0.88 tot 2.12 |
Een backtest met een Sharpe van 1.5 over twee jaar geschiedenis is op het 95%-niveau statistisch niet te onderscheiden van kop of munt. Dat is voor het meeste crypto-onderzoek de uitgangssituatie, omdat de schone data met gecorrigeerde survivorship bias en nauwkeurige kosten voor de meeste mensen pas ergens rond 2022 begint, en de helft van de interessante symbolen vóór 2023 nog niet bestond.
Maar ik heb 40,000 trades. Lost dat het probleem niet op?
Nee. Dit is het misverstand dat ik het liefst uit de wereld help.
Het aantal trades en de steekproefperiode zijn verschillende grootheden, en slechts één ervan staat in de formule. Als je strategie in zes maanden 40,000 keer afgaat, heb je T = 0.5 en SE ≈ 1.41. Het 95%-interval rond een gemeten Sharpe van 2.0 loopt van −0.8 tot 4.8. Met veertigduizend trades is de eerlijke conclusie nog steeds: "kan goed zijn, kan negatief zijn."
Dat komt doordat die 40,000 trades geen 40,000 onafhankelijke weddenschappen zijn op 40,000 verschillende markttoestanden. Het zijn 40,000 waarnemingen uit ongeveer 180 dagen marktgedrag, en de dagen hangen onderling samen, net als de regimes binnen die periode. Een hoogfrequent mean-reversionboek dat vier maanden lang elke dag geld verdient, heeft in feite één weddenschap gedaan — dat reversion op korte horizon standhoudt in dit liquiditeitsregime — en de uitkomst daarvan misschien maar een handvol onafhankelijke keren waargenomen.
De gedachte die ik zelf gebruik: tel regimes, geen fills. Hoeveel echt verschillende marktomstandigheden heeft deze strategie doorstaan? Een funding-carrystrategie die één lange periode met een positieve basis meemaakte, heeft n = 1 gezien, ongeacht hoeveel uurlijkse herbalanceringen ze registreerde.
Snelle diagnose: voer een block bootstrap uit op je dagelijkse P&L, met een bloklengte van 20 dagen, en bekijk de spreiding van de opnieuw berekende Sharpes. Ligt het 5e percentiel onder nul, dan doet je aantal trades er niet toe. Je hebt er ongeveer negen regels numpy voor nodig, en deze controle heeft me van meer strategieën afgehouden dan welke andere afzonderlijke controle ook.
Geldt de formule voor echte strategieën?
Niet precies, en de afwijking werkt in een richting die je niet bevalt. Het resultaat 1/√T gaat uit van IID-normaal verdeelde rendementen. Rendementen van echte strategieën zijn autocorrelerend en scheef verdeeld, en die scheefheid is meestal negatief bij strategieën die op carry, short vol of mean reversion lijken. De correctie van Mertens neemt die momenten weer mee:
SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)
waarbij γ₃ de scheefheid is en γ₄ de kurtosis. Negatieve scheefheid maakt de term −γ₃·s positief en verruimt daarmee het interval. Exceskurtosis maakt het nog breder. Bij een typische crypto-carry-P&L met een scheefheid rond −1.2 en een kurtosis rond 9 heb ik gezien dat de gecorrigeerde standaardfout 30–40% groter uitvalt dan de naïeve versie. Lo's artikel uit 2002 behandelt de autocorrelatie, en het effect heeft hetzelfde teken: positieve seriële correlatie in rendementen overschat de naïeve Sharpe en verkleint de schijnbare fout. Een nare combinatie.
Beschouw 1/√T dus als een ondergrens voor je onzekerheid. Dit is het gunstigste geval.
Hoe hoog moet de Sharpe zijn als ik 500 varianten heb getest?
Nu komen we bij het deel dat ertoe doet voor iedereen met een geautomatiseerde onderzoeks-pipeline. Dat is de situatie waar we bij Stratmill dagelijks mee te maken hebben: de generatieagent levert niet één kandidaat op, maar honderden.
Het verwachte maximum van M trekkingen uit een standaardnormale verdeling is ongeveer √(2 ln M). Vermenigvuldig dat met je standaardfout en je krijgt de Sharpe die de gelukkigste van M werkelijk waardeloze strategieën zal laten zien.
| Geteste strategieën | √(2 ln M) | Sharpe van de beste ruisstrategie, 5 jaar (SE 0.45) | Beste ruisstrategie, 2 jaar (SE 0.71) |
|---|---|---|---|
| 10 | 2.15 | 0.96 | 1.52 |
| 100 | 3.03 | 1.36 | 2.16 |
| 500 | 3.53 | 1.58 | 2.50 |
| 5,000 | 4.13 | 1.85 | 2.93 |
Kijk naar de een-na-laatste rij. Als je 500 kandidaten genereerde op basis van twee jaar data en de winnaar een Sharpe van 2.4 laat zien, heb je precies niets gevonden. Dat ligt onder de ruisvloer. De deflated Sharpe van Bailey en López de Prado formaliseert dit met de variantie van je test-Sharpes in plaats van de grove √(2 ln M). Die methode is de moeite waard om goed te implementeren, maar de grove versie is al genoeg om je gedrag vandaag te veranderen.
Twee dingen maken dit erger dan de tabel laat zien. Ten eerste is M niet het aantal strategieën dat je hebt opgeslagen, maar het aantal dat je hebt geëvalueerd, inclusief elke parameterwijziging, elke keer dat je dacht "ik probeer gewoon eens een lookback van 30 perioden", en elke nieuwe run na een bugfix. Niemand telt eerlijk. Ten tweede zijn je kandidaten geen onafhankelijke trekkingen. Daardoor overschat √(2 ln M) de effectieve breedte, al betekent de correlatie tussen tests ook dat één gunstig regime een hele groep kandidaten tegelijk omhoogtilt.
Het gevaarlijkste getal in quantonderzoek is het getal dat niemand heeft bijgehouden: hoe vaak je hebt gekeken.
Wat doe ik dan concreet?
Vijf dingen, in de volgorde waarin ik ze zou aanpakken.
- Registreer elke evaluatie. Een teller die bij elke backtestrun oploopt, wordt bewaard en nooit op nul gezet. Kun je niet zeggen wat M is, dan kun je ook je drempel niet bepalen. Dit is het uur engineering met de hoogste opbrengst van de hele lijst.
- Rapporteer altijd de Sharpe met het interval. Toon nooit alleen een getal. Onze backtestrapporten tonen
1.72 ± 0.51 (2.9y, skew-adjusted)en het ±-teken is verplicht. Dat verandert de manier waarop het hele team over resultaten praat. - Bepaal de lat op basis van M en T voordat je de resultaten bekijkt. Haal het getal uit de tabel hierboven en schrijf het op. Drempels achteraf zijn de manier waarop iedereen zichzelf een curvefit aanpraat.
- Kies bij een kleine steekproef liever voor breedte dan voor frequentie. Je kunt geen extra kalendertijd maken, maar je kunt hetzelfde signaal op 40 ongecorreleerde symbolen toepassen. Daarmee vergroot je de effectieve n echt, anders dan wanneer je de handelsfrequentie verhoogt. Let wel op de correlaties: 40 crypto-perpetuals tijdens een uur met risicoaversie zijn in feite één instrument.
- Ga daarna paper traden. Out-of-sampletijd bouwt zich op met één dag per dag en er is geen kortere weg. Precies daarom is dit de enige steekproef waarop niemand kan overfitten.
Niets hiervan maakt korte steekproeven bruikbaar. Het helpt je eerlijk te zijn over wat je op basis van een korte steekproef kunt beweren. Dat is een veel zwakkere claim dan de meeste backtestrapporten suggereren. Een Sharpe van 1.5 over twee jaar is een hypothese die het waard is om met paper trading te toetsen. Het is geen bevinding.
← Alle artikelen
