Thursday, May 31, 2012

Expectancy

V kratkosti odpoved na to co je to expectancy a k cemu nam v obchodovani je. Diky pekne recenzi na Van Tharpovu knihu Trade you way to financial freedom jsem se pustil do cetby, Van Tharp je znamy autor, a jeho prace rozhodne stoji za par $$ a precteni,  na svych strankach si muzete vyzkouset jeho test tradera ktery vam poodhali jaky typ obchdnika jste. Puvodne jsem se chtel rozepsat na tema ale zcela nahodou se objevil dnes prispevek na financnik.cz, odkaz od uzivatel Heron, expectancy kde je koncept nadherne vysvetlen. Koho zajima trading a souvislosti ten at si projde Heronovi prispevky,  dal mnoho uzitecnych odkazu na literaturu nejen k trading. Rozhodne stoji za to prohledat forum, me utkvel v pameti predevsim Fantom of the pit. Pro pripad ze by z jakhokoliv duvodu zmizeli puvodni prispevky z financniku, zde je puvodni text>

Úvod do obchodního systému a Profit Factor (pro úplné začátečníky, část 1/3)

 
Co je obchodní systém:
Obchodní = používáme ho pro obchodování
Systém = má nějakou hranici, která ho odděluje od okolí; má nějakou strukturu tj. nějaké části (subsystémy) ze kterých se skládá a funkční vazby mezi nimi; a má nějaké vstupy a výstupy

Necháme teď stranou vnitřní strukturu OS (jaké komponenty obsahuje a jak jsou uspořádány a provázány) a podíváme se na systém z vnějšku.

Na určité úrovni abstrakce se na obchodní systém (OS) můžeme dívat jako na krabičku, kde do ní na jedné straně vstupují nějaká data (ceny, volume, jiné trhy, fundamentální data, ...) a na druhé straně z krabičky vypadávají ukončené obchody ve tvaru +100 USD, -80 USD, +30 USD, +124 USD, -25 USD .... (plus je zisk, mínus je ztráta). Jinými slovy, vypadávají z ní čísla a to celkem důležitá, protože jsou to naše peníze. Pokud používáte OS na úrovni AOS, tak musíte vstupní informace kvantifikovat tj. převést je na čísla. Pak OS transformuje vstupní čísla na výstupní čísla (nebudeme to zatím komplikovat žádnou zpětnou vazbou).

Hlavním cílem obchodníka je navrhnout vnitřek systému spolu s výběrem vhodných vstupů tak, aby na výstupu systému byly z dlouhodobého pohledu zisky, které budou konzistentně převyšovat ztráty. A pak ho samozřejmě používat.
Vzhledem k tomu, že na výstupu jsou pouze provedené obchody, tak to jak a jestli je OS „kvalitní“ musíme poznat / měřit právě z jeho výstupů, tj. z výstupní odezvy OS na vstupní podněty.

Teď trošku lehké matematiky a pojmů, bez kterých to nepůjde. Protože existuje celkem hodně různých pojmů označujících totéž, nebo naopak každý si pod stejným pojmem představuje něco jiného, tak tady uvedu „svoji“ terminologii – dávám přednost pojmům, které co nejlépe vystihují svůj obsah a nematou svým názvem. Na označení ve skutečnosti zase tolik nezáleží, jde hlavně o pochopení souvislostí.

Definice základních pojmů a označení:
nW ... number of win (počet ziskových obchodů)
nL ... number of loss (počet ztrátových obchodů)
SW ... sum of win (součet zisků ze všech ziskových obchodů, součet všech zisků)
SL ... sum of loss (součet ztrát ze všech ztrátových obchodů, součet všech ztrát)
n ... number of trades (celkový počet všech obchodů bez rozdílu, jestli byl ziskový nebo ztrátový)
W% ... winning percentage, (procento ziskových obchodů)
L% ... losing percentage (procento ztrátových obchodů)
WLR ... (average) win/loss ratio (poměr průměrného zisku k průměrné ztrátě) - někdo to ne zcela správně zaměňuje s RRR tj. s reward to risk ratio
AW ... average size of winning trades (průměrný zisk při ziskovém obchodu)
AL ... average size of losing trades (průměrná ztráta při ztrátovém obchodu)
P ... profit (celkový zisk z celé série obchodů)
E ... expectancy (očekávaný průměrný zisk na jeden každý obchod)
PF ... profit factor, reward factor (profit faktor)

