Je hebt net je BTC-perpetualstrategie opnieuw gedraaid en de netto-Sharpe is met een derde gedaald. De signalen zijn identiek. De fills zijn identiek. Je hebt één ding veranderd: je feeschema gebruikt nu het voortschrijdende volume van de afgelopen 30 dagen op je account, en het account begint de test onder de tier die je in productie hebt bereikt.
Voordat je het signaal herschrijft, moet je twee vragen uit elkaar houden: wat zou deze strategie bij een vast tarief hebben betaald, en welk tarief zou dit account op elk moment daadwerkelijk hebben gehad? Dat zijn verschillende experimenten. Als je ze door elkaar haalt, kan een strategie er beter uitzien omdat ze genoeg handelt om korting te krijgen, waarna je die korting behandelt alsof die gratis was.
Begin bij het feeschema, niet bij één tarief
Op de meeste fee-pagina’s van exchanges staat een tabel: maker- en takertarieven per volumetier, soms met aparte regels voor spot en derivaten. Je backtest heeft het effectieve schema nodig en de regel waarmee een tier wordt toegekend. Wordt het volume over 30 dagen gemeten? Per kalendermaand? Telt de exchange spot en futures bij elkaar op? Wordt korting op basis van je tokensaldo gecombineerd met de volumetier?
Leg die regels vast als gedateerde invoer. Neem voor een vereenvoudigd voorbeeld aan dat een handelsplatform het tarief voor de volgende dag bepaalt op basis van het futuresvolume dat in de afgelopen 30 dagen is uitgevoerd:
| Voortschrijdend volume over 30 dagen | Maker-fee | Taker-fee |
|---|---|---|
| Minder dan $1 million | 0.020% | 0.050% |
| $1 million tot $10 million | 0.016% | 0.040% |
| Meer dan $10 million | 0.012% | 0.035% |
De cijfers zijn illustratief; feeschema’s en toelatingsregels van exchanges veranderen. Het belangrijkste detail is de timing: de fills van gisteren kunnen het tarief van morgen beïnvloeden, maar de fills van vandaag kunnen niet met terugwerkende kracht korting voor vandaag opleveren.
Je backtestaccount heeft een volumegeschiedenis nodig
Stel dat je strategie dagelijks $80,000 omzet, allemaal taker. Bij de instaptier kost een round trip van $100,000 ongeveer $50: $100,000 aan verhandelde notional voor de entry en exit, vermenigvuldigd met 0.050%. Bij de middentier kost die $40. Dat verschil van tien dollar lijkt klein, totdat je de round trip 800 keer maakt. Dan is het $8,000 over de testperiode, en kan de fee tier veranderd zijn doordat diezelfde trades het volume hebben aangeleverd.
Die wisselwerking is reëel, maar leidt tot een valkuil in de modellering. Als je de strategie op de middentier laat beginnen omdat ze die tier aan het einde van de backtest had bereikt, heb je toekomstige accountactiviteit naar het verleden gelekt. Begin met een opgegeven voorafgaand volume, werk het voortschrijdende venster na elke in aanmerking komende fill bij en pas elke tierwijziging pas toe wanneer de regels van het handelsplatform dat voorschrijven.
Houd drie grootheden gescheiden: de verhandelde notional van de strategie, het accountvolume dat meetelt voor de tierberekening en de fee die op elke fill daadwerkelijk in rekening wordt gebracht. Die kunnen verschillen als het handelsplatform bepaalde producten uitsluit, bij bepaalde trades maar één zijde meetelt of korting geeft op basis van saldo’s die je niet hebt gemodelleerd.
Voer naast de accountbewuste test ook een test met een vast tarief uit
Je wilt twee resultaten. Draai eerst de volledige strategie opnieuw met één conservatief, vast takertarief. Zo zie je hoe gevoelig het idee is voor uitvoeringskosten, zonder dat de eigen omzet de spelregels verschuift. Voer daarna het accountbewuste schema uit met een gedocumenteerd beginsaldo en een volumegeschiedenis. Zo schat je het traject dat dit specifieke account volgens de opgegeven regels had kunnen volgen.
Vergelijk vervolgens de totale fees, omzet, netto-P&L en drawdown. Als alleen de accountbewuste run verbetert, kijk dan hoeveel daarvan kwam door een aannemelijke overgang naar een andere tier en hoeveel afhangt van de startgeschiedenis, volume over meerdere producten of een korting waarvoor je account mogelijk niet in aanmerking komt. Als beide runs hun voordeel verliezen, was de fee tier waarschijnlijk niet het kernprobleem.
Laat maker-fills ook niet automatisch het beste tarief krijgen terwijl je fillmodel stilzwijgend aanneemt dat elke passieve order werd geraakt. Je feeschema kan exact zijn, terwijl je aannames over fills niet met de werkelijkheid overeenkomen. Houd die controles gescheiden.
Zorg dat het resultaat reproduceerbaar is
Bewaar de versie van het schema, de terugkijkperiode voor de tier, het moment waarop die wordt gereset, de in aanmerking komende producten en het startvolume bij de backtest. Neem een klein dagboek op: openingsvolume over de terugkijkperiode, toegevoegde fills, toegepaste tier en in rekening gebrachte fees. Als het resultaat verandert nadat een exchange de tarieven aanpast, weet je of de strategie, het accounttraject of de aannames zijn veranderd.
Je probeert een beperkte, nuttige vraag te beantwoorden: wat betaalde deze strategie onder een feeschema en accountgeschiedenis die je daadwerkelijk kunt beschrijven? Als je de tier op een bepaalde dag niet kunt reconstrueren, weet je nog niet wat het nettoresultaat van je backtest betekent.
← Alle artikelen


