Thema
Taal
backtestcrypto backtestbacktest trading strategyno codingfree backtestbacktesting toolwin rateprofit factorsandboxfomoed

Backtest elke handelsstrategie in 60 seconden (zonder code, 2026)

Backtest elke handelsstrategie in 60 seconden (zonder code, 2026)
Door fomoed17 mei 202612 min leestijd

Laatst bijgewerkt: mei 2026. Alle hier beschreven metrics zijn echte velden uit de fomoed sandbox-engine. Backtest-resultaten zijn educatief — resultaten uit het verleden zijn geen garantie voor de toekomst.

Het verschil tussen het gevoel dat je strategie werkt en weten dat hij werkt is één getal: hoe hij zou hebben gepresteerd op de echte candles van de afgelopen jaren, inclusief de regimes waarin je niet handelde. Dat is een backtest. Eerlijk uitgevoerd is het de nuttigste oefening die een discretionaire trader kan doen voordat hij automatiseert. Slecht uitgevoerd is het een verkooppraatje dat je voor jezelf hebt geschreven — elke parameter zo lang getuned tot de curve er prachtig uitziet, waarna echt geld ontdekt wat je vergat te modelleren.

De traditionele weg naar een backtest zag er zo uit: Python schrijven, historische OHLCV uit een exchange-API trekken, indicators zelf berekenen, slippage simuleren, fees verrekenen, omgaan met partial fills, analytics schrijven, equity curve plotten. De meeste traders haken al af bij stap één. De enkelingen die bij stap zeven aankomen, eindigen met een backtest-engine die subtiel afwijkt van het live trading-platform waarop ze uiteindelijk gaan deployen — en dat gat eet ze op in productie.

De fomoed sandbox haalt de hele stack weg. Kies een pair, kies een strategie-template, kies een datumbereik, druk op Run. Drie jaar historische candles op elk ondersteund pair, echte exchange-specifieke fee-aannames, hetzelfde engine-code-pad als de live bots, resultaten binnen een minuut. Geen Python, geen API-keys, geen Jupyter, geen spreadsheet. Deze post loopt de workflow van begin tot eind door en — belangrijker — behandelt de vijf valkuilen die een prachtige backtest in een echt verlies veranderen.

60s
Eerste resultaat
6
Timeframes
3j
Historie
$0
Kosten

Sla de uitleg over — draai nu een backtest

Gratis account, geen creditcard, geen Python. Kies een pair, kies een strategie, druk op Run. Eerste resultaat in ongeveer een minuut.

Open de sandbox →

Wat kun je backtesten in de sandbox

De sandbox-engine ondersteunt vandaag vier strategieklassen, elk met een eigen configuratie:

Indicator-gebaseerde custom strategieën

RSI mean-reversion, EMA crossovers, MACD-confluence, Bollinger Band squeezes, VWAP fades, multi-indicator setups. Twaalf indicators zijn beschikbaar (RSI, EMA, SMA, MACD, ATR, ROC, Bollinger, VWAP, Williams %R, Stochastic, OBV, ADX) en elke combinatie kan dienen als entry-trigger of filter. De engine handelt dynamische params af — band-width vergelijkingen, lookback-windows, "cross van boven/beneden"-condities — zodat je niet zelf met de wiskunde aan de slag hoeft.

DCA- & grid-bots

Dollar-cost averaging met optionele safety-order-ladders, take-profit op de geaggregeerde positie en configureerbare triggercondities. Grid-bots laddert koop- en verkooporders over een gedefinieerd bereik met TP per cel. Beide draaien in dezelfde engine als de live-versies — de sandbox is geen ander code-pad, het is dezelfde trader.execute()-loop, alleen gevoed met historische candles in plaats van een live feed.

Smart Money Concepts (SMC)

CHoCH (change of character), BoS (break of structure), order blocks, fair value gaps, Fibonacci-retracements (inclusief de 0.618-0.79 OTE-zone) en liquidity sweeps. Zeven primitives, allemaal algoritmisch gedetecteerd — de sandbox laat je exact de pivots zien die de live-engine real-time zou hebben gemarkeerd. Zie onze SMC-pillar guide voor de wiskunde.

AI Trading Agent-strategieën

