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.