To by pro začátek stačilo. Důležité je si uvědomit jak to spolu souvisí. První čtyři uvedené (nW, nL, SW, SL) jsou základ, ze kterých vypočítáme všechno, co potřebujeme.

Základní vztahy:
n = nW + nL
W% = nW/n
L% = nL/n
W% = 1 - L%, tj. každý obchod zařadím buď do kategorie zisk nebo ztráta, nikam jinam
AW = SW / nW
AL = SL / nL
WLR = AW / AL
Co by nás mohlo zajímat? Protože nám jakožto obchodníkovi jde hlavně o zisky, tak si nejprve vyjádříme celkový zisk:

P = SW – SL

Aby byl náš OS k něčemu užitečný, tak celkově chci mít více, než jsem tam vložil. Proto musí celkový zisk převýšit celkovou ztrátu, tj. vyžaduji P > 0

Také si můžeme vyjádřit expectancy, tj. jaký je průměrný zisk (v USD) na 1 každý obchod:
E = P/n
E = (SW – SL)/n
E = (AW*nW – AL*nL)/n
E = AW*(nW/n) – AL*(nL/n)
E = AW*W% - AL*L%

Vidíme, že po úpravě už se nám do toho dostala „pravděpodobnost“ tj. W% a L%. Je jasné, že když bude P>0, tak to samé bude platit i pro E, jen to bude vyjádřeno pro jeden obchod.

Potíž s využitím P a E je tahle: Jeden OS má celkové zisky 1.000 USD a ztráty 990 USD, a jeho celkový zisk je tedy 10 USD. Druhý systém má celkové zisky 1.000.000 USD a ztráty 999.990 USD, takže stejný zisk P = 10 USD. Intuitivně vidíme, že ty systémy nejsou stejné co do kvality, i když dávají stejný celkový zisk P. Celkový zisk P tedy není vhodnou metrikou pro kvalitu systému. Předpokládejme, že uvedené systémy měli také stejný počet obchodů a tedy mají i stejnou expectancy E. Expectancy tedy také není příliš vhodné měřítko, protože ukazuje to samé co P, jenom přepočítané na jeden každý obchod.

Proto je vhodné zavést lepší metriku pro měření „ziskovosti / efektivity“ systému, a to profit faktor PF:
PF = SW / SL tj. podíl celkových zisků k celkovým ztrátám, nikoliv rozdíl jako u P
Můžeme to dále upravit:
PF = (AW*nW) / (AL*nL); vynásobíme výrazem (1/n)/(1/n)
PF = (AW*(nW/n))/(AL*(nL/n))
PF = (AW*W%)/(AL*L%)
PF = (AW*W%)/(AL*(1-W%))
PF = (AW/AL)*(W%/(1-W%)) ... velmi důležité!

Výše uvedené příklady dvou systémů se stejným E budou mít naprosto jiný PF. Je vidět, že když je systém celkově ziskový, tak P>0; E>0 a PF >1. Pokud je systém ztrátový, tak má P<0; E<0 a PF<1. Je jasné, že čím větší PF, tím lépe dovede váš systém zhodnocovat peníze.

Tohle je základ, který je třeba si uvědomit. Potřebujeme naprosto nutně, aby náš systém měl PF > 1, jinými slovy PF>1 je „podmínka nutná, nikoliv postačující“ pro funkční (rozuměj generující zisky, které z dlouhodobého hlediska v průměru převažují nad ztrátami) obchodní systém.

Z posledního vyjádření PF je vidět velmi důležitá věc: PF závisí pouze na třech věcech – na win rate (tj. na procentu ziskových obchodů W% ku procentu ztrátových obchodů) a na average win/loss ratio (tj. poměr průměrného ziskového obchodu AW k průměrnému ztrátovému obchodu AL). To jsou jediné věci (W%, AW, AL), které můžou ovlivnit velikost PF. Vidíte, že tu zatím nikde nebyla řeč o počtu obchodovaných kontraktů resp. position sizingu / money managementu. To proto, že výše uvedené se týká jednoho kontraktu, resp. nějaké zvolené „jednotky“ velikosti pozice – prostě pokud by byly vaše zisky a ztráty generovány různým počtem kontraktů, tak je musíte přepočítat na jeden kontrakt. 
Důležité souvislosti:
Jestli váš systém k něčemu je, tak musí mít PF >1. Pokud nemá, tak vás žádný position sizing (money management) nemůže zachránit. Zvyšovat PF můžete jen třemi způsoby:
1) větší procento ziskových obchodů (hledat obchody s vysokou pravděpodobností úspěchu)
2) větší průměrný zisk u ziskových obchodů (hledat obchody s vysokým potenciálem zisku)
3) menší průměrná ztráta u ztrátových obchodů (hledat obchody s nízkým rizikem, kde můžete mít relativně malý SL vůči potenciálnímu zisku)