Als je de strategie in twee tot vier zinnen helder Engels kunt beschrijven, genereert fomoed's AI-trading-agent een Python-script dat in diezelfde sandbox draait. Het script kan combineren met de indicator- en SMC-primitives, maar geen eigen primitives uitvinden. Handig voor "buy wanneer RSI<30 EN price>200EMA, exit op +3% of RSI>70" — typ het één keer, de AI regelt de bedrading. Zie de AI Trading Agent-pillar voor de architectuur.

Hoe je in 60 seconden een backtest draait

De end-to-end flow telt zes kliks, waarvan twee optioneel. De getallen tussen haakjes zijn realistische wall-clock-seconden voor een eerste gebruiker.

  1. Open de sandbox (5s). Schrijf je gratis in als je dat nog niet hebt gedaan — e-mail of wallet, geen KYC, geen creditcard. Klik op Sandbox in de dashboard-sidebar.
  2. Kies de markt (10s). Exchange (Hyperliquid / Binance / Bybit / OKX / Decibel / AsterDex / GRVT / Extended / StandX), symbol (bv. BTC/USDC:USDC), timeframe (1m / 5m / 15m / 30m / 1h / 4h).
  3. Kies het datumbereik (5s). Standaard staat de afgelopen 30 dagen ingesteld. Klik op de datumpickers om uit te breiden; de sandbox dekt tot drie jaar historie per ondersteund pair.
  4. Configureer de strategie (20s). Kies een preset (RSI / Custom / DCA / Grid / SMC / AI Trading Agent) of stel indicator-params handmatig in. De sandbox-UI spiegelt exact de live-bot-wizard — als je een live bot kunt configureren, kun je een backtest configureren.
  5. Klik op Run (15-90s). De meeste backtests zijn binnen 10-30 seconden klaar; lange 5-minute runs kunnen de eerste keer tot 90s duren (gecached bij volgende runs).
  6. Lees het resultaat (de volgende 10 minuten — zie hieronder).

Hoe je het resultaat eerlijk leest

Zes metrics doen ertoe. De eerste drie zijn vanity; de volgende drie zijn realiteit. Kijk naar alle zes — beslis nooit op basis van één enkele.

Win rate

Wat
Percentage gesloten trades dat met winst werd afgesloten (na fees).
Goed bij
Consistent boven 50% over meerdere regimes — dat is de bodem waar positieve expectancy leeft, mits je risk-to-reward fatsoenlijk is.
Pas op
Een hoge win rate (70%+) betekent vrijwel altijd minuscule take-profits en enorme stops — de gemiddelde winnaar is klein, de gemiddelde verliezer catastrofaal. Combineer met profit factor hieronder.

Profit factor

Wat
Bruto winst ÷ bruto verlies. Geeft aan hoeveel dollar je verdient voor elke dollar die je verliest.
Goed bij
Boven 1,3 — alles eronder en de strategie is in essentie break-even zodra je in echte trading slippage en fees meerekent.
Pas op
Profit factor > 3 over een korte periode is bijna altijd een teken van curve-fitting. Test over meerdere niet-overlappende ranges; als hij instort, heb je overgefit.

Max drawdown

Wat
Grootste peak-to-trough daling in de equity curve, in procenten. De omvang van de dip die je moet uitzitten vóór herstel.
Goed bij
Onder je persoonlijke pijngrens — doorgaans 15-25% voor retail-traders, veel lager voor kapitaalbeheerders.
Pas op
Een backtest met 8% max drawdown over 6 maanden verbergt vrijwel zeker een regime waar de drawdown 40%+ was. Kijk altijd naar het diepste dal op de equity-curve-plot, niet alleen naar het getal.

Sharpe ratio

Wat
Risico-gecorrigeerd rendement — hoeveel extra rendement per eenheid volatiliteit. Hoger is beter.
Goed bij
Boven 1,0 is degelijk; boven 2,0 is uitstekend; boven 3,0 is verdacht (of de tijdspanne is kort).
Pas op
Sharpe straft downside-volatiliteit niet specifiek af — een strategie met veel kleine winsten en zeldzame enorme verliezen kan een Sharpe > 1,5 laten zien, tot het moment dat hij ontploft.

Equity curve

