Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Archiv článků Psychologie obchodování Jak na obchodní plán Mé obchodní strategie
  • WalkForward analýza podrobněji

    V minulém článku jsem se zmínil o WalkForward analýze, kterou považuji za naprosto nezbytný, ba zcela základní prvek při testování strategií. Obvyklé užití je častější při stavbě mechanických strategiích, ale využít se dá také při hledání nejvhodnějších trhů k obchodování, stejně tak i k diskréčnímu obchodování. Pojďme si tedy dnes o WFA (WalkForward Analýza) říci dnes ještě něco trochu více.

    WalkForward analýza je něco, co je kriticky důležité a co také většina traderů poměrně často ignoruje. Fungovat bez kvalitní WFA je jako naskočit do automobilu, u kterého nikdy nikdo neotestoval brzdy. Ignorace WFA je jeden z nejčastějších důvodů, proč tradeři pouští do trhů přeoptimalizované obchodní systémy a záhy se podivují, že jenom krátce po nasazení přestává strategie fungovat.

    Obvyklá WalkForward Analýza

    Hrstka traderů, kteří se chovají zodpovědněji, již WFA používá, avšak ve zcela základní, dle mého názoru velmi nedostatečné podobě.

    Co vlastně "obvyklá" WFA analýza je? Nejedná se o nic magického, ani komplikovaného. Zkrátka a dobře vezmeme data, na kterých se chystáme backtestovat a rozdělíme si je na dvě části. Ta větší část, obvykle prvních 70-80% dat, na kterých se chystáme backtestovat a optimalizovat, se nazývá IN-SAMPLE (IS). Na této části provedeme základní backtest a vyhledáme (optimalizujeme) parametry, se kterými se zdá systém jako nejzajímavější - nejenom z pohledu profitability, ale také z pohledu stability equity křivky. Po té vezmeme vybrané parametry a otestujeme s nimi 20-30% zbylých dat, na kterých jsme neprovedli primární backtest a tudíž ani žádnou optimalizaci parametrů. Zbylá data se nazývají Out-Of-Sample (OOS) a předpoklad je zde velmi jednoduchý: na zbylých datech by se měl systém chovat stejně, nebo alespoň velmi podobně, jako na IS datech, na kterých jsme systém optimalizovali. Pokud tomu tak není, jsou parametry systému přeoptimalizované a životnost v budoucnu je velmi nepravděpodobná.

    Proces obvyklé (základní) WFA můžeme v grafické podobě načrtnout zhruba takto:

    WFA může využít i intradenní obchodník, například při hledání ideálních parametrů MAE/MFE, nebo-li ideálních parametrů pro nastavení SL a PT. Princip je zde stejný, tj. následující:

    1. Nasbíráme vzorek dostatečného množství obchodů na IS datech.

    2. Vyhodnotíme, jaké SL a PT se zdají na IS datech jako nejoptimálnější.

    3. S takto vybranými optimálními SL a PT otestujeme systém na zbylých OOS datech.

    4. Pokud dosáhneme diametrálně jiných výsledků na OOS datech, jsou hodnoty značně přeoptimalizované a nerealistické k budoucímu použití.

    I když je obvyklá WFA alespoň nějaký základ, osobně jí stále považuji za nedostatečnou k opravdu robustnímu posouzení systému. Pro robustnější posouzení osobně volím Plovoucí WFA, nebo Ukotvenou WFA, ideálně pak Konkurenční WFA.

    "Plovoucí" WalkForward Analýza

    Existuje řada způsobů, jak konkrétně uchopit Plovoucí WFA, princip je však ve všech případech stejný: jedná se vlastně o sérii Obvyklých WFA, avšak s rozdílem, že pracujeme s větším množstvím historických dat, na kterých testujeme v určitých "rámcích", nebo také "posunech".

    Řekněme, že například máme k dispozici 6 let dat nazpět, tj. velmi slušný vzorek dat. Rozhodneme se provést Plovoucí WFA v celkem 4 rámcích.

    V tom případě se tedy rozhodneme testovat každý vzorek na 3 letech (2 roky IS, 1 rok OS), s tím, že v každém dalším následujícím testu (rámci/posunu) posuneme začátek dat o 1 rok dále. V prvním rámci tedy použijeme k testování rok 1-3 (první 2 roky pro IS, třetí rok pro OOS), v druhém rámci použijeme k testování rok 2-4 (rok 2-3 pro IS, rok 4 pro OOS), atd. Celkově se dá proces Plovoucí WFA zobrazit následovně:

    Jak pak s pomocí Plovoucí WFA určit, zda-li je systém opravdu robustní? Existuje celá řada přístupů, jeden z nich jsem již popsal v minulém článku. Ideální přístup může vypadat tak, že v každém ze 4 rámců provedeme IS backtest, optimalizuje v rámci daného IS, nasadíme optimalizované hodnoty na OOS daného rámce a ověříme si, že parametry nadále fungují. Takto provedeme optimalizaci u všech 4 rámců. Na závěr uděláme hodnocení. Naprosto ideální a robustní systém z pohledu Plovoucí FWA by vypadal následovně:

    1) na všech čtyřech rámcích zafungují optimalizované hodnoty i na OOS. Tj. optimalizované hodnoty na datech IS v prvním rámci zafungují dobře i na OOS datech v prvním rámci, optimalizované hodnoty na datech IS ve druhém rámci zafungují dobře i na OOS datech ve druhém rámci, atd.

    2) Optimální hodnoty všech 4 rámců si jsou velmi blízké. Pokud například takto testujeme ideální profit-target, pak ideální hodnota ze 4 rámců může vypadat následovně: rámec 1: = 300 USD (potvrzeno jako funkční na OOS), rámec 2: = 320 USD (potvrzeno jako funkční na OOS), rámec 3: = 290 USD (potvrzeno jako funkční na OOS), rámec 4: = 330 USD (potvrzeno jako funkční na OOS). Tyto hodnoty jsou si velmi blízké a s jistotou pak můžeme říci, že pokud vybereme hodnotu finálního PT o velikosti 300 USD, měla by být takováto hodnota dle Plovoucí WFA skutečně robustní. Finálně vybranou hodnotu pak samozřejmě otestujeme na celém vzorku určeném k backtestu (tj. na vzorku celých 6 let). Nic méně, už v tento moment můžeme říci, že jsme udělali proti možné přeoptimalizaci mnohem více, než většina traderů.

    "Ukotvená" WalkForward Analýza

    Ukotvená WFA je prakticky totožná s Plovoucí WFA, pouze s tím rozdílem, že u každého z rámců neposouváme začátek testování, ale u všech rámců začínáme testovat ze stejného bodu. Pouze měníme délku testovaných dat a hledáme optimální parametry pro danou délku, s následnou kontrolou na OOS.

    Jednoduše to tedy znamená, že bychom například v rámci prvního rámce testovali na prvních dvou letech IS, s kontrolou zvolených parametrů v rámci třetího roku jakožto OOS, v rámci druhého rámce bychom testovali na prvních třech letech IS, s kontrolou zvolených parametrů v rámci čtrvtého roku jakožto OOS, atd.

    Nedá se jednoznačně říci, zda je lepší Plovoucí WFA, nebo Ukotvená WFA. Spíše zde záleží na preferenci a vkusu každého jedince - oba přístupy vám udělají stejně dobrou službu.

    "Konkurenční" WalkForward optimalizace

    Poslední, zcela nejefektivnější způsob, se nazývá Konkurenční WFA. Jedná se v podstatě o kombinaci Plovoucí nebo Ukotvené WFA s běžnou WFA.

    Nejprve buďto na Plovoucí, nebo Ukotvené WFA provedeme analýzu, jejíž výsledkem budou 4 různé možnosti z pohledu užitých parametrů (samozřejmě předpokladem je, že každý ze 4 rámců úspěšně projde s optimalizovanými hodnotami na OOS datech). Tím pádem máme tedy 4 možná konkurenční nastavení.

    Následně každou z těchto 4 variant podrobíme testování na 70-80% veškerých dat, tj. v našem případě na prvních 70-80% z 6ti let. Následně vybereme nejlepší variantu a tu podrobíme OOS testu na zbylých 20-30% dat. Pokud je OOS test úspěšný, s vysokou pravděpodobností máme velmi robustní systém, s velmi robustními nastaveními.

    Závěrem

    WFA analýza, obzvláště v komplexnější podobě, je pracná a časově náročná, navíc často vede k nekompromisnímu vyřazení potenciálně zajímavých systémů jenom proto, že zkrátka a dobře WFA není ve všech bodech úspěšná. Nic méně, je to také jediný přístup, který znám, jak se dopracovat ke skutečně robustně vypadajícímu systému, který nezačne hned po aplikaci do živých trhů prodělávat z důvodů přílišné optimalizace. Pro mě osobně je to postup, který mě dává opravdu velkou sebedůvěru a jistotu nasadit systém do živých trhů. Jak jsem psal na začátku - jenom blázen by usednul do automobilu, který nemá pořádně odzkoušené brzdy.

    6.6.2010

    Tomáš Nesnídal


    Sdílíme, co nám samotným funguje.
    7 výukových lekcí.

    Jak reálně uspět v tradingu?

    Naučte se vydělávat na své sny (naše metody na Finančník.cz)

    Praktický návod, jak v trzích získat šanci vydělávat stovky tisíc až miliony dolarů ročně bez vlastního kapitálu a nutností trávit denně hodiny před počítači (bez práce to ale nepůjde).

    >> Získat kurz zdarma <<
×
×
  • Vytvořit...