Pokud váš systém má/využívá nějaké „edge“, pak se to nutně projeví také v hodnotě PF.
Při backtestu byste měli nejprve testovat systém pro 1 kontrakt, jinak budou některé výsledky (PF) zavádějící.
To že zjistíte při backtestu, že má váš systém PF >1 ale ještě neznamená, že máte vyhráno. Proč? Uvědomte si, že PF závisí na počtu provedených obchodů, ze kterých se počítá. Přidáte jeden obchod a PF se mírně změní, přidáte další a PF se zase trochu změní. Backtest vám většinou ukáže jen snapshot pro konkrétní backtestovaný počet obchodů. Vy se musíte také podívat na to, jak se PF postupně měnil s rostoucím počtem obchodů tj. jak se měnil PF v „čase“ a jaký byl jeho průměr. To že teď právě byl PF = 1,25 vám nepomůže, když průměrně byl PF = 0,9. Průměr PF vám sám o sobě ale také ještě nestačí. Pokud si vynesete PF pro různé počty obchodů do grafu (uděláte si tzv. histogram četnosti), tak dostanete nějakou křivku připomínající krtčí hromádku, buřinku nebo čepici Harryho Pottera – to záleží na vnitřku vašeho systému. Na vodorovné ose bude velikost PF a na svislé ose počet případů, kolikrát bylo příslušné hodnoty PF dosaženo.

Je sice hezké když nejčastější hodnota nebo průměr PF byl třeba 1,1, ale když 80% hodnot PF leží níže než 1, tak je to na zamyšlení, jestli se to dá použít. Vaším cílem je, aby co největší počet hodnot PF byl větší než 1. Čím více, tím lépe. Je jasné, že když budete zvyšovat průměrné PF, tak se „krtčí hromádka“ bude „posouvat nebo roztékat “ celkově doprava.

Velmi důležitá věc pro obchodování je konzistence – jednak konzistentní přístup k obchodování (dodržování pravidel atd.), ale hlavně konzistence ve výsledcích tj. provedených obchodech. Konzistenci si můžeme definovat jako počet období, kdy OS vygeneroval nějaký zisk ku celkovému počtu všech období, kdy byl v provozu. Na volbě délky období nezáleží. Poznamenávám, že existují velmi důležité souvislosti mezi PF a konzistencí výsledků (téma na samostatný příspěvek). Z distribuce PF tak můžete vidět, jestli jsou výsledky systému dílem náhody nebo jste přišli na něco užitečného.

Ještě několik poznámek na závěr:
Rozlišujte prosím funkční systém od obchodovatelného systému. Funkční systém musí mít mimo jiné především takové rozdělení PF, aby byla průměrná hodnota PF >1 (a ideálně aby co nejvíce hodnot PF bylo >1 kvůli robustnosti). Obchodovatelný systém musí mít totéž, ale navíc ho aplikujete na takovém trhu, kde velikost poplatků apod. vám nezabrání v použití OS. Proto backtestujte systém nejprve bez poplatků, jinak to poplatky zkreslí. Funkční systém, který nevyždímá zisky z jednoho konkrétního trhu (kvůli poplatkům) vám může zajistit živobytí na jiném, vhodněji vybraném trhu a vy třeba zbytečně zahodíte užitečnou myšlenku.