Wat
Een lijngrafiek van je account-saldo gedurende de backtest. De meest informatieve visual in elk backtest-resultaat.
Goed bij
Redelijk glad, over het algemeen naar rechtsboven, met zichtbare maar herstelbare drawdowns. Bonuspunten als hij positief blijft tijdens bekende bear-markets in het bereik.
Pas op
Een trap met één grote sprong en daarna een vlak plateau betekent dat de strategie één keer werkte in één regime, en daarna nooit meer. Weggooien.

Trade log

Wat
Elke individuele trade met entry/exit-timestamps, P&L en de reden van de exit (TP / SL / trailing / tijd / tegenovergesteld signaal).
Goed bij
Trade-frequentie past bij je tolerantie — een strategie die 8 keer per dag vuurt vraagt aandacht of volledige automatisering; eentje die twee keer per week vuurt is set-and-forget-territorium.
Pas op
Als 80% van de winst uit de grootste 5% van de trades komt, leun je op het geluk dat je specifieke moves vangt. Kijk naar de mediaan-trade, niet naar het gemiddelde.

5 backtest-valkuilen (en hoe de sandbox ermee omgaat)

1. Overfitten op één regime

Je tunet de RSI-ondergrens van 35 naar 32 naar 28 tot de equity curve er prachtig uitziet. Gefeliciteerd — je hebt de parameterwaarden gevonden die werkten op dat specifieke stuk koersgeschiedenis. Run hem op een ander bereik en de winst verdampt. Hoe te vermijden: test dezelfde params altijd op minstens twee niet-overlappende ranges (bv. 2023-2024 EN 2024-2025). De sandbox maakt dit triviaal — dupliceer de config, wijzig het datumbereik, vergelijk resultaten. Als de metrics uit elkaar vallen, heb je overgefit.

2. Doen alsof fees niet bestaan

Een scalping-strategie die 30 keer per dag vuurt tegen 0,1% per fill verbrandt in zijn eentje 6% per dag aan fees. De sandbox past echte taker-tarieven per exchange toe (Hyperliquid 0,045%, Binance 0,05%, Bybit 0,055%, enz.) bij elke fill. Test je een high-frequency strategie en houdt het resultaat geen rekening met fees, dan staar je naar fictie. De profit factor en netto PnL van de sandbox zijn na fees. Verifieer: check de trade log; fees per trade horen als kleine drag op elke entry/exit te verschijnen.

3. Aannemen dat orders direct vullen

In live trading vult je order niet exact op de prijs die je wilde — er is slippage, zeker bij grotere sizes of dunnere pairs. Een naïeve backtest vult op de open van de volgende bar, wat optimistisch is. De sandbox hanteert een conservatief fill-model: market orders vullen op de open-prijs van de bar plus een configureerbare slippage-tolerantie (default 0,05%); take-profits vullen wanneer de high van de bar het TP-level raakt (of op close, afhankelijk van de "touch vs close"-toggle); stop losses vullen op de SL-prijs zodra die intrabar getriggerd wordt. Verifieer: verscherp de slippage-tolerantie en run opnieuw; als het resultaat instort, hangt je strategie af van perfecte fills.

4. Look-ahead bias

Deze is sluw. Als je strategie de close van de huidige candle gebruikt om te beslissen op diezelfde candle in te stappen, dan vals je — in real time was die candle nog niet gesloten toen de beslissing viel. De sandbox dwingt causaliteit af: bij bar N ziet de engine alleen OHLCV van bars 0 t/m N-1. Indicator-waarden die gebruikt worden bij de open van bar N zijn berekend op basis van de voorgaande N-1 bars. Beschrijf je een strategie die de "close van de huidige candle" wil lezen, dan gebruikt de sandbox de close van de vorige bar als surrogaat. Verifieer: een strategie die "de prijs heroverde de EMA op deze bar" leest, moet je herformuleren als "de vorige bar heroverde de EMA."

5. Blindheid voor regime-veranderingen

Crypto-trends zien er in verschillende regimes anders uit — accumulatie, markup, distributie, markdown. Een strategie die geld print tijdens een markup-fase bloedt vaak leeg tijdens distributie. Het standaard 3-jarige sandbox-venster dekt minstens één volledige cyclus inclusief een betekenisvolle drawdown, maar je moet het bereik expliciet in stukken hakken en elk sub-periode controleren. Verifieer: run dezelfde config drie keer — 2023, 2024, 2025 — en kijk per jaar onafhankelijk naar de metrics. Als 2024 het hele resultaat draagt, gok je erop dat 2024 zich herhaalt.

