16 augustus 2026 · Backtesting

Waarom de meeste backtests liegen, en de vier kostenposten die dat verhelpen

Waarom de meeste backtests liegen, en de vier kostenposten die dat verhelpen

We beginnen met de cijfers, want daarin zit het hele argument. Een round-trip taker-trade op een grote perp-beurs kost ongeveer 0,10% van het notional aan commissies. Funding op een overvolle long kan 10-30% op jaarbasis tegen je werken. Een market order die groot is ten opzichte van de diepte bovenin het orderboek betaalt bovenop de spread ook nog impact volgens de wortelwet. En een backtest die de revisie van vandaag van de data van gisteren leest, krijgt een edge van enkele procenten per jaar cadeau die nooit heeft bestaan.

0.10%round-trip taker-kosten, per trade
0.15%minimale edge per trade die wij eisen
4kosten die de meeste backtests overslaan

Het verrassende getal is het eerste. Niet omdat het groot is — maar om wat het doet met de handelsfrequentie. Iedereen knikt instemmend bij "reken de fees mee" en test vervolgens een strategie die veertig keer per dag handelt. Bij 0,10% per round trip is veertig trades 4% van het notional per dag aan kosten. Er bestaat geen signaal op een mid-cap perp dat daar overheen komt. De strategie was bij lange na niet levensvatbaar, en de fee-loze backtest noemde haar briljant.

Fees zijn een filter, geen korting

Het beeld dat de meeste mensen hebben, is dat fees de curve wat afvlakken: dezelfde vorm, iets lager. Dat klopt niet. Fees zijn een frequentiefilter. Ze wissen hoogfrequente varianten van een edge volledig uit en laten trage varianten vrijwel onaangetast. Toen onze pipeline echte maker/taker-schema's per venue ging afdwingen, waren de strategieën die sneuvelden niet de slechte ideeën — het waren goede ideeën die te vaak handelden. De oplossing was meestal een langere timeframe, geen beter signaal. We laten nu alles vallen waarvan het gemiddelde rendement per trade onder 0,15% van het notional ligt, want na kosten in twee richtingen blijft er niets over om samen te stellen.

Funding is een positiebelasting met een geheugen

Perpetual futures betalen elk uur of elke acht uur funding, en dat is geen ruis: het hangt structureel samen met precies de trades die momentumsystemen willen doen. Als iedereen long zit, is funding positief, en jouw long momentumpositie betaalt hem. Een backtest zonder funding-accrual vleit trendvolgende strategieën op perps systematisch. Wij hebben dat op de pijnlijke manier geleerd — een hele familie funding-carry-strategieën werd automatisch afgeschreven omdat de engine de funding die ze moesten oogsten helemaal niet bijschreef. Het signaal deugde. De boekhouding ontbrak.

Impact schaalt met de wortel van je omvang

De beleefde fictie van bar-gebaseerd backtesten is dat je op de close gevuld wordt. Voor kleine orders klopt dat ongeveer. Voor alles wat er echt toe doet, is het geaccepteerde model dat impact groeit met de wortel van de ordergrootte ten opzichte van het volume, en dat die impact nooit meer terugkomt. Wij verwerken een schatting volgens de wortelwet in elke fill én in de equity curve zelf. Het weegt het zwaarst precies daar waar het het minst uitkomt: capaciteit. Een strategie kan bij $50k oprecht winstgevend zijn en bij $5M structureel verlieslatend, en alleen een impact-bewuste curve laat zien waar die grens ligt.

Look-ahead schuilt in de data, niet in de code

Niemand schrijft if tomorrow_close > today_close: buy(). Look-ahead sluipt binnen via het dataleidingwerk: nieuwssentiment gestempeld op publicatietijd in plaats van op het moment van binnenkomst, funding rates gejoind op de periode die ze dekken in plaats van op het moment waarop ze bekend waren, "actuele" symbol-universa toegepast op historie (survivorship), herziene economische cijfers die het getal vervangen dat destijds daadwerkelijk over de tape ging. Onze regel is overal point-in-time: elke aanvullende reeks krijgt een timestamp van het moment waarop wij het hadden kunnen weten, en een backtest mag alleen lezen wat op die nanoseconde bestond.

De toets van een backtest is niet of de curve omhooggaat. De toets is of dezelfde code, live gevoed met dezelfde signalen, dezelfde trades produceert — en dat ontdek je alleen door het te controleren, dagelijks, eindeloos.

Die laatste zin is een echt proces, geen slogan. Elke dag spelen we het venster van iedere paper-getrade strategie opnieuw af door de backtest-engine en vergelijken we de trades één voor één. Als paper en replay het oneens zijn, liegt er één van de twee, en meestal is het een kostenpost of een timestamp. De vier kostenposten hierboven zijn simpelweg degene die tegen ons als eerste logen.

backtestingkostenfundingmarket impacteerlijkheid
← Alle artikelen