1
INLEIDING
1
Monte-Carlo simulatie voor financiële optieprijzen Studiepunten : 3
Volg stap voor stap de tekst en los de vragen op. Bedoeling is dat je op het einde van de rit een verzorgd verslag afgeeft dat een duidelijk geheel vormt. Het verslag bevat dus niet enkel de antwoorden op de vragen, maar vormt een mooie leesbare tekst. Richtlijnen voor het maken van een goed verslag vind je achteraan in de bijlage. De bijhorende MATLAB-code wordt ook afgegeven. De code moet van voldoende commentaar voorzien worden.
1
Inleiding
Stel dat u eigenaar bent van een Belgisch bedrijf dat wereldwijd producten verkoopt. Een bedrijf in Amerika plaatst een grote order om over een jaar voor 1 miljoen dollar aan producten te kopen. Als u dit bedrag over een jaar ontvangt, wilt u het graag omwisselen naar euro’s. Het is echter niet duidelijk wat op dat moment de wisselkoers dollar-euro zal zijn. Met een financiële optie kunt u zich verzekeren tegen het risico dat over een jaar de dollar-euro koers ongunstig uitvalt. Een Europese put-optie1 geeft de houder het recht, maar niet de plicht, om over T jaar een bepaald goed voor de waarde K te kunnen verkopen. De parameters T en K heten de aflooptijd en uitoefenprijs. Deze worden vooraf vastgelegd. In ons voorbeeld is T = 1. Als goed kiezen we het standaard bedrag van 1 dollar (de aanpassing naar andere bedragen is duidelijk). Het is natuurlijk om de waarde K in de buurt van de huidige wisselkoers S0 = 0.78 te kiezen. Als concreet voorbeeld nemen we K = 0.75. Financiële opties zijn niet gratis (waarom niet?). Cruciale vraag is wat een eerlijke prijs voor een optie is. In dit project zullen we een algemene aanpak voor het prijzen van financiële opties bekijken, toegepast op ons dollar-euro voorbeeld. Deze aanpak heet Monte–Carlo simulatie. Het wordt naast de wiskunde en economie in vele wetenschappelijke gebieden (fysica, chemie, biologie, informatica, ...) toegepast. Een belangrijk onderdeel is hierbij de numerieke oplossing van stochastische differentiaalvergelijkingen.
2
Brownse beweging
We beginnen met het implementeren van de zgn. Brownse beweging, dat een belangrijke rol in het vervolg zal spelen. 1
De term “Europese” heeft geen geografische betekenis. Het wordt in de literatuur gebruikt voor opties die alleen op het einde van de looptijd kunnen worden uitgevoerd.
3
STOCHASTISCHE INTEGRALEN
2
Een stochastisch proces is een familie U (t) (t ≥ 0) van stochastische variabelen op een gezamenlijke kansruimte (Ω, A, P ). Eén trekking levert een functie van [0, ∞[ naar R. Dit noemt men een pad of realisatie. Een (standaard) Brownse beweging in R is een stochastisch proces W (t) (t ≥ 0) zodanig dat • W (0) = 0 bijna zeker • W (t) − W (s) is normaal verdeeld met verwachting 0 en variantie t − s (voor 0 ≤ s ≤ t) • voor iedere 0 = t0 < t1 < . . . < tN zijn W (tj )−W (tj−1 ) (1 ≤ j ≤ N ) onderling onafhankelijk Voor numerieke doeleinden beschouwen we een gediscretiseerde Brownse beweging, waarbij W (t) geëvalueerd wordt in discrete tijdspunten t ∈ [0, T ]. Voor gegeven geheel getal N ≥ 1, zij ∆t = T /N en tj = j · ∆t voor j = 0, 1, 2, . . . , N . Noteer de benadering van W (tj ) als Wj . Zij Zj voor j = 1, 2, . . . , N onderling onafhankelijke, normaal verdeelde stochastische veranderlijken met verwachting 0 en variantie 1. Definieer W0 = 0 en √ Wj = Wj−1 + ∆t Zj (j = 1, 2, . . . , N ). (1) Dan heet W0 , W1 , W2 , . . . , WN een gediscretiseerde Brownse beweging. Vraag Hoe correspondeert (1) met de definitie van een Brownse beweging? Maak een efficiënt MATLAB-programma dat, voor willekeurig gegeven T > 0 en N ≥ 1, een gediscretiseerde Brownse beweging genereert en in een grafiek uitzet tegen t0 , t1 , t2 , . . . , tN . Verbind hierbij opeenvolgende punten met lijnstukjes. Voor een efficiënte werking is het aan te bevelen het programma te vectoriseren en van het commando cumsum gebruik te maken (hoe?). Opmerking Gebruik steeds zo weinig mogelijk lussen in je MATLAB-code. Probeer zo veel mogelijk met vectoren te werken. Iedere nieuwe uitvoering van het programma zal een nieuw plaatje geven, aangezien het een stochastisch proces betreft. Eén realisatie van een gediscretiseerde Brownse beweging (met T = 1 en N = 400) is te zien in Figuur 1. Voor de experimenten verder in de opdracht is het nuttig om de uitkomsten vergelijkbaar te maken; hiervoor stellen we de beginstaat van de ’random number generator’ in. Stellen we bijvoorbeeld randn(’state’,100), dan zullen achtereenvolgende uitvoeringen van het programma dezelfde output produceren.
3
Stochastische integralen
Gegeven een functie ϕ, dan kan de integraal N X j=1
ϕ(tj−1 )(tj − tj−1 ),
RT 0
ϕ(t)dt benaderd worden door de Riemann som (2)
4
DE EULER-MARUYAMA METHODE
3
1 0.8 0.6 0.4 0.2
W
0
−0.2 −0.4 −0.6 −0.8 −1 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
t
Figuur 1: Realisatie van een gediscretiseerde Brownse beweging met T = 1, N = 400.
met de discrete punten tj zoals hiervoor. De integraal is gedefinieerd door het nemen van de limiet ∆t → 0. Analoog kunnen we een som van de vorm N X
ϕ(tj−1 )(Wj − Wj−1 )
(3)
j=1
beschouwen, als benadering van de stochastische integraal 0T ϕ(t)dW (t). Hier integreren we ϕ met betrekking tot de Brownse beweging. Zo’n integraal heet een Itô integraal. R
4
De Euler-Maruyama methode
Een scalaire, autonome stochastische differentiaalvergelijking (SDV) kan geschreven worden als Z t
Z t
S(t) = S0 +
f (S(τ ))dτ + 0
g(S(τ ))dW (τ )
(0 ≤ t ≤ T ),
(4)
0
waarbij f en g gegeven scalaire reëel-waardige functies zijn en de beginwaarde S0 een gegeven reëel getal is. Deze vorm van notatie noemen we de integraalvorm. We zullen niet verder toelichten wat het precies betekent dat S(t) een oplossing is van (4). In plaats daarvan definiëren we onmiddellijk een methode voor de numerieke oplossing van (4). Dikwijls wordt de SDV (4) herschreven in de (symbolische) differentiaalvorm dS(t) = f (S(t))dt + g(S(t))dW (t)
(0 ≤ t ≤ T ),
S(0) = S0 .
(5)
Dit is niet meer dan een compacte schrijfwijze, die we verder zullen gebruiken. Om een numerieke methode te formuleren voor (5), discretiseren we eerst het interval. Stel ∆τ = T /L voor een positief geheel getal L, en τj = j · ∆τ . De numerieke benadering van S(τj ) zullen we noteren als Sj . De Euler-Maruyama (EM) methode geeft: Sj = Sj−1 + f (Sj−1 )∆τ + g(Sj−1 )(Wj − Wj−1 ),
j = 1, 2, . . . , L.
(6)
5
MONTE-CARLO SIMULATIE
4
0.9 0.88 0.86 0.84 0.82
S 0.8 0.78 0.76 0.74 0.72 0.7 0
0.1
0.2
0.3
0.4
0.5
τ
0.6
0.7
0.8
0.9
1
Figuur 2: Een realisatie van het koersverloop horende bij S0 = 0.78, r = 0.06 en σ = 0.20.
Vraag Geef aan hoe men (6) in verband met (4) kan brengen. Voor de Brownse beweging gebruiken we steeds de stapgrootte ∆t = T /N . De stapgrootte ∆τ voor de numerieke methode kiezen we dan een geheel meervoud R ≥ 1 van ∆t : ∆τ = R∆t. Dit verzekert ons dat de verzameling punten {tj }, waarop het gediscretiseerde Brownse pad gebaseerd is, de punten {τj }, waarop de EM oplossing wordt berekend, bevat.
5
Monte-Carlo simulatie
We zullen de EM methode toepassen op de lineaire SDV dS(t) = rS(t)dt + σS(t)dW (t),
S(0) = S0 ,
(7)
waarbij r en σ zekere reële constantes zijn: r is de rente en σ de volatiliteit. Dit is een bekend model voor het verloop van wisselkoersen. S(t) duidt de koers aan op tijdstip t. We zullen (7) hier gebruiken als model voor de dollar-euro koers. Maak een efficiënt programma dat voor willekeurig gegeven positieve waardes S0 , r, σ de dollareuro koers simuleert op tijdstippen 0 = τ0 < τ1 < τ2 < . . . < τL = T met T = 1 en in een grafiek (τj , Sj ) uitzet verbonden met lijnstukjes. Gebruik hierbij stapgrootte ∆t = 2−8 om de Brownse beweging te simuleren en pas EM toe met stapgrootte ∆τ = R∆t met R = 4. Eén realisatie van het koersverloop is te zien in Figuur 2 in ons geval van S0 = 0.78, r = 0.06 en σ = 0.20. We kunnen nu starten met het prijzen van de optie. De volgende formule geeft de eerlijke prijs van een Europese put-optie: V = E[exp(−rT ) · max(K − S(T ), 0)]
(8)
6
STERKE CONVERGENTIE VAN DE EM METHODE
5
waarbij E de verwachting aanduidt. We kunnen de verwachting goed benaderen door een gemiddelde waarde, waarbij een groot aantal realisaties M van het koersverloop wordt gekozen: VM = exp(−rT ) ·
M 1 X max(K − sm,L , 0) M m=1
(9)
met sm,L de uitkomst voor SL in de m-de realisatie. Dit heet Monte-Carlo simulatie. Maak een efficiënt programma dat de benadering VM van de optieprijs V berekent voor willekeurige M . Pas het vervolgens toe met M = 103 , 104 , 105 om de dollar-euro put-optie te prijzen. Let op We willen hier M verschillende paden genereren van de dollar-euro koers. Dit betekent dus ook M verschillende paden van de Brownse beweging. Let daarom goed op waar je randn(’state’,100) zet, zodat je niet M keer dezelfde Brownse beweging genereert. Wel wil je dat wanneer tweemaal de benaderende optieprijs VM wordt berekend voor dezelfde waarde van M , je dezelfde uitkomst bekomt. Denk dus goed na waar je randn(’state’,100) gaat plaatsen!
6
Sterke convergentie van de EM methode
Van SDV (7) is de exacte oplossing gekend, nl. 1 S(t) = S0 exp (r − σ 2 )t + σW (t) . 2
(10)
Benader nu met Monte-Carlo simulatie de optieprijs aan de hand van de exacte oplossing (10) en vergelijk met de reeds berekende benaderingen van de optieprijs. Geef vervolgens de exacte oplossing (10) van de dollar-euro koers op [0, T ] samen met de benaderde EM oplossing in één figuur en bekijk het verschil. Wat gebeurt er als je de tijdstap bij de benaderende oplossing steeds kleiner neemt? Het voorgaande resultaat lijkt te wijzen op convergentie. Herinner dat S(τn ) en Sn stochastische variabelen zijn. Om over convergentie te kunnen spreken, is het belangrijk hoe het verschil wordt gemeten. Een methode heeft sterke orde van convergentie gelijk aan p als er een constante C bestaat zodat p
E|Sj − S(τj )| ≤ C ∆τ ,
(11)
waarbij τj = j∆τ ∈ [0, T ] met j = 1, 2, 3, . . . en ∆τ voldoende klein. Als f en g voldoen aan bepaalde voorwaarden, kan aangetoond worden dat EM sterke orde van convergentie p = 21 heeft. In onze numerieke voorbeelden zullen we ons richten op de fout in het eindpunt t = T , zodus laten we estrong := E|SL − S(T )| ∆τ
(12)
7
DE MILSTEIN METHODE
6
de EM fout in het eindpunt aanduiden in de sterke zin. Als (11) geldt met p = in [0, T ], dan geldt dit zeker op het eindpunt. We hebben dus ≤ C ∆τ estrong ∆τ
1 2
op elk vast punt
1
(13)
2
voor voldoende kleine ∆τ . berekent voor de dollar-eurokoers S(t). Neem Maak een efficiënt programma dat de fout estrong ∆τ voor de benadering van de verwachtingswaarde het gemiddelde over 1000 gesimuleerde waardes SL . Gebruik ∆t = 2−9 voor de gediscretiseerde Brownse beweging en pas EM toe met vijf verschillende stapgroottes: ∆τ = 2m−1 ∆t met 1 ≤ m ≤ 5. Maak een loglog-grafiek waar de op de y-as. stapgrootte op de x-as staat en de bijhorende fout estrong ∆τ Als de bovengrens (13) geldt met een benaderende gelijkheid, dan geldt log estrong ≈ log C + ∆τ
1 log ∆τ. 2
(14)
Dit representeert een rechte met richtingscoëfficiënt 12 . Fit nu een veelterm van graad 1 (in de kleinste kwadraten zin) door de 5 benaderingen van de fout estrong die je hebt berekend. (Hiervoor ∆τ bestaat een commando in MATLAB. Welk?) Wat is de richtingscoëfficiënt die je bekomt? Komt deze overeen met wat we verwachten?
7
De Milstein methode
We zagen dat de EM methode sterke orde van convergentie 21 heeft. Het is mogelijk deze sterke orde te verhogen door een correctie aan het stochastisch increment toe te voegen, Sj =Sj−1 + f (Sj−1 )∆τ + g(Sj−1 )(Wj − Wj−1 ) 1 + g(Sj−1 )g 0 (Sj−1 )((Wj − Wj−1 )2 − ∆τ ), 2
j = 1, 2, . . . , L.
Dit heet de Milstein methode. Onderzoek met numerieke experimenten de sterke orde van convergentie van de Milstein methode. Welke orde bekom je?
8
Veralgemening model
We zagen reeds dat (7) een bekend model is voor het verloop van wisselkoersen. Dit model kan veralgemeend worden tot dS(t) = r(t)S(t)dt + σ(t)S(t)dW (t),
S(0) = S0 ,
(15)
waarbij de rente r(t) en de volatiliteit σ(t) nu afhankelijk zijn van de tijd 0 ≤ t ≤ T . Van deze SDV (15) is de exacte oplossing ook gekend, nl. S(t) = S0 exp
Z t 0
1 (r(τ ) − σ 2 (τ ))dτ + 2
Z t
σ(τ )dW (τ ) . 0
(16)
9
DE GRIEKEN
7
Bereken voor S0 = 0.78, r(t) = −0.01e−2t + 0.06 en σ(t) = σ = 0.2 het koersverloop en de optieprijs en de sterke orde van convergentie voor de Euler-Maruyama en de Milstein methode. Geef steeds de figuren of resultaten die je bekomt in je verslag weer. Bekijk ook eens de rente r(t). Is dit een logisch verloop of vind je van niet? Opmerking Om de eerlijke prijs van de Europese put-optie te bepalen, gebruiken we nu volgende formule: "
V = E exp −
9
Z T
!
#
r(t)dt · max(K − S(T ), 0) .
(17)
0
De Grieken
De Grieken zijn in de financiële wereld parameters die de risico’s van opties en andere financiële producten weergeven. De Grieken geven aan wat de gevoeligheden zijn van een optie ten opzichte van onderliggende parameters, zoals S0 , r, σ en t. De notatie hiervoor is met letters uit het Griekse alfabet, behalve Vega, vandaar de term Grieken. We grijpen terug naar de originele lineaire SDV (7) met exacte oplossing (10). De optieprijs berekenden we mbv (8). Van deze optieprijs kunnen we de Grieken gaan berekenen. Hiervoor bestaan meerdere methoden waarvan er hier twee besproken en vergeleken worden. Verschillende eerste-orde Grieken zijn: • Delta ∆ = • Vega ν = • Rho ρ =
9.1
∂V ∂S0
∂V ∂σ
∂V ∂r
De indirecte methode
Bij de indirecte methode gaan we de afgeleide ten opzichte van een parameter ξ benaderen door de eindige differentie ∂V V (ξ + ∆ξ) − V (ξ − ∆ξ) ≈ , ∂ξ 2∆ξ
(18)
waarbij ∆ξ een klein stapje is. Hiervoor gaan we dus eerst V (ξ − ∆ξ) en V (ξ + ∆ξ) benaderen met behulp van Monte-Carlo simulatie en dan in (18) invullen. Omdat we eerst de optieprijzen zelf simuleren en dan pas de Griek berekenen, noemen we dit een indirecte methode. Let op Om de twee optieprijzen V (ξ − ∆ξ) en V (ξ + ∆ξ) te berekenen, moet je dezelfde set van random normaal verdeelde waarden gebruiken voor de Brownse beweging. Hiervoor gebruik je bijvoorbeeld randn(’state’,100). Bepaal nu met behulp van (18) de Grieken Delta, Vega en Rho en geef deze weer in een grafiek
9
DE GRIEKEN
8
tov S0 . Neem bijvoorbeeld S0 = 0.20, 0.21, . . . , 1.40 en σ = 0.20 en r = 0.06 zoals hiervoor. Je gaat dus voor de verschillende waarden van S0 de Grieken berekenen. Kies in je berekeningen ∆S0 = 0.01, ∆σ = 0.001, ∆r = 0.001. Neem hier M = 104 paden.
9.2
De directe methode
We beschouwen de zgn. Pathwise Derivatives methode. Dit is een directe methode omdat we eerst een formule gaan afleiden voor de Grieken en daarna deze gaan benaderen aan de hand van Monte-Carlo simulatie. De afleiding hiervan steunt op het feit dat, onder milde aannames, ∂V ∂P =E ∂ξ ∂ξ
(19)
met P = exp(−rT ) · max(K − S(T ), 0). We zullen deze methode verder uitleggen aan de hand van een voorbeeld. Meer informatie over deze methode kan je vinden in [1]. Voorbeeld We bepalen Vega door ∂V ∂P =E ∂σ ∂σ
(20)
met P = exp(−rT ) · max(K − S(T ), 0). Als we dan ∂P ∂σ kennen, dan vinden we mbv Monte-Carlo simulatie Vega. In P is enkel S(T ) afhankelijk van σ en bijgevolg is ∂P ∂P ∂S(T ) = · . ∂σ ∂S(T ) ∂σ We leiden beide factoren apart af. ∂S(T ) = S(T ) · (−σT + W (T )) ∂σ ! ! S(T ) S(T ) σ2 = ln − r− T , σ S0 2 ∂P = − exp(−rT ) · 1[S(T )≤K] , ∂S(T ) waarbij (
1[S(T )≤K] =
als S(T ) ≤ K, als S(T ) > K.
1 0
We vinden dat "
∂V S(T ) S(T ) Vega = = E − exp(−rT ) · 1[S(T )≤K] · ln ∂σ σ S0
σ2 − r− 2
! !#
T
.
Leid nu zelf de formules af voor Delta en Rho en maak van alle drie een grafiek tov S0 met
REFERENTIES
9
S0 = 0.20, 0.21, . . . , 1.40, r = 0.06 en σ = 0.20 . Neem ook hier M = 104 paden. Vergelijk tenslotte de twee methoden met elkaar. Zijn er uitgesproken voor- en/of nadelen aan elke methode? Dewelke? Probeer ook de bekomen resultaten te interpreteren. Is het logisch dat de waarden van de Grieken positief of negatief zijn? Dat het verloop stijgend of dalend is? Heb je hier een verklaring voor?
Referenties [1] M. Broadie & P. Glasserman, Estimating Security Price Derivatives Using Simulation, Management Science, 42 (1996) 269-285.
REFERENTIES
10 Richtlijnen bij het schrijven van een wiskunde verslag
1. Geef op het voorblad in ieder geval: de titel van het verslag, het opleidingsonderdeel, je naam, en de datum. 2. Deel het verslag op een logische en overzichtelijke wijze in. Gebruik hoofdstukken en paragrafen. Geef in het bijzonder een inleiding in de probleemstelling, de belangrijkste conclusies en een referentielijst. Neem computerprogramma’s op in een appendix. 3. Wees duidelijk, beknopt en volledig. Laat minder relevante zaken weg. 4. Zorg dat de tekst goedlopend en samenhangend is. Vermijd lange zinnen. 5. Gebruik de officiële Nederlandse spelling. 6. Kies een prettig leesbaar lettertype en grootte. Nummer de pagina’s. Druk het verslag eenzijdig af op A4 papier. 7. Nummer definities, stellingen, lemma’s en gevolgen. Nummer alle wiskundige formules waar je in de tekst naar verwijst. 8. Nummer figuren. Voorzie ze van een duidelijk onderschrift. Zorg dat de figuren en alle symbolen hierin voldoende groot en goed leesbaar zijn. Figuren bespreek je in de tekst. 9. Kies een natuurlijke, beknopte wiskundige notatie. Duid verschillende grootheden aan met verschillende symbolen. Alle symbolen in je verslag dienen te zijn uitgelegd. 10. Vermijd computertaal in wiskundige formuleringen of de gewone tekst, tenzij dit het onderwerp van een bespreking vormt. 11. Als een resultaat uit de wetenschappelijke literatuur wordt gebruikt, verwijs je naar de betreffende referentie. 12. Het is niet toegestaan om tekst (vrijwel) letterlijk uit de bestaande literatuur of van het internet over te nemen. Gebruik steeds je eigen woorden. 13. Alles wat je opschrijft dien je zelf te begrijpen. 14. Lees het verslag regelmatig nauwgezet en kritisch door. Vraag je in het bijzonder bij iedere zin af of deze correct is en begrijpelijk voor de lezer. Dit kost tijd! 15. Lever je verslag voor de opgegeven datum in. KH, januari 2012