Hoe de sandbox van fomoed eerlijk blijft

De sandbox-engine draait exact dezelfde Python-code als de live bot — geen parallelle implementatie. Indicator-wiskunde, signaal-evaluatie, position sizing, fee-aftrek, TP/SL fill-rules, trail-stop-tracking: alles single-source-of-truth. Als je een gebacktestte strategie promoveert naar een live bot, verandert alleen welke candle-stream de engine leest — historische parquet vs live exchange WS — elke andere byte logica is identiek.

Dit is belangrijk omdat de meeste off-the-shelf backtesting-tools een ander code-pad zijn dan het live executie-platform waarop je uiteindelijk deployt. Ze simuleren "goed genoeg"-logica met aannames die subtiel afwijken — en dat gat vreet stilletjes aan je edge zodra echte fills in beeld komen. De sandbox elimineert dat gat by design.

De engine publiceert ook openlijk zijn result-schema: metrics (win rate, profit factor, max drawdown, Sharpe, bruto/netto PnL, gem. winst/verlies, gem. holding-tijd), de volledige trade log met redenen, en de equity curve als time series. Geen verborgen "score"-veld dat alles aggregeert tot één enkel getal dat geoptimaliseerd is om er mooi uit te zien — elke metric is onafhankelijk verifieerbaar vanuit de trade log.

Veelgestelde vragen

Hoe lang duurt een backtest?

De meeste backtests zijn in 10-30 seconden klaar voor ranges onder een jaar. Lange 5-minute backtests over meerdere jaren kunnen de eerste keer tot 90 seconden duren — daarna raakt de OHLCV-cache en zijn re-runs 5-10× sneller.

Hoeveel historische data heb ik?

Drie jaar OHLCV per ondersteund pair over zes timeframes (1m, 5m, 15m, 30m, 1h, 4h). De cache wordt 's nachts ververst via cron; backtest je een vers gelist pair of eentje met dunne historie, dan vult de engine het gat tijdens de eerste run vanuit CCXT live en cached het voor toekomstige runs.

Zijn de resultaten deterministisch?

Ja — zelfde config + zelfde datumbereik = zelfde resultaat. De engine heeft geen verborgen randomness; zelfs slippage wordt deterministisch toegepast tegen de open/high/low/close van de candle. Dat betekent dat je twee configs één-op-één kunt vergelijken door ze beide tegen hetzelfde bereik te runnen.

Kan ik de trade log exporteren?

Ja — elk backtest-resultaat bevat een downloadbare CSV met elke individuele trade (entry/exit-timestamps en -prijzen, position size, fee, P&L, exit-reden). Handig als je je eigen analytics in een spreadsheet of pandas-notebook wilt doen.

Modelleert de backtest funding rates?

Voor perpetual contracts wel — de engine past de gerealiseerde 8-uurs funding rate toe op elke funding-window tijdens een open positie. Funding rates worden uit de historische data van de exchange gehaald wanneer beschikbaar; voor de zeldzame gevallen waar dat niet zo is, hanteert de engine een conservatieve zero-funding-aanname.

Wat is het verschil tussen "touch" en "close" voor take-profit?

Touch betekent dat de TP vult op het moment dat de high van de bar de TP-prijs intrabar bereikt. Close betekent dat hij alleen vult als de bar op of boven de TP sluit. Touch is optimistischer (komt overeen met market-order-gedrag in een snelle move); close is conservatiever (komt overeen met limit-order-gedrag, of als intrabar liquiditeit dun is). De sandbox laat je dit per TP kiezen.

Moet ik een backtest met 90% win rate vertrouwen?

Nee. Win rate alleen is bijna nooit de juiste metric om te maximaliseren — combineer met profit factor, max drawdown en de equity curve. Een win rate van 90% met een profit factor van 0,7 betekent dat je klein wint en groot verliest; je gaat langzaam failliet. Een win rate van 45% met een profit factor van 2,5 betekent dat je meer wint dan je verliest; dat is meestal de betere strategie.

Stop met gokken — backtest je idee

Je hebt niet voor niets tot hier doorgelezen. De sandbox is gratis, geen Python vereist, drie jaar historische data op elk ondersteund pair.

Gratis starten →

Gerelateerde resources