Back-testovanie a optimalizácia

Počet čítaní: 1305
Vytlač do PDF


Toto je tretia kapitola z publikácie Tvorba a použitie automatizovaných obchodných stratégií. Prvá kapitola a druhá kapitola

Back-testovanie a optimalizácia stratégie, ktoré využívajú trhové dáta na vytvorenie a doladenie automatizovanej stratégie sú dva rozdielne procesy.

Back-testovanie

Ako sme už v krátkosti spomínali v predošlej kapitole, back-testovanie sa používa jednak ako nástroj pre vývoj stratégie a rovnako aj ako pomocný systém pri hodnotení výkonnosti systému akonáhle začneme obchodovať naživo.

Možnosť sledovať obchody, ktoré sú vygenerované našou stratégiou s využitím historických dát je nepostrádateľným nástrojom pri vývoji automatizovanej stratégie. Každý jeden obchod vygenerovaný počas určitého časového rozpätia je zobrazený v číselnej aj grafickej podobe.

Používanie back-testovania pri vývoji systému je v celku jednoduché – vývojár skontroluje každý obchod na grafe aby sa uistil, že spadá do systémového profilu. Ak sú evidentné odchýlky od jeho očakávaní, programátor môže následne použiť tieto informácie na modifikáciu kódu, ktoré tieto chyby eliminujú.

Back-testovanie môže byť takisto efektívne využité pri identifikácií potreby suplementárnych parametrov alebo iných filtrov stratégie, ktoré zlepšia jej výkonnosť.

Napríklad, obchodník by mohol zistiť, že počas doby historického testovania, 5% obchodov generuje 35% strát systému a že najväčšia strata, ktorá nastala počas doby testovania bola 2-krát väčšia ako najväčší zisk počas rovnakej doby. V takomto prípade, zavedenie odpovedajúceho stop-lossu pravdepodobne jednak zredukuje veľkosť priemernej straty a taktiež zníži drawdown systému na akceptovateľnú úroveň.

Naviac, testovanie môže takisto indikovať, že obchodovanie akciových indexov hodinu pred a po poludní je omnoho menej výnosné ako obchodovanie počas zvyšku dňa. V tomto prípade by mohlo byť užitočné zahrnúť do stratégie dodatočný kód, ktorý by zabránil obchodovaniu počas týchto periód.

Rozsah možností pre zlepšovanie systému s využívaním správneho back-testovania je limitovaný výhradne len predstavivosťou obchodníka/programátora. Samozrejme, nie všetky alternácie budú nevyhnutne znamenať zlepšenie systému. Testovanie systému po jeho úpravách nám uľahčí konečné rozhodovanie , či máme alebo nemáme takúto alternáciu aplikovať.

Optimalizácia

Využitie možnosti optimalizácie na doladenie vyvinutého systému v TradeStation môže byť zradné. Optimalizácia sa môže stať buď vašim najlepším priateľom, keď sa použije na správne doladenie systému alebo sa môže stať vašim úhlavným nepriateľom, ak ju použijete nevhodne, čo môže vyústiť do tvorby napasovaného (curve-fitted) systému, ktorý má v reálnom svete mizivú šancu na úspech.

Spustenie optimalizácie je v celku jednoduché. Okno, ktoré vidíme dole, sme otvorili cez Format Strategies – Inputs – Optimize.

Obrázok 8

Na obrázku č. 8, vstupný údaj do systému (input) „S1“ je nastavený pre testovanie všetkých hodnôt tohto vstupu od 5 do 25, s prírastkom 1.

Obrázok 9

Na obrázku 9 vidíme, že 2 separátne vstupné údaje sú optimalizované súbežne. V tomto prípade, všetky hodnoty obidvoch týchto vstupov sú testované od 5 do 25, s jednotkovým prírastkom. Všetky ostatné vstupy ostávajú pri tomto teste statické.

Aj keď je možné súbežne testovať všetky premenné vzťahujúce sa na systém na hocijakom rozpätí hodnôt, obchodík rýchlo zistí, že čas, ktorý je potrebný na dokončenie takéhoto testu sa exponenciálne zvyšuje pridaním každého ďalšieho parametra optimalizácie. Navyše, testovanie všetkých vstupov súčasne nesie so sebou neodmysliteľné nebezpečenstvo napasovania systému na historické dáta, a tým výrazne redukuje pravdepodobnosť úspešnosti systému pri živom obchodovaní.

Obrázok 10

Tu vidíme Strategy Optimization Report (obrázok 10), ktorý bol vygenerovaný na základe parametrov optimalizácie z predchádzajúceho obrázku. Keďže nie všetky stĺpce tohto reportu sú teraz podstatné, zobrazené vidíme len všetky dáta pre hodnoty vstupov, výsledný čistý zisk z týchto nastavení, ako aj percento ziskových obchodov, počet vygenerovaných obchodov, maximálny intra-denný úbytok a po sebe idúce ziskové a stratové obchody.

Systémové nastavenia 22 a 12 pre vstupné údaje S1a S2 (obrázok 11) vyprodukovali najväčšie zisky po tom, čo boli porovnané výsledky zo všetkých 411 testov.