Protože drtivá většina systémů nemá žádné edge, tak je jejich PF téměř symetricky rozdělen kolem hodnoty 1, resp. průměrná hodnota PF bude jen kousek nad 1 (důvod proč někdo OS považuje za úspěšný). To je ale často bohužel způsobeno spíše pouhou náhodou, než nějakým systematickým využitím edge. Proto také mj. nejde z nějakého ztrátového systému udělat ziskový tím, že obrátíte pravidla pro long/short nebo prohodíte stop loss a PT. Kde nic není, tam nic nenajdete. A pokud nenarazíte na žádné edge, tak jakákoliv snaha o zvýšení W% vám proporcionálně sníží win/loss ratio a naopak, takže si nijak nepomůžete.

Také si uvědomte, že počet obchodů vyplývající z backtestu je jen malou součástí obchodů, které váš systém vygeneruje v budoucnosti během svého používání. Proto je možné, že získaný histogram PF není moc reprezentativní vzorek skutečného rozdělení PF ze všech obchodů (backtestových + budoucích). Když budete mít relativně malý vzorek obchodů z backtestu, tak skutečné rozdělení hodnot PF může být někdy velmi odlišné.

Profit faktor není „jediný“ způsob nebo „nejlepší způsob na světě“ jak měřit „kvalitu“ systému. Má také svoje slabé stránky – nepopisuje vše důležité. Patří ale mezi ty základní a velmi důležité metriky, které byste rozhodně měli brát v potaz a rozumět co je za nimi.

Výše uvedené není vyčerpávajícím popisem všech souvislostí kolem PF, pouze to hlavní na co jsem si zrovna vzpomněl. Snad vám to trochu pomohlo v orientaci. 


Wednesday, May 23, 2012

Tyden 19/5

S malym zpozdenim vysledky minuleho tydne. Od patku nas postupne vsechny doma nakazil  infekcni strevni virus, coz nikomu nepreji, je to opravdu neprijemna zalezitost. Tento tyden bohuzel neni ani nalada ani cas na obchodovani, prioritou cislo jedna je zdravi rodiny. Vysledky zadne zazraky, velky pocet obchodu, nicmene vetsina podprumernych. Behem tydenniho hodnoceni si vsimam ze opet tento tyden prevlada urcitim zpusobem chut obchodovat nad peclivym a trpelivym vyberem obchodu, tak jak jsem se uz zminoval, je treba vedet kdy si sednout na ruce a neobchodovat.


A dva priklady uspesneho a neuspesneho obchodu>



Monday, May 14, 2012

Tyden 11/5

 S vlnu veder se neda opravdu delat nic nez vyuzit kazdou volnou chvilku a zchladit se v atlantiku. Teplomer za posledni tri dny navstevuje skoro 40C a dohromady s absenci vetru, ktery normalne dela den snesitelnym, se opravdu neda ani psat poradne blog:-) Minuly tyden me prekvapili pozitivni ohlasy na robcz, smartpriceaction a dokonce od Petra Veseleho za coz vsem dekuji a at se dari. Pravda v posledni dobe je cas vzacna komodita, kvalitnich blogu a webu je cim dal vice take je treba vybirat velmi velmi dobre. Rychle zhodnoceni minuleho tydne, v zaveru jsem opet v zelenych cislech coz je ok.





Pocet obchodu ovsem zhruba dvojnasobny. Pri tydennim review jsem si vzpomel na tento post ktery uvadi ve svem YTC Lance Beggs; mala pasaz: trading je predevsion o tom naucit se cist trh, o kontextu, ve chvili kdy pochopime ze chovani trhu je velice komplexi, prestanem si namlouvat ze se da vydelavat pomoci jednoducheho set up ci indikatoru. Vsem muzu jen doporucit precetni celho postu, je velmi pekne destilovany.. Nasekl jsem minuly tyden spoustu obchodu, opet diky spravnemu MM doslo jen k tolerovatelnemu DD a v zaveru tyden nekolik malo obchodu vratilo stav uctu do cernych cisel. Nicmene zkusenost je k nezaplaceni a rekl bych nutna, myslim ze jeden ze zpusobu jak se naucit trpelivosti a cekani na spravnou prilezitost  muze byt prave overtrading behem nekolika dni, protoze prave ta vlastni zkusenost potvrdi slova profiku. At se dari.  Po kratke prochazce me napadli dve veci 1/ v zivote a ni v tradingu neexistuji zkratky k uspechu a 2/ vedro je fakt nesnesitelne 11PM  33C nehne se ani listek to budem zitra opravdu 100% pripravni na EU session:-)