← Blog
Platforma 6. 7. 2026

Backtest, který se chová jako živý trh

Na každý backtester se sluší položit dvě otázky. Za prvé: jak věrně napodobuje burzu? A za druhé: co se ztratí, když strategii přenesete z testu do produkce? Většina nástrojů neobstojí ani u jedné — testují zjednodušený svět a do živého provozu se strategie stejně musí přepsat. Náš engine jsme stavěli tak, aby odpovědi zněly: věrně až na úroveň jednotlivých ticků — a neztratí se vůbec nic.

Dvě rodiny backtesterů

Většina rychlých testerů pracuje vektorově: vezme celou historii jako tabulku, spočítá signály naráz a pronásobí je výnosy. Je to rychlé a pro hrubý průzkum užitečné — ale není to obchodování. Neexistují v něm ordery, fronty ani poplatky, a protože vzorce vidí celou tabulku najednou, stačí drobná chyba a strategie si tiše „půjčí" informaci z budoucnosti.

Druhá rodina — event-driven — simuluje trh tak, jak skutečně plyne: událost po události. Přijde svíčka, strategie na ni zareaguje, odešle order, ten putuje exekucí, vrátí se potvrzení o plnění, strategie se dozví výsledek — a teprve pak přijde další událost. Strategie v každém okamžiku ví jen to, co by věděla naživo. Náš engine patří do této rodiny — říkáme tomu real-time like: simulace, která se od živého provozu liší jediným detailem — zdrojem událostí. Event-driven, přesná, rychlá a škálovatelná.

Zero-delta: jeden kód od testu k burze

Nejdražší chyby nevznikají v testech, ale mezi testem a produkcí — když se „ověřená" strategie přepisuje pro živé nasazení a do překladu se vloudí rozdíl. Proto je celý engine navržený kolem jednoduché zásady: strategie je jeden soubor a existuje jen jednou. V backtestu ji krmí historické události, naživo burzovní feed — ale kód strategie, cesta orderu i logika exekuce jsou identické. Žádná druhá verze, žádný přepis, žádné translation bugs.

Prakticky to znamená: strategii otestujete na letech historie, projde walk-forwardemMonte Carlo zkouškou — a pak stejný soubor jedním kliknutím nasadíte na kteroukoliv z deseti integrovaných burz a brokerů. Akcie, futures, forex, krypto i predikční trhy, na jedné equity křivce.

JEDEN KÓD — DVĚ PROSTŘEDÍ BACKTEST HISTORICKÁ DATA SIMULOVANÁ BURZA MATCHING · FRONTA POPLATKY · LATENCE PRODUKCE ŽIVÝ FEED BURZY SKUTEČNÁ BURZA STEJNÉ ORDERY REÁLNÁ PLNĚNÍ STRATEGIE JEDEN KÓD UDÁLOSTI ORDERY · FILLY UDÁLOSTI ORDERY · FILLY BT ⇄ LIVE — JEDNO KLIKNUTÍ ROZHRANÍ, CESTA ORDERU I LOGIKA JSOU NA OBOU STRANÁCH IDENTICKÉ — LIŠÍ SE JEN ZDROJ UDÁLOSTÍ.
Stejný soubor, stejné rozhraní na obou stranách. Jediný rozdíl: vlevo přicházejí události ze záznamu, vpravo z burzy.

Burza uvnitř simulace

Věrnost se rozhoduje v detailech exekuce. Tady jsou ty, na kterých si zakládáme:

  • Tick po ticku, ne „někde ve svíčce". Pro rychlá ověření se každá svíčka rozkládá na deterministickou sekvenci cenových kroků (open → high → low → close) a ordery se plní na konkrétním kroku. Pro přesné testy jde engine ještě dál: pracuje přímo nad tikovými daty — jednotlivými obchody a kotacemi tak, jak na burze skutečně padaly.
  • Orderbook ve třech úrovních detailu. Od nejlepší nabídky a poptávky až po plnou hloubku knihy s jednotlivými ordery — podle toho, jak detailní data pro daný trh máme. Připraveno i pro objemy institucionálních obchodů, kde o výsledku rozhoduje hloubka likvidity.
  • Fronta na plnění. Limitní order se nenaplní jen proto, že se ho cena dotkla — před vámi v knize stojí jiní. Simulace s tím počítá pravděpodobnostním modelem plnění a skluzu; a protože má vlastní seed, každý běh jde přesně zopakovat.
  • Poplatky a částečná plnění. Maker/taker sazby podle instrumentu, plnění po částech podle dostupné likvidity — tak, jak to dělá burza.
  • Latence. Order necestuje nulový čas. Simulovat zpoždění mezi rozhodnutím a burzou znamená, že vás produkce nepřekvapí.
  • Devět typů orderů + vázané ordery. Market, limit, stop-market, stop-limit, market-to-limit, market-if-touched, limit-if-touched a trailing varianty — plus svázané konstrukce typu OCO (one-cancels-other). Strategie v testu pracuje se stejným arzenálem jako naživo.

Přesnost do posledního desetinného místa

Ceny, množství i peníze drží engine v pevné přesnosti (fixed-point aritmetika) — ne v plovoucí čárce, kde se drobné zaokrouhlovací chyby tiše sčítají přes miliony operací. Když backtest projede deset let dat, poslední desetinné místo equity je stejně důvěryhodné jako první. K tomu každý order prochází nezávislou risk vrstvou — kontroly před odesláním, limity pozic — v testu i naživo, opět tou samou cestou.

Rychlost a škála: tisíce testů na jednu strategii

Výkonové jádro enginu je napsané v Rustu — kompilovaném jazyce pro systémy, kde se počítá každá mikrosekunda (najdete ho i v našem stacku). Jednotlivý backtest nad roky dat je otázka sekund, a protože testy běží paralelně, můžeme si dovolit to, co dělá testování skutečně vypovídajícím — množství:

  1. Genetická optimalizace prožene stovky kandidátů parametrů,
  2. walk-forward každého přeživšího prověří v desítkách rolujících oken,
  3. Monte Carlo přidá stovky běhů na zašuměných datech.

Jedna strategie tak projde tisíci backtesty, než se vůbec začneme bavit o produkci. Bez rychlého enginu by taková disciplína nebyla praktická — s ním je to standard.

Proč na tom trváme

Každé zjednodušení v simulaci je rozdíl mezi testem a realitou — a každý takový rozdíl je skrytá položka, kterou vám živý trh jednou vyúčtuje. Skluz, který test neviděl. Poplatek, který nikdo nezapočítal. Limitka, která se „v testu vždycky naplnila". Věrná simulace je levnější než první měsíc naživo s přeceněnou strategií. A když k věrné exekuci přidáte obranu proti přeoptimalizaci, walk-forward disciplínu a Monte Carlo distribuce, dostanete přesně to, co náš engine je: testovací filozofii postavenou na tom, že trh se nedá ošidit — tak ho ani nešidíme v testu.

Čtení Navazující články z naší testovací série: Walk-forward analýza · Přeoptimalizace · Černé labutě a Fat Tony · Monte Carlo.

Chcete svou strategii otestovat na enginu, který se chová jako burza? Kontaktujte nás →