Obrázok 11

Avšak toto pravdepodobne nie je také nastavenie parametrov, ktoré nám v budúcnosti zaručí najvyššiu konzistentnosť výsledkov.

Aj keď na prvý pohľad sa môže zdať ako logické, že výber vstupných údajov s najvyššou ziskovosťou povedie k najlepšej výkonnosti systému, v prípade živého obchodovaní tomu tak veľakrát nie je.

Obrázok 12

Pozrime sa lepšie na stĺpec All: Net Profit (obrázok 12) – všimnite si, o koľko je profit pre nastavenie 22 a 12 vyšší ako pre akékoľvek iné nastavenie nižšie. Takéto extrémne výsledky sú dôsledkom toho, že niekoľko obchodov podľa stratégie predstavovalo nákupy na presnom minime väčšieho pohybu a predaje boli realizované na úplnom maxime trendu. Takáto situácia nastane, ak dovolíte počítaču otestovať všetky možné kombinácie našich dvoch vstupných údajov a zoradiť ich podľa najvyššej výnosnosti. Pravdepodobnosť, že sa takéto obchody vyskytnú v budúcnosti však nie je veľká. Tieto obchody sa označujú ako odľahlé pozorovania (outliers) a pri testovaní by nemali byť brané do úvahy.

Ďalej sa pozrime na výsledky 10 - 15. Všimnite si konzistenciu čistého zisku pri všetkých týchto kombináciách. Tieto výsledky pravdepodobne nebudú zahŕňať odľahlé obchody, pretože ich výsledky sú príliš blízko seba na to, aby zodpovedali niekoľkým veľkým ziskom. Keďže žiadna z týchto kombinácií nezahŕňa odľahlé obchody, zvolenie si akéhokoľvek z týchto nastavení má vyššiu pravdepodobnosť úspechu ako voľba najvýnosnejšieho výsledku.

Tento proces sa nazýva „výberová optimalizácia“.

Nebezpečenstvo prílišnej optimalizácie

Ako sme už spomínali, optimalizácia v TradeStation môže byť vašim najlepším priateľom rovnako ako vašim najhorším nepriateľom.

Veľa obchodníkov, ktorí pri obchodovaní používajú systémy, či už sú to skúsení obchodníci alebo novici, budú mať sklon k opakovanej optimalizácií početných premenných na užších a užších rozpätiach a v rôznych kombináciách v snahe vyťažiť každý jeden cent z výnosnosti ich stratégie.

Aj keď podľa prvotného pozorovania sa môže zdať, že výnosnosť stratégie, ktorej nastavenia boli týmto spôsobom upravené je pozitívna, realitou je, že takýto systém má veľmi malú, ak vôbec nejakú, šancu na prežitie pri živom obchodovaní.

Pri vyčerpávajúcom testovaní systému s použitím špecifického súboru dát, s úplnou presnosťou prispôsobujete stratégiu týmto špecifickým dátam. Avšak nato, aby bolo takéto nastavenie stratégie výnosné pri reálnom obchodovaní, bude nevyhnutné, aby budúce trhové dáta presne súhlasili s historickými dátami použitými pri testovaní. Každý, kto sa čo i len trochu rozumie trhu, bez pochýb vie, že takáto situácia je veľmi málo pravdepodobná.

Existuje pár bežných postupov, ktoré sa môžu použiť na výraznú redukciu, prípadne úplnú elimináciu pravdepodobnosti napasovania systému a tým zabráneniu úplného zničenia dobrého systému na základe jeho „pretestovania“.

Najprv si uvedomte, že testovanie príliš veľkého množstva vstupných údajov naraz spôsobí, že optimalizácia identifikuje nadbytočné množstvo odľahlých obchodov, a tým odkloní výsledky testovania od reálnych výsledkov výnosnosti. Aby sme sa vyhli takejto možnosti, odporúča sa vstupné údaje stratégie testovať po malých skupinkách. Napríklad stratégia, ktorá zapája 10 samostatných hodnôt vstupných údajov nám poskytne stabilnejšie výsledky optimalizácie ak testujeme naraz iba 2 vstupy, a teda dokončenie celého procesu optimalizácie si bude vyžadovať 5 optimalizačných runov po sebe. Aj keď testovanie troch až piatich vstupov v každom rune by poskytlo výnosnejší výsledok, hrozí tu oveľa vyššia pravdepodobnosť vytvorenia „pre-optimalizovaného“ systému.

A nakoniec, použite proces výberovej optimalizácie na zníženie šance výskytu odľahlých obchodov, ktoré umelo ovplyvňujú výber vstupných údajov vášho systému.

„Otestujte“ váš systém naživo

