Bakalářská práce Užití systému Mathematica při hodnocení finančních derivátů Jan Hanák Vedoucí bakalářské práce Doc. RNDr. Jan Hurt, CSc. Praha 2004
Obsah 1 Úvod 3 2 Finanční deriváty 4 2.1 Definice.............................. 4 2.2 Použití derivátů.......................... 4 2.3 Klasifikace derivátů........................ 5 2.3.1 Forwardy......................... 5 2.3.2 Futures.......................... 6 2.3.3 Swapy........................... 6 2.3.4 Opční deriváty...................... 6 3 Hodnocení opčních derivátů 8 3.1 Cena opce při splatnosti..................... 8 3.2 Evropské opce........................... 8 3.2.1 Put call parita...................... 8 3.2.2 Black Scholesova formule................. 9 3.3 Americké opce........................... 9 3.3.1 Binomické stromy..................... 9 3.3.2 Cox Ross Rubinsteinův model............. 12 3.3.3 Jarrow Ruddův model.................. 13 3.4 Greeks míry citlivosti....................... 14 4 Užití systému Mathematica 15 4.1 Výpočet ceny evropské opce................... 15 4.2 Výpočet ceny americké opce................... 15 4.2.1 Cox Ross Rubinsteinův model............. 16 4.2.2 Jarrow Ruddův model.................. 17 4.3 Greeks............................... 18 4.4 Konvergence numerických procedur............... 18 5 Závěr 23
1 Úvod Systém Mathematica je komerční technický výpočetní systém vyvinutý společností Wolfram Research. První verze tohoto softwaru byla uvedena v roce 1988 a hlavním iniciátorem byl Stephen Wolfram. Jak se dá systém Mathematica využít pro hodnocení finančních derivátů? Nejjednodušší by samozřejmě bylo natáhnout si rozšiřující balík funkcí Derivatives Expert, jež nabízí širokou paletu nástrojů pro práci s finančními deriváty. Tento balík však není standartní součástí systému, a tak nám zbývá možnost využít programové prostředí systému Mathematica, s jehož pomocí můžeme naprogramovat vlastní procedury pro hodnocení finančních derivátů. V úvodní kapitole nejprve vyložím definici, použití a klasifikaci finančních derivátů z obecného hlediska. V teoretické části se omezím pouze na opční deriváty s podkladovým aktivem akcií nevyplácející dividendy. Pro jejich ocenění použiji Black Schlolesovu formuli pro evropské opce a metodu binomických stromů pro opce americké. V další kapitole oceňovací modely popsané v teoretické části budu algoritmizovat pomocí systému Mathematica a jednotlivé modely porovnám mezi sebou. Hlavním cílem mé práce je tedy využití systému Mathematica a s jeho pomocí naprogramovat numerické procedury pro výpočet opční prémie evropských a amerických opcí. Dalším cílem je také analýza problému konvergence jednotlivých numerických procedur a jejich vzájemné porovnání.
2 Finanční deriváty 2.1 Definice Finanční deriváty (derivative securities) jsou definovány 1 jako finanční nástroje splňující následující kritéria: jejich hodnota závisí na změně ceny jiných instrumentů (tzv. bazických nebo podkladových instrumentů) při jejich pořízení není třeba vydat žádné finanční prostředky nebo je množství potřebných prostředků značně nižší než cena podkladového aktiva splatnost derivátového kontraktu je delší než splatnost odpovídajících spotových obchodů. 2 2.2 Použití derivátů Deriváty slouží různým segmentům společnosti a uspokojují potřeby v závislosti na skupině uživatelů: generování zisku tvůrců trhu zatímco pro skupinu tvůrců trhu jsou deriváty jako celek ziskové, skupina konečných uživatelů je v souhrnu ztrátová zajišt ování (hedging) jedná se o ochranu hodnoty určitého nástroje či portfolia nástrojů proti nepříznivému vývoji úrokových měr, akciového trhu, měnového kurzu, cen komodit či rizikovosti určitého subjektu. Příkladem zajištění je pokrytí, kdy se sjedná operace přesně opačná vůči zajišt ované operaci. Opakem zajišt ování je spekulace spekulace (trading) jedná se převzetí rizik vývoje úrokových měr, akciového trhu, měnového kurzu, cen komodit či rizikovosti určitého subjektu. Spekulant vstupuje na derivátový trh ve snaze profitovat na cenovém vývoji, který předpokládá tím, že akceptuje riziko arbitráž, tj. využití cenových rozdílů vznikajících z teritoriálního nebo časového hlediska 1 Nejpodrobnější definici finančních derivátů najdeme ve standardu FAS 133 (výtah je uveden v [11]) obecně přijímaných účetních zásad USA (US generally accepted accounting principles, US GAAP). 2 Kromě výše uvedené definice, která vychází z mezinárodních účetních standardů (international accounting standards, IAS) a platí pro banky a některé finanční instituce, existují v české legislativě dvě další definice, a to v zákonu o cenných papírech a v devizovém zákonu. V praxi to znamená, že tyto tři (bohužel velmi rozdílné) definice derivátů v české legislativě vymezují rozdílnou množinu nástrojů.
deriváty jako forma odměny (remuneration derivative) zaměstnance či člena statutárního orgánu. Od výše uvedených derivátů se liší zejména tím, že nejsou sjednány za tržních podmínek podvody mnoho derivátů nesleduje kterýkoli z výše uvedených cílů, ale slouží k finančním podvodům spočívajícím v převodu peněz mezi různými subjekty. Motivem takových převodů je krácení daní (zejména daně z příjmu) a tunelování některého subjektu jiným subjektem poskytují informace o cenách podkladových nástrojů v budoucnosti (price discovery). 2.3 Klasifikace derivátů Klasifikace derivátů je možná z několika hledisek: podle typu bazického instrumentu (podléhajícího aktiva) se rozlišují komoditní deriváty, úrokové deriváty (kontrakty na budoucí nákup či prodej úrokových instrumentů jako je depozitum, úvěr, krátkodobý či dlouhodobý dluhopis), měnové deriváty, akciové deriváty a deriváty na akciový index podle způsobu jejich obchodování se hovoří o burzovních a OTC (over the counter) derivátech podle práv, která z derivátového kontraktu vyplývají pro jednotlivé strany, se rozlišují pevné a opční kontrakty. Pevné (či nepodmíněné) deriváty představují termínový obchod, který jsou oba (nevyvázaní) účastníci povinni k datu splatnosti uskutečnit bez ohledu na to, jaká je k tomuto datu skutečná cena bazického instrumentu. Pevné deriváty se vyznačují tím, že vstup do takového termínového kontraktu je obvykle pro obě strany bezplatný. Mezi pevné deriváty řadíme forwardy, futures a swapy. 2.3.1 Forwardy Forwardy jsou individuálně sjednané termínové obchody (většinou se tedy jedná o OTC deriváty) na budoucí závazný nákup či prodej určitého množství podkladového instrumentu za předem dohodnutou forwardovou cenu.
2.3.2 Futures Futures jsou standardizované (standardizovaný typ podkladového aktiva, množství, datum splatnosti aj.) forwardové kontrakty obchodované na derivátové burze. Ceny futures jsou kótovány denně a řídí se nabídkou a poptávkou. Narozdíl od forwardů existuje u futures každodenní tržní přeceňování (marking to market), každodenní vypořádání a možnost odstoupení od sjednaného kontratku v libovolném čase jeho odprodejem na likvidním sekundárním trhu. 2.3.3 Swapy Swapy jsou OTC deriváty s vypořádáním (výměnou, dodáním) podkladových nástrojů ve více okamžicích v budoucnosti, tj. představuje několik forwardů s postupnou výměnou podkladových aktiv. Může se jednat o dohodu o budoucí směně úrokových plateb odvozené od stejné nominální hodnoty, ale definovaných odlišným způsobem (tzv. úrokový swap), případně dohodu o směně úrokových plateb vztahujících se ke kapitálovým částkám denominovaným v různých měnách, kdy navíc dochází také ke směně příslušných kapitálových částek (tzv. měnový swap). 2.3.4 Opční deriváty Opční (či podmíněné) deriváty představují termínový obchod, při němž jeden z účastníků (kupující, držitel opce, holder) získává právo (nikoli povinnost) uskutečnit tento obchod k datu splatnosti (evropská opce, European option) nebo kdykoli do splatnosti (americká opce, American option). Postavení druhého účastníka (prodávající, upisovatel, writer) je pasivní, nebot je závislý na rozhodnutí účastníka v aktivním postavení. Kupující musí při vstupu do opčního kontraktu za svou výhodu (právo) zaplatit prodávajícímu určitou opční prémii (cenu opce, option premium). Opce jsou obchodovány jak jako standardizované burzovní, tak jako OTC deriváty. Existují kupní opce (call options, calls), jejichž držitel má právo koupit a upisovatel povinnost prodat podkladové aktivum za předem sjednaných podmínek (datum splatnosti opce, množství a realizační cena bazického instrumentu), a prodejní opce (put options, puts), jejichž držitel má právo prodat a upisovatel povinnost koupit podkladové aktivum za předem sjednaných podmínek.
Opční listy (warranty) jsou v podstatě kupní opce, které emitent vydává k nákupu určitého počtu svých akcií nebo dluhopisů. Opční list bývá často původně součástí dluhopisu, po oddělení je s ním však možné obchodovat jako se samostatným cenným papírem. Stropy (caps) zaručují kupujícímu právo na průběžné plnění od jejich prodejce ve formě úrokového rozdílu, pokud příslušná úroková sazba stoupne nad sjednanou mez. Podobně dna (floors) zaručují držiteli právo na průběžné plnění od jejich prodejce ve formě úrokového rozdílu, pokud příslušná úroková sazba klesne pod sjednanou mez. Konečně kupující obojků (colars) dostává průběžně plnění od jejich prodejce, pokud příslušná úroková sazba stoupne nad sjednanou mez a poskytuje průběžně plnění jejich prodejci, pokud příslušná úroková sazba klesne pod sjednanou mez. Exotické opce (exotic options) jsou velice různorodé opce, většinou nestandardního mimoburzovního typu se složitějším systémem plnění, které jsou často navrhovány finančními institucemi dle okamžitých potřeb trhu (jsou často šité na míru klientům). Příkladem jsou složené opce (compound options, tj. opce na opce), as-you-like-it options (u těchto obcí se může kupující po určité době rozhodnout, zda to budou kupní nebo prodejní opce), binární opce (binary options, tj. opce z nichž plyne v případě ziskovosti konstantní částka, at je výše zisku, která by plynula z klasické opce jakákoliv). Další typy opčních derivátů jsou např. opce na futures, swapce (swaptions, tj. opce na swapy), kapce (captions, tj. opce na stropy) aj.
3 Hodnocení opčních derivátů 3.1 Cena opce při splatnosti V případě obyčejných (plain vanilla) opcí je cena call opce, resp. put opce, při splatnosti dána jako C T = max(s T X; 0), resp. P T = max(x S T ; 0), (1) kde S T je cena podkladového aktiva v čase T (při splatnosti opce) a X je sjednaná realizační cena (strike price). Ceny opcí (opční prémie) v časech t < T jsou v případě opcí obchodovatelných na burze určeny nabídkou a poptávkou. Ceny OTC opcí se pak odhadují na základě vhodného matematického modelu nebo na základě numerické simulace. 3.2 Evropské opce 3.2.1 Put call parita Termínem put call parita se označuje vztah mezi opčními prémiemi navzájem si odpovídajících opcí call a put (tj. se stejným podkladovým aktivem, stejnou realizační cenou a stejnou dobou do splatnosti). Používá se například pro výpočet opční prémie nebo odvození vlastností opce put na základě vypočtené opční prémie nebo odvozených vlastností opce call. Put call parita má tvar kde P t... opční prémie opce put v čase t C t... opční prémie opce call v čase t S t... cena podkladového aktiva v čase t X... realizační cena opce (strike price) T t... doba do splatnosti opce r... bezriziková úroková míra. P t = C t + Xe r(t t) S t, (2)
3.2.2 Black Scholesova formule Pro určení opční prémie evropské opce se používá známý Black Scholesův vzorec (Black Scholesova formule), který se pro call opce obvykle zapisuje ve tvaru (při zachování stejného značení) C t = S t N(d 1 ) Xe r(t t) N(d 2 ), (3) kde N(.) je distribuční funkce standardizovaného normálního rozdělení N(0,1) a d 1 = ln(s t/x) + (r + σ 2 /2)(T t) σ (4) T t d 2 = ln(s t/x) + (r σ 2 /2)(T t) σ = d 1 σ T t, (5) T t kde σ je tzv. volatilita ceny podkladové akcie (volatilita se zpravidla stanovuje na základě historických údajů ceny akcie). Black Scholesův vzorec pro opční prémii evropské put opce dostaneme ze vzorce (3) snadno pomocí put call parity (2) ve tvaru P t = Xe r(t t) N( d 2 ) S t N( d 1 ). (6) Pro odvození 3 Black Schlolesovy formule se musíme omezit těmito předpoklady: neexistence arbitráže (předpoklad úplnosti trhu), hodnotící úroková míra r je bezriziková (předpoklad rizikově neutrálního světa) a konstantní během sledovaného období, volatilita σ je konstantní pro různé realizační ceny a model akciových cen vychází z Wienerova procesu (více v [2]). 3.3 Americké opce 3.3.1 Binomické stromy Pro určení opční prémie amerických opcí již Black Scholesova formule (3) nestačí 4 a je nutné přistoupit k některému numerickému modelu. Ve své práci jsem zvolil binomický model oceňování opcí. 3 Odvození Black Schlolesovy formule najdeme například v [1], [2] a [7]. 4 Zde je nutné poznamenat, že cena opční prémie pro americkou opci call je shodná s opční prémií odpovídající evropské opce, nebot předčasné uplatnění americké opce nepředstavuje pro jejího držitele žádnou výhodu. Tvrzení vyplývá z následující nerovnosti: C A t C E t S t Xe r(t t) > S t X, kde C A t je cena americké opce, C E t je cena evropské opce a S t X je zisk z předčasného uplatnění opce. Z tohoto důvodu by bylo možné pro výpočet opční prémie americké opce call použít Black Scholesovu formuli (3).
Model binomického stromu se používá jako diskrétní aproximace modelů ve spojitém čase, která při infinitezimálním zkracování příslušných diskrétních časových intervalů konverguje k příslušnému spojitému modelu. Aproximace binomickým modelem je založena na představě, že pro změnu hodnoty S 0 (cena podkladové akcie v čase 0) během krátkého časového intervalu t jsou jen dvě možnosti: hodnota podkladové akcie S 0 bud vzroste na hodnotu S 0 u (u > 1) s pravděpodobností p (0 < p < 1), nebo klesne na hodnotu S 0 d (d < 1) s pravděpodobností (1 p). Parametry p, u a d musí dávat korektní hodnotu průměru a rozptylu ceny akcie během časového intervalu délky t. Očekávaná hodnota akcie na konci tohoto intervalu je Se r t, kde S je hodnota na začátku časového intervalu r je bezriziková úroková míra (opět předpokládáme rizikově neutrální svět). Očekávaná hodnota akcie se rovná její střední hodnotě, tj. psu + (1 p)sd = Se r t, neboli Pro rozptyl obdobně platí pu + (1 p)d = e r t. (7) pu 2 + (1 p)d 2 [pu + (1 p)d] 2 = e 2r t (e σ2 t 1), (8) kde na levé straně rovnice je rozptyl stanovený pomocí binomického modelu po uplynutí času t a výraz na pravé straně je tentýž rozptyl stanovený pomocí spojitého modelu, tzv. difuzního procesu, který vychází ze zobecněného Wienerova procesu, což je nejčastěji využívaný markovský proces (více v [2]). Rovnice (8) se obvykle zapisuje ve tvaru p(1 p)(u d) 2 = e 2r t (e σ2 t 1), nebo pu 2 + (1 p)d 2 = e (2r+σ2 ) t (9) Pro malá t je možné výraz e σ2 t rozvést v Taylorovu řadu 1+σ 2 t+o[ t] 2 a tím rovnici (8), resp. (9) aproximovat 5 na tvar: Dosazením p z (7) a úpravě dostaneme pu 2 + (1 p)d 2 e 2r t = σ 2 t. (10) e r t (u + d) ud e 2r t = σ 2 t. (11) 5 Porovnáním rozdílu přesných a přibližných hodnot se zabývá odstavec (4.4) Konvergence numerických procedur.
Rovnice (7) a (9), resp. (7) a aproximující (11) nám dávají dvě podmínky na parametry p, u a d. Podle určení třetí doplňující podmínky získáme rozdílné modely binomických stromů. Cox, Ross a Rubinstein použili v [4] podmínku u = 1/d a p = 1/2 poprvé použili Jarrow a Rudd v [10]. Pomocí binomického modelu určíme cenu americké opce v čase t = 0. Vývoj budeme modelovat v n krocích, tj. t = T/n. (i, j) znamená j tý uzel binomického stromu v čase i t, i = 0, 1,..., n, j = 0, 1,..., i. Cenu opce v uzlu (i, j) označíme jako f ij. Cena podkladové akcie v uzlu (i, j) je rovna S 0 u j d i j (12) a pomocí ní budeme simulovat budoucí ceny podkladové akcie. Předpokládejme, že americkou put opci budeme realizovat v okamžiku T, tj. po n krocích. Podle (1) a (12) je její cena v čase T : f nj = max(x S 0 u j d n j, 0), j = 0, 1,..., n. (13) Pro zjištění opční prémie budeme postupovat zpětným algoritmem skrz vytvořený binomický strom: cenu opce v uzlu (i, j) určíme pomocí střední diskontované ceny opce v uzlech (i + 1, j + 1) a (i + 1, j), přičemž víme, že přechod mezi danými uzly je uskutečněn s danou pravděpodobností p, resp. (1 p). Bez uvažování předčasné realizace je cena opce v uzlu (i, j) rovna f ij = e r t (pf i+1,j+1 + (1 p)f i+1,j ), i = 0,..., n 1, j = 0,..., i. (14) Pro případ možné předčasné realizace musíme též uvažovat vnitřní cenu americké put opce v uzlu (i, j) max(x S 0 u j d i j, 0). (15) Opci uplatním pokud (15) > (14), ale musím se podívat do minulosti, jestli jsem ji neuplatnil někdy dříve. Neboli pro cenu opce v uzlu (i, j) platí f ij = max ( X S 0 u j d i j, e r t (pf i+1,j+1 + (1 p)f i+1,j ) ), (16) i = 0, 1,..., n 1, j = 0, 1,..., i. Postupujeme tedy rekurentně skrz vytvořený binomický strom až do f 00, čímž obdržíme odhad hodnoty opční prémie americké put opce v čase t = 0. Obdobně pro cenu americké call opce v uzlu (i, j) dostaneme f ij = max ( S 0 u j d i j X, e r t (pf i+1,j+1 + (1 p)f i+1,j ) ), (17) i = 0, 1,..., n 1, j = 0, 1,..., i.
3.3.2 Cox Ross Rubinsteinův model Řešením systému rovnic (7) a (9) s dodatečnou podmínkou u = 1/d (např. pomocí systému Mathematica) obdržíme hodnoty pro parametry p, u a d: u CRR = 1 ) (1 2 e r t + e (2r+σ2) t + 4e 2r t + (1 + e (2r+σ2 ) t ) 2 d CRR = 1 ) (1 2 e r t + e (2r+σ2) t 4e 2r t + (1 + e (2r+σ2 ) t ) 2 (18) [ p CRR = 1 4e 2r t + 2e (2r+σ2) t + e 2(2r+σ2 ) t (1 + e 2r t ( 2 + e σ2 t ))... 4e 2r t + (1 + e (2r+σ2 ) t ) 2 ] / [ 2(1 + e 2r t ( 4 + 2e σ2 t + e 2(r+σ2 ) t )) ]. Označme f = e r t a g = e (r+σ2 ) t. Rovnice (18) pak po úpravě můžeme napsat v přehlednějším tvaru jako: u CRR = 1 2 ( ) f + g + (f + g) 2 4 d CRR = 1 ( ) f + g (f + g) 2 2 4 p CRR = 1 1 f + g 2/f. 2 (f + g) 2 4 (19) Řešením rovnice (7) a aproximující rovnice (11) s dodatečnou podmínkou u = 1/d dostaneme dvě řešení (jedno s + a druhé s ) pro přibližné hodnoty parametrů p, u a d: u CRRAp1 = 1 + e 2r t + σ 2 t ± 2e r t 4e 2r t + (1 + e 2r t + σ 2 t) 2 d CRRAp1 = 1 ) (1 2 e r t + e 2r t + σ 2 t ± 4e 2r t + (1 + e 2r t + σ 2 t) 2 p CRRAp1 = 1 1 + e 1 2r t σ 2 t + = er t d 2 4e 2r t + (1 + e 2r t + σ 2 t) 2 u d. (20)
Rovnice (20) je opět možno pro malé t zjednodušit 6 rozvinutím exponenciálních funkcí v Taylorovy řady. Po úpravě dostaneme: u CRRAp2 = e σ t, d CRRAp2 = e σ t, p CRRAp2 = er t d u d. (21) 3.3.3 Jarrow Ruddův model Řešením systému rovnic (7) a (9) s dodatečnou podmínkou p = 1/2 obdržíme přesné hodnoty parametrů u a d: u JR = e r t (1 + ) ) e σ2 t 1, d JR = e (1 r t e σ2 t 1. (22) Pokud opět využijeme Taylorův rozvoj pro exponenciální funkci dostaneme v praxi často používanou aproximaci 7 : u JRAp1 = 1 + r t + σ t, d JRAp1 = 1 + r t σ t. (23) Řešením soustavy rovnic (7) a aproximující (11) s dodatečnou podmínkou p = 1/2 získáme odhady u a d: u JRAp2 = e r t + σ t, d JRAp2 = e r t σ t (24) a aplikací Taylorova rozvoje dospějeme ke stejnému výsledku (23) jako při aproximaci přesných hodnot u a d. 6 Tyto zjednodušující aproximace najdeme např. v [2] a [6]. 7 Jarrow a Rudd v [10] pro svůj výpočet použili odlišné odhady od výše uvedených: u JR = e (r σ2 /2) t e σ t, d JR = e (r σ2 /2) t e σ t.
3.4 Greeks míry citlivosti Greeks rozumíme míry gamma, delta, rho, theta a vega. Tyto míry měří citlivost plynoucí ze změny faktorů, které ovlivňují výši opční prémie. Podle Black Scholesovy formule (3) je cena evropské opce funkcí pěti proměnných, což lze symbolicky zapsat jako V = V (S t, X, r, T t, σ). Greeks měří citlivost změny funkce V na její jednotlivé parametry, neboli se jedná o parciální derivace funkce V podle příslušné proměnné (více v [2]). Dalším způsobem jak změřit některé řecké míry je odhad pomocí binomického stromu. Pro jejich výpočet nebudeme používat funkci V pro výpočet teoretické opční prémie, ale funkci f ij (16) pro výpočet ceny opce v uzlu (i, j). Míra delta popisuje citlivost opční prémie na změnu ceny bazické akcie a může být odhadnuta jako f/ S, kde S je malá změna ceny podkladové akcie a f je odpovídající změna opční prémie. V čase t máme dva odhady pro cenu opce: f 11 pro cenu akcie S 0 u a f 10 pro cenu akcie S 0 d. Delta pak tedy spočteme jako = f 11 f 10 S 0 u S 0 d. (25) Pro určení míry gamma, která popisuje citlivost míry delta na změnu ceny bazické akcie, vezmeme dva odhady v čase 2 t. První je (f 22 f 21 )/(S 0 u 2 S 0 ) a druhý (f 21 f 20 )/(S 0 S 0 d 2 ). Gamma je pak změna v delta odhadech vydělená polovinou rozdílu krajních hodnot ceny akcie v čase 2 t: Γ = (f 22 f 21 )/(S 0 u 2 S 0 ) (f 21 f 20 )/(S 0 S 0 d 2 ). (26) 1/2(S 0 u 2 S 0 d 2 ) Další mírou, kterou můžeme získat přímo z binomického stromu, je theta. Theta popisuje citlivost opční prémie na změnu doby do splatnosti. Odhadem je Θ = f 21 f 00. (27) 2 t
4 Užití systému Mathematica V následující kapitole jsou algoritmizovány procedury pro výpočet opční prémie evropských a amerických opcí teoreticky popsaných v předchozí kapitole a jsou naprogramované a odladěné v systému Mathematica. 4.1 Výpočet ceny evropské opce Procedura pro výpočet opční prémie evropské opce call pomocí Black Scholesovy formule (3) vypadá takto (není to však jediný způsob): Needs[ Statistics NormalDistribution ] No[x ] := CDF[NormalDistribution[0, 1], x] call[s, X, σ, r, T, t ] := Module[{d1, d2}, d1 = (Log [S/X] + (r + σ 2 /2) (T t))/(σ T t ); d2 = (Log [S/X] + (r σ 2 /2) (T t))/(σ T t ); S No[d1] X Exp[ r (T t)] No[d2] ] Obdobně pro evropskou put: put[s, X, σ, r, T, t ] := Module[{d1, d2}, d1 = (Log [S/X] + (r + σ 2 /2) (T t))/(σ T t ); d2 = (Log [S/X] + (r σ 2 /2) (T t))/(σ T t ); X Exp[ r (T t)] No[ d2] S No[ d1] ] Poznámka: Vzhledem k tomu, že jsem si definoval vlastní funkci pro výpočet hodnoty distribuční funkce standardizovaného normálního rozdělení N(0,1) No[x], která používá funkci NormalDistribution, která je obsažena ve standartním statistickém balíku Statistics NormalDistribution, je nutné tento balík nejprve natáhnout pomocí příkazu Needs. 4.2 Výpočet ceny americké opce Procedury pro výpočet opčních prémií amerických opcí vychází z algoritmu popsaném v odstavci (3.3.1). Jedná se zejména o vzorec (16) pro opce put, resp. (17) pro call. Tento vzorec využívá rekurzivní funkce BinStrom, která vytvoří binomický strom na základě určených parametrů p, u a d.
4.2.1 Cox Ross Rubinsteinův model Pro určení opční prémie na základě Cox Ross Rubinsteinova modelu použijeme pro parametry p, u, d rovnice (19). Procedura pro výpočet ceny americké call opce pak vypadá takto: CRRcall[S, X, σ, r, T, n ] := Module[{f, g, u, d, p, OpcniPremie, BinStrom}, f = Exp[ r T/n]; g = Exp[(r + σ 2 ) T/n]; u = 1/2(f + g + (f + g) 2 4 ); d = 1/2(f + g (f + g) 2 4 ); p = (1/f d)/(u d); BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie] Obdobně pro americkou put 8 : CRRput[S, X, σ, r, T, n ] := Module[{f, g, u, d, p, OpcniPremie, BinStrom}, f = Exp[ r T/n]; g = Exp[(r + σ 2 ) T/n]; u = 1/2(f + g + (f + g) 2 4 ); d = 1/2(f + g (f + g) 2 4 ); p = (1/f d)/(u d); BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[X S u j d n j, 0], Max[X S u j d i j, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie] Při použití aproximujících rovnic (20) dostaneme: CRRcallAp1[S, X, σ, r, T, n ] := Module[{u, d, p, OpcniPremie, BinStrom}, u = 2 Exp[r T/n] / (1 + Exp[2 r T/n] + σ 2 T/n ± Sqrt( 4 Exp[2 r T/n] + (1 + Exp[2 r T/n] + σ 2 T/n) 2 )); d = 1/2 Exp[(r T/n] (1 + Exp[2 r T/n] + σ 2 T/n ± Sqrt( 4 Exp[2 r T/n] + (1 + Exp[2 r T/n] + σ 2 T/n) 2 )); p = (Exp[r T/n] d)/(u d); BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie] 8 V dalším textu se omezím pouze na americké opce call, nebot procedury pro výpočet opční prémie americké put jsou téměř totožné: put využívá vzorec (16) a call (17).
A nakonec při použití rovnic (21): CRRcallAp2[S, X, σ, r, T, n ] := Module[{u, d, p, OpcniPremie, BinStrom}, u = Exp[σ T/n]; d = Exp[ σ T/n]; p = (Exp[r T/n] d)/(u d); BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie] 4.2.2 Jarrow Ruddův model Pro určení opční prémie na základě Jarrow Ruddova modelu použijeme pro parametry p, u, d rovnice (22): JRcall[S, X, σ, r, T, n ] := Module[{u, d, p, OpcniPremie, BinStrom}, p = 1/2; u = Exp[r T/n] (1 + Exp[σ 2 T/n] 1); d = Exp[r T/n] (1 Exp[σ 2 T/n] 1); BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie] Při použití aproximujících rovnic (23) a (24) dostaneme: JRcallAp1[S, X, σ, r, T, n ] := Module[{u, d, p, OpcniPremie, BinStrom}, p = 1/2; u = Exp[r T/n] + σ T/n; d = Exp[r T/n] σ T/n; BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie] JRcallAp2[S, X, σ, r, T, n ] := Module[{u, d, p, OpcniPremie, BinStrom}, p = 1/2; u = 1 + r T/n + σ T/n; d = 1 + r T/n σ T/n; BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; OpcniPremie = BinStrom[0, 0]; Clear[BinStrom]; OpcniPremie]
4.3 Greeks Pro výpočet Greeks popsaných v odstavci (3.4) můžeme použít kterýkoli výše zmíněný model binomického stromu. Zde uvedu pouze proceduru vycházející z Cox Ross Rubinsteinova modelu americké opce call: Greeks[S, X, σ, r, T, n ]:=Module[{f,g,u,d,p,Delta,Gamma,Theta,BinStrom}, f = Exp[ r T/n]; g = Exp[(r + σ 2 ) T/n]; u = 1/2(f + g + (f + g) 2 4 ); d = 1/2(f + g (f + g) 2 4 ); p = (1/f d)/(u d); BinStrom[i, j ] := BinStrom[i, j] = If[i == n, Max[S u j d n j X, 0], Max[S u j d i j X, Exp[ r T/n] (p BinStrom[i + 1, j + 1] + (1 p) BinStrom[i + 1, j])]]; Delta = (BinStrom[1, 0] BinStrom[1, 1])/(u d) S; Gamma = 2 ((BinStrom[2, 2] BinStrom[2, 1])/(u 2 1) S (BinStrom[2, 1] BinStrom[2, 0])/(1 d 2 ) S)/(u 2 d 2 ) S; Theta = (BinStrom[2, 1] BinStrom[0, 0])/(2 T/n); Clear[BinStrom]; {Delta, Gamma, Theta}] 4.4 Konvergence numerických procedur Nejprve provedu srovnání 9 opční prémie americké call opce vypočtené pomocí Black Scholesovy formule (3) a ceny opce vypočtené pomocí binomického modelu (uvádím srovnání pouze pro Cox Ross Rubinsteinův model). Podle poznámky 4 by opční prémie měly být shodné. 0.005 0.004 0.003 0.002 0.001 50 100 150 200 250 300 9 Při srovnávání se v celém odstavci omezím na tyto opce: call na podkladovou akcii v hodnotě 9, realizační cenou 10, volatilitou 20%, bezrizikovou úrokovou mírou 10%, splatností za 1 rok a put na podkladovou akcii v hodnotě 45, realizační cenou 50, volatilitou 40%, bezrizikovou úrokovou mírou 10%, splatností za 5 měsíců.
Z grafu je vidět, že rozdíl mezi cenou opce vypočtené pomocí Black Scholesovy formule (3) a cenou opce vypočtené pomocí Cox Ross Rubinsteinova modelu pro vzrůstající n (tj. počet kroků v binomickém stromu) konverguje k nule, neboli opční prémie americké call opce vycházející z binomického modelu konverguje pro n blížící se nekonečnu k opční prémii získané pomocí Black Scholesova vzorce. Z odstavce (3.3.1) vyplývá, že při t blížící se nule, resp. při n blížící se nekonečnu ( t = T/n, lim n T/n = 0), aproximace binomickým modelem konverguje k příslušnému modelu spojitému. Položme si otázku, pro jak velké n lze získat rozumné výsledky? Podívejme se nejprve na grafy znázorňující cenu opční prémie získanou pomocí binomického modelu v závislosti na n. Cox Ross Rubinsteinův model (první graf je pro opci call, druhý pro put): 0.702 0.698 50 100 150 200 0.696 0.694 0.692 0.69 6.84 6.83 6.82 6.81 6.79 50 100 150 200
Jarrow Ruddův model (první graf je pro opci call, druhý pro put): 0.702 0.698 50 100 150 200 0.696 0.694 0.692 6.84 6.83 6.82 6.81 6.79 50 100 150 200 6.78 Jaké n nám tedy zaručí, že dostaneme rozumné výsledky? Hull ve své knize [6] uvádí, že již pro n=30. Vzhledem k tomu, že konvergence uvedených procedur není monotónní a opční prémie v závislosti na n silně osciluje (viz. grafy), není to tak jednoznačné tvrzení. Pokud vyberu nešt astné n, může se mi daný výsledek od přesného výrazně odlišovat. Závěr je tedy takový, že konvergence není přesvědčivá a n=30 není dostačující. Jak se liší konvergence jednotlivých binomických modelů algoritmizovaných v odstavci (4.2)? Zejména se zaměřím na porovnání Cox Ross Rubinsteinova a Jarrow Ruddova modelu a na porovnání těchto modelů oproti jejich aproximacím v závislosti na počtu uskutečněných kroků v binomickém stromu.
Porovnání Cox Ross Rubinsteinova (19) a Jarrow Ruddova (22) modelu je znázorněno na následujích grafech 10 : 0.015 0.01 0.005-0.005-0.01-0.015 20 40 60 80 100 0.03 0.02 0.01-0.01-0.02 20 40 60 80 100 Rozdíl mezi přesným Cox Ross Rubinsteinovým modelem (19) a jeho aproximací (20) (řešení s ) ukazují tyto grafy: 0.25 0.5 0.2 0.15 0.1 0.05 0.4 0.3 0.2 0.1 20 40 60 80 100 20 40 60 80 100 Rozdíl mezi přesným Cox Ross Rubinsteinovým modelem (19) a jeho aproximací (21) je znázorněn následujícími grafy: 0.05 0.04 0.03 0.02 0.01 20 40 60 80 100 0.07 0.06 0.05 0.04 0.03 0.02 0.01 20 40 60 80 100 Snadno nahlédneme, že rozdíl mezi použitými aproximacemi je značný: přiblížení vycházející z (20) je o mnoho nepřesnější (zejména pro malé n) a její 10 V celém odstavci platí, že grafy zobrazené vlevo znázorňují opce call a grafy zobrazené vpravo znázorňují opce put.
použití pro praktický výpočet je nasnadě. Zde se můžeme podívat na rozdíly mezi jednotlivými aproximacemi (20) a (21) vynesené do grafu: 0.2 0.175 0.15 0.125 0.1 0.075 0.05 0.4 0.35 0.3 0.25 0.2 0.15 0.1 20 40 60 80 100 20 40 60 80 100 Rozdíl mezi použitými aproximacemi (23) a (24) Jarrow Ruddova modelu již není zdaleka tak dramatický jako v případě Cox Ross Rubinsteinova modelu: 0.008 0.006-0.001 20 40 60 80 100 0.004 0.002 20 40 60 80 100-0.002-0.003-0.004 Z grafického znázornění vyplývá, že rozdíl mezi použitými aproximacemi je v řádu tisícin již pro malé n. Rozdíly mezi přesným Jarrow Ruddovým modelem (22) a jeho aproximací (23) nebo (24) ilustrují následující grafy: 0.025 0.02 0.015 0.01 0.005 0.08 0.06 0.04 0.02 20 40 60 80 100 20 40 60 80 100