🧪Backtesting bez sebeklamu: Jak poctivě otestovat strategii a vyhnout se nejčastějším pastem
Backtesting bez sebeklamu: Jak poctivě otestovat strategii
Historický test strategie je jako zkouška před ostrým nasazením. Problém je, že většina obchodníků nevědomky „tahákem" – a pak se diví, proč živý obchod dopadne jinak než simulace. V tomto článku rozebereme šest hlavních pasti backtestingu a ukážeme, jak se jim vyhnout pomocí rigorózní metodiky.
---
1. Survivorship bias – přeživší lžou
Představ si, že testuješ strategii na akcích ze S&P 500 indexu dnes. Do dat automaticky zahrnuješ jen firmy, které přežily do současnosti. Firmy jako Enron, Lehman Brothers nebo Bed Bath & Beyond – všechny vyřazené z indexu – v tvém testu chybí.
Výsledek: Strategie vypadá lépe, než ve skutečnosti byla, protože pracuje jen s „vítězi".
Řešení: Používat tzv. point-in-time data – databázi, která zachycuje složení indexu k přesnému historickému datu, včetně firem, které byly tehdy součástí indexu a later zbankrotovaly nebo byly delisted.
---
2. Look-ahead bias – vědění z budoucnosti
Tato past je záludnější. Dochází k ní, když model při rozhodování v čase T používá informaci, která byla ve skutečnosti dostupná až v čase T+1 nebo později.
Příklady:
- Výsledky hospodaření (earnings) zveřejněné 15. února používáme k signálu k nákupu 1. února.
- Roční dividenda oznámená v Q4 je zahrnuta do signálu v Q3.
- Použití „uzavírací ceny dne" pro intradenní signál, který měl být vygenerován před uzávěrkou.
Výsledek: Simulovaná strategie „ví" věci, které reálný obchodník v dané chvíli vědět nemohl – výkonnost je fikce.
Řešení: Každý datový bod musí mít správně označené datum dostupnosti (reporting date), ne datum vzniku události.
---
3. Overfitting / curve-fitting – šití na míru mrtvým datům
Toto je pravděpodobně nejrozšířenější past. Mějme strategii s 12 parametry (délka průměru, pásmo RSI, stop-loss úroveň…). Pokud tyto parametry optimalizujeme na jediné sadě historických dat, strategie se „naučí" tato konkrétní data, včetně jejich náhodných výkyvů.
Analogie: Je to jako napsat test a pak ho dát studentovi, který si ho memoruje. Zvládne tento test perfektně – ale nedokáže odpovědět na žádné jiné otázky.
Jak overfitting poznáš:
| Příznak | Indikátor přeoptimalizace |
|---|---|
| Sharpe ratio > 3 v backtestu | Podezřelé – reálné strategie mají 0,5–1,5 |
| Maximální drawdown < 5 % | Téměř nemožné na delším horizontu |
| Počet parametrů >> počet obchodů | Příliš mnoho stupňů volnosti |
| Výkonnost klesá o >50 % v OOS testu | Silný signál overfittingu |
---
4. Ignorování poplatků a slippage
Brokerský poplatek 0,1 % na jednu stranu vypadá zanedbatelně. Ale strategie obchodující 200× ročně zaplatí 40 % z kapitálu jen na poplatcích (200 × 0,2 % round-trip).
Slippage je rozdíl mezi cenou v backtestu (typicky close/open) a cenou skutečně dosaženou při plnění příkazu – zejména u méně likvidních titulů nebo při velkých pozicích.
Ilustrativní příklad (čísla jsou pouze pro vzdělávací účely):
Strategie na portfoliu 100 000 Kč s obratem 300 % ročně:
- Poplatky: 300 000 Kč × 0,2 % = 600 Kč/rok (malý účet, relativně OK)
- Ale u institucionálního účtu 10 mil. Kč a stejného obratu: 60 000 Kč ročně – to je 0,6 % p.a. navíc, než backtest počítal
Pro shortování přistupuje ještě borrow cost (náklady na půjčení akcií), který backtesty téměř nikdy nezapočítávají.
---
5. Příliš malý vzorek
Strategie vygenerovala 23 obchodů za 2 roky a Sharpe je 1,8. Impressive? Statisticky: při 23 obchodech je konfidenční interval extrémně široký – výsledek může být čistá náhoda.
Základní pravidlo: Pro statisticky relevantní závěry potřebuješ minimálně 100–200 uzavřených obchodů a ideálně pokrytí více různých tržních režimů (bull, bear, konsolidace, vysoká/nízká volatilita).
Datový horizont a nejmělčí faktor: Test je jen tak hluboký, jak hluboká jsou data nejméně dostupného faktoru ve strategii. Pokud jeden z faktorů (např. sentiment data, alternative data) existuje jen od roku 2018, celý backtest je efektivně omezen na tento horizont – i když ceny akcií máš od roku 1990.
---
6. In-sample vs. out-of-sample: Train/Test split
Toto je klíčová metodická zásada každého seriózního backtestingu.
Train/Test split
Data rozdělíme na:
- In-sample (IS) / train set – na tomto vzorku parametry hledáme a optimalizujeme
- Out-of-sample (OOS) / test set – na tomto vzorku strategii pouze validujeme, bez jakékoli další optimalizace
Proč in-sample výsledky nadhodnocují?
Optimalizér vždy najde nastavení, které funguje na trénovacích datech. Část té „výkonnosti" je ale jen adaptace na náhodný šum v datech, ne na skutečnou tržní zákonitost. OOS test odhalí, kolik z výkonnosti je přenositelných do neznámých dat.
Praktické doporučení:
- Typický split: 70 % IS, 30 % OOS
- OOS musí být vždy chronologicky pozdější – ne náhodně vybrané
Walk-forward validace
Sofistikovanější přístup. Místo jednorázového splitu provádíme rolling optimalizaci:
[IS₁ → OOS₁] → [IS₂ → OOS₂] → [IS₃ → OOS₃] → ...
V každém okně optimalizujeme na IS datech a výsledky sbíráme jen z OOS okna. Výsledná křivka equity je složena výhradně z OOS segmentů – jde o nejpoctivější dostupný backtest.
Výhoda: Walk-forward odhalí, zda je strategie robustní vůči různým tržním podmínkám, nebo funguje jen v jednom konkrétním období.
---
Jak na to v QMA
QMA Strategy Lab na stránce /strategy byl navržen s ohledem na výše popsané pasti. Zde je, jak ho metodicky využít:
Označení ❌ Přeoptimalizovaná strategie:
Pokud algoritmus detekuje příznaky curve-fittingu – například příliš vysoký poměr parametrů k počtu obchodů, nebo výrazný propad výkonnosti při malé změně parametrů (tzv. parameter sensitivity) – strategie dostane v rozhraní viditelné označení ❌. Toto označení neznamená, že strategii nelze použít; signalizuje, že výsledky je třeba interpretovat s výraznou rezervou a že OOS validace je povinná.
In-sample vs. out-of-sample panel:
V sekci /strategy lze nastavit datový rozsah IS a OOS segmentu. Platforma automaticky zobrazí klíčové metriky (Sharpe, Max Drawdown, Win Rate) zvlášť pro každý segment, takže je okamžitě viditelné, jak moc výkonnost klesá při přechodu z IS do OOS.
Walk-forward engine:
Pro pokročilé uživatele je dostupný walk-forward modul, který automaticky provede rolling optimalizaci a sestaví OOS equity křivku. Výsledky jsou doprovázeny distribucí Sharpe ratií přes jednotlivá OOS okna – robustní strategie by měla mít konzistentní hodnoty bez extrémních odchylek.
Náklady a slippage:
Při definici strategie lze zadat brokerský poplatek (procentuální nebo fixní) a odhadovaný slippage v basis pointech. Platforma přepočítá výkonnost po nákladech – to je zásadní rozdíl oproti naivnímu backtestingu.
Datová hloubka a faktorová dostupnost:
Na stránce /stocks/[symbol] a v strategy labu je u každého faktoru zobrazena jeho datová dostupnost. Pokud strategie používá faktor dostupný jen od roku 2019, walk-forward test automaticky omezí horizont na toto datum.
Portfolio kontext:
Výsledky strategie lze propojit s /portfolio, kde je viditelné, jak by strategie ovlivnila celkovou expozici a korelaci s existujícími pozicemi.
---
Shrnutí: Checklist poctivého backtestingu
| Kontrola | Proč důležité |
|---|---|
| ✅ Point-in-time data | Eliminuje survivorship bias |
| ✅ Správné reporting dates | Eliminuje look-ahead bias |
| ✅ OOS / walk-forward validace | Odhalí overfitting |
| ✅ Poplatky + slippage v modelu | Realistická výkonnost |
| ✅ Min. 100+ obchodů | Statistická relevance |
| ✅ Pokrytí více tržních režimů | Robustnost strategie |
| ✅ Datový horizont = nejmělčí faktor | Konzistentní test |
| ✅ Parameter sensitivity analýza | Detekce curve-fittingu |
---
Upozornění
QMA je analytický a vzdělávací nástroj, ne investiční poradenství. Minulá výkonnost není zárukou budoucích výsledků. Veškerá investiční rozhodnutí děláš na vlastní odpovědnost.
Chceš vědět víc? Zeptej se QMA Research Assistanta
Research Assistant zná celou platformu a data. Když odpověď nenajde v QMA databázi, dohledá ji a vysvětlí ti ji lidskou řečí. Jde o analytický a vzdělávací nástroj, ne investiční poradenství.
Otevřít Research Assistant →Související články
Buy-and-hold, dividendy, swing trading nebo day trading? Každý styl má jiné nároky na čas, nervy i daně. Pomůžeme ti najít ten, který pasuje do tvého života.
5 minZisk se dá nakreslit, hotovost se skrýt nedá. Podívejte se, proč volný cash flow výnos odhalí kvalitu firmy lépe než P/E — a jak si ho spočítat za dvě minuty.
5 minJedno číslo skóre vypadá elegantně, ale klame. Když ho rozpitváš na pilíře, zjistíš, jestli je firma opravdu skvělá — nebo jen dobrá v jedné věci a slabá ve třech.
6 minJeden indikátor bliká zeleně a ruka už letí na tlačítko. Co kdyby ale ten samý obchod potvrzovaly tři nezávislé metody najednou? Datový pohled na to, proč shoda ukazatelů mění pravděpodobnostní obraz.
5 minUvidíš to naživo: QMA analyzuje 17 000+ akcií za tebe
Plný přístup k pětipilířové analýze, smart-money datům a screeneru napříč celým trhem. Bez závazku, kdykoli zrušíš.
QMA Brain – týdenní rekapitulace zdarma
Jednou týdně e-mail s popisnou rekapitulací. Odhlášení kdykoli.
7 dní Elite zdarma, bez karty
Účet se zakládá zdarma a bez platební karty. Po tu dobu má účet plný přístup Elite.
Založit účet zdarmaObsah vytvořen AI ve spolupráci s Jaroslavem Vojtáškem. Není to investiční doporučení. Autor může držet zmíněné akcie. Investice nesou riziko ztráty.
Provozovatel: Jaroslav Vojtášek, IČO 48783447.