Simulatie en onderzoek
Crypto bot backtests: winstpercentage is niet het nettresultaat
Werk twee fictieve 100‑trades voorbeelden uit, controleer daarna gemiddelde winsten en verliezen, kosten, funding (financiering van termijncontracten) en open posities voordat u backtestresultaten vergelijkt.
In dit artikel
Een winstpercentage van 80% kan samengaan met een verliesgevende backtest van een cryptobot. De ontbrekende informatie is hoeveel elke winst en elk verlies bijdraagt en wat het gerapporteerde totaal omvat. Begin met een boekhoudkundige controle voordat u strategieën vergelijkt.
Coinbase Engineerings evaluatie van de fraude‑agent van 7 oktober biedt een passend parallel: aanvullende metrics leggen compromissen bloot die een kopscore kan verbergen. Fraudetectie is geen trading, en Citrine gebruikt die agent niet. De nuttige les is te onderzoeken wat een maatregel weglaat.
De noemer definiëren
Hier betekent winstpercentage het aantal winstgevende gesloten transacties gedeeld door alle gesloten transacties: winsten, verliezen en transacties met nulresultaat. In dit voorbeeld zijn er geen transacties met nulresultaat. Controleer elders of transacties met nulresultaat zijn uitgesloten en of 'winnend' voor of na kosten wordt gemeten. Open transacties, afgewezen orders en signalen zijn geen gesloten transacties; het tellen ervan beantwoordt een andere vraag.
Twee strategieën, elk 100 gesloten trades
Dit zijn fictieve rekenvoorbeelden, geen prestaties van Citrine of klanten en geen aanbeveling. Beide strategieën hebben 100 gesloten transacties. Ga uit van gelijke positiegroottes gedurende beide strategieën, geen herbelegging van de winst en nog geen kosten.
- Strategie A: 80 winst × +$5
- +$400
- Strategie A: 20 verlies × -$25
- -$500
- Strategie A: totaal vóór kosten
- -$100
- Strategie B: 40 winst × +$20
- +$800
- Strategie B: 60 verlies × -$10
- -$600
- Strategie B: totaal vóór kosten
- +$200
A wint 80/100 = 80%; B wint 40/100 = 40%. A's gemiddelde winst is $5 en gemiddelde verliesgrootte $25; bij B zijn dat $20 en $10. Over alle gesloten trades gemiddeld verdient A -$1 per trade en B +$2 vóór kosten. Frequentie vervangt grootte niet. Geen enkel voorbeeld voorspelt toekomstige resultaten.
Kosten en financiering reconciliëren
Om een totaal vóór kosten te reconciliëren, trek entry- en exitkosten en financieringsdebiteringen af, tel financieringskredieten op en houd rekening met slippage als die nog niet in de prijzen is verwerkt. Trek geen kosten twee keer af. Een label "netto" is onvoldoende: controleer welke kosten en financieringsevents het omvat. Ontbrekende financieringsdata zijn geen geverifieerde nul.
Gesloten trades zijn niet de volledige run
Een totaal van gesloten trades sluit niet‑gerealiseerde winst of verlies op posities die bij de cutoff nog open waren uit. De wijziging van het volledige run‑vermogen kan die blootstelling en financiering buiten gesloten trades omvatten. Vergelijk begin‑ en eindequity op dezelfde basis en scheid stortingen/opnames indien aanwezig. Vermeld of posities openbleven, gemarkeerd naar markt of geforceerd gesloten aan het einde.
Maak de vergelijking eerlijk
- Concentratie: controleer of een paar grote winsten, één product of één dag het resultaat domineren. Onderzoek ook verliesreeksen en drawdown (daling van piek naar dal).
- Steekproef en data: 100 trades uit één marktfase zijn geen 100 onafhankelijke bewijzen. Stem start/eindtijden, tijdzone en datadekking af.
- Sizing: houd beginkapitaal, hoeveelheden en allocatie vergelijkbaar. Verschillende sizing of compounding kan dollarverschillen verklaren zonder betere signalen.
- Selectie: neem ongunstige periodes en onaangeroerde testperiodes op. Herhaald afstemmen op dezelfde steekproef kan toeval bevoordelen.
Controleer de details
Citrine's publieke backtesting-gids benadrukt controleerbare gedetailleerde resultaten en exports. Gebruik die details om aannames te reconciliëren, niet om een koptekst als bewijs te behandelen. Ga verder met simulaties en kosten vergelijken, de productgids en de risicodisclosure.