Zatiaľ čo back-testovanie a optimalizácia sú hodnotnými nástrojmi pre tvorbu a testovanie automatizovanej stratégie, pre zistenie validity vášho naprogramovaného systému sa nič nevyrovná skúsenosti zo živého obchodovania. Sledovanie systému ako obchoduje na živých dátach po tom, ako prebehlo testovanie a všetky alternácie nastavení, je veľmi užitočné. Veľmi rýchlo sa dozviete, či je vaša teória naozaj zisková. Takého testovanie dopredu (forward-testing) by sa malo najskôr spraviť len v testovacom móde, predtým ako dáte do hry svoj ozajstný kapitál. Najlepší spôsob ako takýmto spôsobom ohodnotiť systém, je jednoducho len sledovať krivku Equity curve na Strategy Performance Reporte. Táto krivka, ktorá je vygenerovaná v reálnom čase, by sa mala čo najviac približovať tej, ktorá bola vygenerovaná na základe historických dát, pokiaľ stratégia systému je naozaj správna. Skúsenosti preukázali, že 2-týždenné živé dáta sú postačujúce na to, aby sme zistili, aká je životaschopnosť novej stratégie alebo novej sady parametrov pre už existujúci systém.

Synchronizujte systém so súčasnými trhovými podmienkami

Optimalizácia v TradeStation môže byť efektívne využitá aj pri udržiavaní systému v súlade so stále sa meniacou povahou trhu. V závislosti od typu stratégie zmeny na trhu v čase môžu ovplyvniť výnosnosť a schopnosť systému reagovať.

Využitie optimalizácie s týmto účelom je úplne závislé na množstve historických dát, ktoré je použité pri testovaní. Aj napriek tomu, že pre niekoho môže byť potešiteľné vidieť systém, ktorý vykazuje výnosné výsledky počas niekoľkých mesiacov alebo aj rokov historických dát, nastavenia takejto stratégie, ktoré pramenia z testovania na veľmi veľkej škále dát nevytvoria systém, ktorý by prispôsobivý súčasnému trhu.

Nezaujímame sa totižto o to, ako môj systém obchodoval niekoľko mesiacov dozadu. To, čo sa stalo pred niekoľkými rokmi nie je až tak dôležité ako to, ako chcem, aby môj systém obchodoval teraz. Takže radšej budem mať môj systém v súlade s trhom dnes, nie s niečím, čo sa stalo pár rokov dozadu.

Na základe toho by ste mali vždy spraviť svoje prvotné testovanie a následné optimalizácie na minimálnom množstve minulých dát. Na vytvorenie alebo testovanie novej stratégie je len málokedy dobré použiť dáta staršie ako 4 mesiace. Viem, že mnoho obchodníkov si myslí, že omnoho väčšia vzorka dát je nevyhnutná na uistenie sa o robustnosti systému – čo je na počiatku úplne pochopiteľné. Avšak pri opätovnom nastavovaní vstupných údajov systému podľa súčasného trhu určite odporúčame použitie minimálnych dát.

Zhrnutie

  1. Back-testovanie môže byť veľmi užitočným nástrojom pri vývoji stratégie.
  2. Optimalizácia môže buď výrazne systém zlepšiť alebo naopak úplne ho znehodnotiť, v závislosti od toho ako bude použitá.
  3. Prílišná optimalizácia stratégie môže viesť k nesprávnym očakávania a spraviť ju nepoužiteľnou.
  4. Najlepší konečný test systému je práve ten v reálnom čase.
  5. Použite minimálne dáta pri opätovnej optimalizácií stratégie, ak má byť v súlade so súčasnými podmienkami na trhu.


Dátum vytvorenia: 23.04.15 14:47

Hodnotenie
Hodnotenie:
5.00 (4)
Kľúčové slová:

Upozornenie: Vstupom na internetové stránky spoločnosti TRIM Broker, s.r.o. (IČO: 35 867 302, Jarošova 1, Bratislava, Slovenská republika), ďalej len "spoločnosť", súhlasíte s podmienkami používania webových stránok spoločnosti. Obchodovanie a investovanie na finančnom trhu je rizikové a nie je vhodné pre každého. Zvážte preto možné dopady a riziká takýchto činností ešte pred tým, než začnete obchodovať. S obchodovaním na finančnom trhu sa spája riziko možných strát. Spoločnosť vykonáva činnosť samostatného finančného agenta v sektore kapitálového trhu, ktorá sa týka výhradne len prevoditeľných cenných papierov, dlhopisov a prevoditeľných cenných papierov zahraničných subjektov kolektívneho investovania. Spoločnosť nezodpovedá za správnosť a úplnosť údajov a informácií tu zverejnených. Informácie tu uvádzané neposkytujú daňové, právne a ani investičné poradenstvo, neposkytujú žiadnu záruku alebo tvrdenie, že by bolo na ich základe možné profitovať alebo limitovať potenciálne straty. Spoločnosť nenesie zodpovednosť za žiadne straty spôsobené užívaním informácií vypracovaných, zverejňovaných alebo ďalej rozširovaných spoločnosťou na svojej internetovej stránke. Viac v upozornení na riziká. TRIM Broker, a.s. je registrovaným finančným sprostredkovateľom v sektore kapitálového trhu v Registri finančných agentov Národnej banky Slovenska pod číslom 112504. Viac v právnom vyhlásení. Services of company TRIM Broker, a.s. are not solicited to US customers.