Download werkstuk - KNAW Onderwijsprijs

ALGORI
THMI
C TRADI
NG
&
QUANTI
TATI
VEFI
NANCE
SOPHI
ESLOT&SEBASTI
AN SNI
JDERS
1FEBRUARI201
4
Algorithmic Trading & Quantitative Finance
Een onderzoek naar het ontwikkelen van een geautomatiseerd handelssysteem
Een profielwerkstuk
Aangeboden aan het Gemeentelijk Gymnasium Hilversum
Op 1 februari 2014
Door
S.C. Slot & S.R. Snijders
Begeleider
H.B. van de Vegt
Samenvatting
Het doel van dit profielwerkstuk is het ontwikkelen van een winstgevend geautomatiseerd handelssysteem. Hier gaat een hoop theorie aan vooraf. Allereerst is het belangrijk de werking van de
markt en de verschillende producten waarvan gebruikt gemaakt wordt te leren kennen. Vervolgens
wordt er gekeken naar de verschillende manieren waarop de markt geanalyseerd kan worden. We
kiezen ervoor ons handelssysteem te baseren op kwantitatieve analyse.
Hierna bekijken we hoe koersen op een wiskundige manier beschreven kunnen worden. De
functie van een koers blijkt te bestaan uit een willekeurig deel en een niet-willekeurig deel, dat
exponenti¨ele groei ondervindt. Ook zijn de rendementen normaal verdeeld. Indien gebruik wordt
gemaakt van grote tijdstappen, heeft het niet-willekeurige deel de overhand, en wanneer er gebruikt
wordt gemaakt van kleine tijdstappen, domineert het willekeurige deel de prijs van het product.
Van dit model maken we een continu model door de tijdstappen naar 0 te laten gaan, en door
middel van Itˆ
o’s lemma stellen we een formule op voor het koersverloop van een aandeel.
Aangezien we zo min mogelijk risico willen lopen, maken we voor onze strategie gebruik van
het concept hedging. We kopen twee gecorreleerde producten, en het verschil in prijs noemen we
de spread. Deze twee producten moeten mean-reverting zijn. Via Itˆo’s Lemma bewijzen we echter
dat twee gecorreleerde aandelen niet met zekerheid mean-reverting zijn. Er moet dus gezocht
worden naar een andere manier om deze eigenschap te garanderen. Een manier om te verzekeren
dat de spread het benodigde mean-reverting gedrag vertoont is het gebruik maken van derivaten
van hetzelfde product. We kiezen voor een strategie waarbij gebruik wordt gemaakt van een ETP
en zijn onderliggende product. In het specifiek worden door ons de VXX ETN en de VIX Futures
gebruikt.
Analyse van de historische koersdata laat zien dat de spread van deze producten inderdaad
normaal verdeeld is, en de Dickey Fuller Test bewijst dat de spread ook mean-reverting is. De
spread kan gemodelleerd worden met behulp van het Ornstein-Uhlenbeck model en Itˆo’s Lemma.
De verkregen functie van de spread wordt gebruikt om een functie van de winst op te stellen, het
zogenaamde CASO model. Deze functie voorspelt aan de hand van enkele variabelen de winst en
targetdivergentie.
Door de invloed van de verschillende parameters (targetdivergentie, commissiekosten, vertraging) te testen op de historische koersdata, vinden we optima om bij te handelen. Deze verwerken
we vervolgens in het geautomatiseerde handelsmodel. Dit model gebruiken we als handelsstrategie
en testen we met behulp van real-time koersdata. Het systeem maakt uiteindelijk op ´e´en dag
handelen een gecorrigeerde winst van 9,109.00 dollar. Dit komt overeen met een rendement van
2.47%. Er moeten echter wel enkele kanttekeningen worden gemaakt bij deze resultaten. Bij het
handelen met echt geld is het onzeker of dezelfde resultaten behaald kunnen worden.
1
Inhoudsopgave
1 Financi¨
ele markten en analysetechnieken
1.1 Inleiding op financi¨ele markten . . . . . .
1.1.1 Werking van handelen . . . . . . .
1.2 Inleiding op enkele financi¨ele producten .
1.2.1 Opties . . . . . . . . . . . . . . . .
1.2.2 Futures . . . . . . . . . . . . . . .
1.2.3 ETF’s . . . . . . . . . . . . . . . .
1.3 Het maken van een analyse . . . . . . . .
1.3.1 Fundamentele analyse . . . . . . .
1.3.2 Technische analyse . . . . . . . . .
1.3.3 Kwantitatieve analyse . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
7
7
7
7
7
8
8
10
2 Financi¨
ele wiskunde I
2.1 Modellen voor het verloop van koersen
2.1.1 Het binominale model . . . . .
2.1.2 Rendement en volatiliteit . . .
2.1.3 Het normale model . . . . . . .
2.2 Stochastiche calculus . . . . . . . . . .
2.2.1 Brownse beweging . . . . . . .
2.2.2 Itˆ
o’s Lemma . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
12
15
17
17
19
3 Algorithmisch handelen I
3.1 Hedging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Pairs trading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
22
4 Financi¨
ele wiskunde II
4.1 Spread modellering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
24
5 Algorithmisch handelen II
5.1 Zoektocht naar geschikte trading pairs
5.2 VIX ETP/Underlying arbitrage . . . .
5.2.1 De VIX Index . . . . . . . . . .
5.2.2 VX Futures . . . . . . . . . . .
5.2.3 ETN’s . . . . . . . . . . . . . .
5.2.4 De VXX ETN . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
27
27
27
27
28
6 Verwerking data I
6.1 Historische data . . . . . .
6.2 Bewerking van de data . .
6.3 Optimalisering RT Index .
6.4 Analyse van de spread . .
6.5 Dickey Fuller Test . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
30
30
31
34
41
7 Financi¨
ele wiskunde III
7.1 Arbitrage optimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
8 Verwerking data II
8.1 Invloed van gekozen targetdivergentie . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Invloed van commissiekosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3 Invloed van vertraging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
45
47
50
9 Financi¨
ele wiskunde IV
9.1 Correlatie historische winst en CASO . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Ornstein-Uhlenbeck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3 Integratie Ornstein-Uhlenbeck met CASO model . . . . . . . . . . . . . . . . . . .
53
53
54
55
10 De praktijk
10.1 Uitvoering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
59
60
11 Conclusie
62
12 Discussie
63
A Overzicht gebruikte notaties
72
B CASO waarden
73
C Geschreven MATLAB code
78
D Geschreven EasyLanguage code voor TradeStation
89
E Ruwe data handelsdag
91
3
Inleiding
Tegenwoordig wordt meer dan 50% [23] van alle orders op de Amerikaanse aandelenmarkt gegenereerd door zogeheten High Frequency Trading Firms: professionele bedrijven die door middel van
computeralgoritmes proberen winst te behalen op de aandelenbeurs. Er is echter zeer weinig openbare informatie over deze groep handelaren beschikbaar. Bedrijven die opereren in de industrie van
de geautomatiseerde aandelenhandel houden hun methodes en strategie¨en bij voorkeur verborgen
voor het algemene publiek. Op dit moment is de wereld van het ‘automated trading’ daarom vrij
ontoegankelijk voor de ‘gewone’ belegger (retail trader). In dit profielwerkstuk doen wij onderzoek
naar de theorie achter het geautomatiseerde handelen en bestuderen wij of de vooralsnog alleen
in institutionele kringen toegepaste algoritmische trading strategie¨en gebruikt kunnen worden op
particulier niveau en winst kunnen opleveren voor retail traders.
Allereerst geven we een introductie op aandelenhandel in het algemeen. Vervolgens wordt ingegaan op de mathematische modellering van aandelenkoersen en andere aspecten die belangrijk zijn
om handelsstrategie¨en op te stellen. Met deze informatie proberen we een strategie te ontwikkelen,
welke we vervolgens backtesten op historische data. Aan de hand van de resultaten concluderen
we of deze aanpak theoretisch gezien winst oplevert. Uiteindelijk testen we met behulp van een
zelf gebouwd trading systeem of het daadwerkelijk mogelijk is om met de gevonden methode winst
te maken door deze aan- en verkoopbeslissingen te laten maken op basis van real time aandelenkoersen. Hierbij verklaren we de strategie succesvol als deze een rendement genereert dat minstens
gelijk is aan de risicovrije rente.
4
Hoofdstuk 1
Financi¨
ele markten en
analysetechnieken
1.1
Inleiding op financi¨
ele markten
Om uiteindelijk winst te behalen op de financi¨ele markten, is het belangrijk om eerst de werking
hiervan te begrijpen. Een van de eenvoudigste financi¨ele instrumenten is een aandeel, ook wel een
effect genoemd (of naar de Engelse termen: equity, stock of share). Een aandeel is het bezit van
een klein stukje van een bedrijf. Wanneer je een goed idee hebt en een bedrijf wilt starten is het
nodig om kapitaal op te halen. Dit kun je doen door het verkopen van toekomstige winsten in de
vorm van een bezit in je bedrijf. Investeerders betalen geld en in ruil daarvoor wordt vastgelegd
dat ze eigenaar zijn van een deel van je bedrijf. Zo’n contract noemt men een aandeel.
Een bedrijf kan altijd meer kapitaal ophalen door extra aandelen uit te geven. Wanneer een
klein bedrijf groter groeit kunnen nieuwe aandelen worden verkocht aan een steeds groter publiek.
Uiteindelijk kan een bedrijf ervoor kiezen om zijn aandelen te laten verhandelen op een gereguleerde
aandelenmarkt. Hier kunnen de aandelen van het bedrijf worden gekocht en verkocht tussen
beleggers. Hierdoor wordt het ophalen van kapitaal voor een bedrijf effici¨enter en goedkoper.
Met het kopen van een aandeel op de aandelenmarkt ben je in feite voor een klein stukje medeeigenaar van het bedrijf waarvan je het aandeel koopt en als de waarde van het bedrijf aan de beurs
toeneemt, maak je winst bij het verkopen van het aandeel. De prijs van het aandeel verandert
voortdurend en door deze veranderingen in prijs te gebruiken is het mogelijk om koerswinst te
behalen. De prijs van een aandeel komt tot stand door het fundamentele marktmechanisme van
vraag en aanbod. Als de vraag stijgt bij gelijkblijvend aanbod, dan stijgt de prijs van het aandeel
en als het aanbod stijgt bij gelijkblijvende vraag, daalt de prijs. Aan een verandering in vraag
of aanbod kunnen meerdere oorzaken ten grondslag liggen zoals veranderingen binnen het bedrijf
of veranderingen van de conjunctuur. Om in te kunnen schatten hoe de koers van een bedrijf zal
gaan veranderen, proberen beleggers zo veel mogelijk informatie over het bedrijf en het aandeel te
verzamelen. Dit doen zij onder andere door rapporten van analisten te lezen en het verloop van
de koers in het verleden te bekijken.
In figuur 1.1 is het verloop van de prijs van het aandeel van Apple weergegeven [66]. Te zien is
dat de prijs aan veel veranderingen onderhevig is en op de lange termijn een stijgende lijn laat zien.
Had je dus in 2006 een aandeel gekocht, en het in 2012 weer verkocht, dan zou je door dit verschil
in prijs winst gemaakt hebben. Dit soort trends op de lange termijn zijn echter lastig te voorspellen en eventuele resultaten laten lang op zich wachten. Deze lange-termijn trends worden vaak
veroorzaakt door fundamentele veranderingen binnen het bedrijf en andere factoren die moeilijk
in een mathematisch model te vatten zijn en daardoor nauwelijks beoordeeld kunnen worden door
computerprogramma’s. Computers zijn echter wel van toegevoegde waarde wanneer men kijkt naar
prijsveranderingen op de korte termijn. Computers kunnen hier veel rekenkracht op loslaten en
zijn, in tegenstelling tot mensen, in staat om razendsnel te beslissen. Bij geautomatiseerd handelen
ligt de focus hierdoor sterk op de korte termijn. Waar menselijke handelaren hun besluit tot het
kopen van een aandeel laten afhangen van allerlei factoren, zoals de aard en de toekomststrategie
5
700
600
500
400
300
200
100
0
02−Jan−2005
12−Nov−2007
21−Sep−2010
31−Jul−2013
Figuur 1.1: Tijdsreeks van aandeel Apple van 2005 tot 2013
van het bedrijf, om zo in te kunnen schatten hoe deze in de toekomst zal gaan presteren, neemt het
geautomatiseerde handelssysteem slechts de huidige en historische koersen van het aandeel mee in
de snelle besluitvorming. We hebben hier dan ook te maken met een andere vorm van beleggen:
daytrading. Daytrading houdt in dat je de aandelen die je koopt binnen een korte periode (binnen
een dag) weer verkoopt, om zo de volgende dag weer met een schone lei te beginnen. Daytraders
proberen te profiteren van kleine prijsverschillen en de korte termijnbewegingen van de markt.
Door veel transacties te maken zijn daytraders in staat om winsten te behalen.
1.1.1
Werking van handelen
Dat je winst kan maken bij een stijgende markt, of bij een stijgende prijs van een aandeel, wisten
we al. Je koopt het product simpelweg voor een lage prijs, en probeert het weer te verkopen als de
prijs hoger is. Het verschil in prijs is hier je winst. Deze manier van kopen en verkopen noemen
we long gaan. Het is echter ook mogelijk winst te behalen bij een prijsdaling; dit noemen we
shortselling, of short gaan. Shortselling houdt eigenlijk in dat je producten verkoopt die je op dat
moment niet daadwerkelijk bezit. Het proces bestaat uit meerdere stappen:
1. Je leent een product van een handelaar in aandelen, een broker, en verkoopt dit product
meteen voor de prijs P1.
2. Je bezit nu de waarde van het verkochte product, maar je moet nog wel hetzelfde product
terugleveren aan de broker. Dus, nu koop je met het geld dat je net verdiend hebt hetzelfde
product tegen prijs P2. Dit product geef je terug aan de broker.
3. Het verschil tussen P1 en P2 is je winst of verlies: als P1 groter was dan P2, heb je winst
gemaakt. Is het andersom, dan heb je verlies gemaakt.
Shortselling is dus ook iets dat je alleen doet als je verwacht dat de prijs daalt, want alleen dan
maak je winst.
6
1.2
Inleiding op enkele financi¨
ele producten
Het simpelste financi¨ele product is, zoals in het stuk hiervoor al uitgelegd, het aandeel. Daarnaast
bestaan er natuurlijk grondstoffen (commodities) en obligaties (bonds). Bovendien zijn er vele
andere financi¨ele instrumenten, welke men derivaten noemt, aangezien ze hun waarde ontlenen aan
andere producten.
1.2.1
Opties
Het bekendste derivaat is de optie. Bij het kopen van een optie schaf je het recht aan om een
bepaald product op een bepaald tijdstip voor een van tevoren afgesproken prijs te kopen. Als deze
afgesproken prijs anders is dan de marktprijs van het product op het uitoefenmoment (het tijdstip
´ en optie geeft altijd het recht 100 aandelen te kopen
uit het optiecontract), is er winst te behalen. E´
of te verkopen. Opties zijn te verdelen in twee soorten:
1. Callopties: dit zijn opties waarmee je het recht krijgt om een bepaald onderliggend product
op een vastgestelde datum voor een vastgestelde prijs te kopen, ongeacht de marktprijs op dat
moment. Als je verwacht dat de toekomstige marktprijs hoger is dan de huidige marktprijs,
is het verstandig om callopties te kopen: je winst bestaat dan uit het verschil tussen de
marktprijs en de op de optie vastgestelde prijs op het uitoefenmoment.
2. Putopties: dit zijn opties waarmee je het recht krijgt om een bepaald onderliggend product op
een vastgestelde datum voor een vastgestelde prijs te verkopen, ongeacht de marktprijs op dat
moment. Als je verwacht dat de toekomstige marktprijs lager is dan de huidige marktprijs,
is het winstgevend om putopties te kopen: je winst bestaat wederom uit het verschil tussen
de marktprijs en de op de optie vastgestelde prijs.
NB: Amerikaanse en Europese opties werken verschillend. Met een Amerikaanse opties kun je je
recht tot het kopen of verkopen van een bepaald product gedurende de hele looptijd uitoefenen,
terwijl je met een Europese optie dit recht alleen op de afloopdatum, ook wel het uitoefenmoment
genoemd, kunt uitoefenen. Vanaf dit moment bedoelen we met het woord ‘optie’ altijd de Europese
optie, tenzij anders aangegeven.
1.2.2
Futures
Futures werken bijna hetzelfde als opties. Het enige verschil is dat je bij het kopen van een
future verplicht bent om het product te kopen of verkopen voor de afgesproken prijs op het
uitoefenmoment. Bij futures is het echter vereist om een zogenaamde margin aan te houden.
Het koersverschil wordt namelijk aan het eind van elke dag berekend en van het margin bedrag
afgehaald.
1.2.3
ETF’s
De afkorting ETF staat voor Exchange-Traded Fund, het doel van het fonds is de koper de mogelijkheid tot blootstelling aan een combinatie van verschillende beleggingsproducten te bieden. De
simpelste vorm van de ETF is de indextracker. Deze is opgebouwd uit een combinatie van verschillende aandelen of derivaten, opdat het fonds exact dezelfde samenstelling heeft als een bepaalde
index. Het doel van de indextracker is namelijk de index waarop hij gebaseerd is zo nauwkeurig
mogelijk te volgen. Een voorbeeld hiervan is de SPY, dit is een ETF op de S&P 500 index. Een
andere ETF is de zogenaamde ‘sector ETF’, dit is een fonds dat alleen aandelen van bedrijven uit
een bepaalde sector koopt. Een bekende sector ETF is de XLF, een ETF dat bestaat uit aandelen
uit de financi¨ele sector.
1.3
Het maken van een analyse
Aan het besluit om een bepaald aandeel te kopen gaat een hoop onderzoek vooraf. Het is erg
belangrijk om je transactie ergens op te baseren. Er zijn drie verschillende manieren om dit aan
te pakken: fundamentele analyse, technische analyse en kwantitatieve analyse.
7
1.3.1
Fundamentele analyse
Bij het maken van een fundamentele analyse probeert de analist alle factoren waarvan hij of zij
denkt dat ze meewegen in het verloop van de koers van het bedrijf ´e´en voor ´e´en te bekijken en in
te schatten of deze factoren het verloop van de koers gunstig of juist ongunstig zullen be¨ınvloeden.
Onder de analisten verschillen de meningen over welke factoren dit precies zijn en hoe ze de koers
be¨ınvloeden, maar er wordt aangenomen dat ze in drie categorie¨en te verdelen zijn:
• Macro-economische factoren, zoals de conjunctuur en de rente. Deze factoren be¨ınvloeden
alle aandelen, zij het misschien niet op dezelfde wijze.
• Meso-economische factoren, factoren die iets zeggen over de ontwikkeling van een bepaalde
bedrijfstak. Bedrijfstakken van bedrijven die primaire goederen produceren zullen bijvoorbeeld minder last hebben van een laagconjunctuur dan bedrijfstakken van bedrijven die
luxegoederen produceren.
• De laatste en belangrijkste groep factoren is de micro-economische factoren. Hierbij wordt
gekeken naar de ontwikkelingen binnen ´e´en bepaald bedrijf. Een belangrijke bron van informatie over het functioneren van dit bedrijf is het jaarverslag, waarin onder andere de winsten verliesrekening en de balans te vinden zijn.
Fundamentele analyse is echter lastig uit te voeren door een computer. Er moet rekening gehouden
worden met vele parameters die niet altijd in een model te vatten zijn.
Figuur 1.2: Een overzicht met enkele fundamentele indicatoren in Bloomberg [11]
1.3.2
Technische analyse
In tegenstelling tot de fundamentele analisten geloven technische analisten in het feit dat alle op dit
moment relevante informatie al in de prijs van een aandeel verwerkt is en dat het dus geen zin heeft
om al deze informatie nog een keer te bekijken. De enige gegevens die er voor een technische analyse
8
160
120
140
100
120
80
80
Prijs
Prijs
100
60
60
40
40
20
20
0
0
2
4
6
Tijd
8
10
0
12
0
1
2
3
4
Tijd
5
6
7
8
Figuur 1.3: Een voorbeeld van een steunniveau (links) en weerstandniveau (rechts)
toe doen zijn de huidige en historische koersen. Bij het maken van een technische analyse wordt
geprobeerd een trend te vinden in de grafiek van de aandelenkoers. Technisch analisten proberen
bij hun analyse bepaalde patronen te ontdekken. Patronen waar vaak naar wordt gezocht zijn
de zogenaamde steun en weerstandsniveaus. Een steun is een prijsniveau waar de prijs van een
aandeel bij een daling van de koers moeilijk onder lijkt te kunnen komen. De kans is groot dat
de prijs eerst een aantal keer ‘afketst’ terug naar boven, voordat hij er uiteindelijk toch doorheen
gaat of juist weer stijgt. Dit is te zien in figuur 1.3.
Een weerstand is het tegenovergestelde van een steun. Het is een prijsniveau waar een aandeel
bij een stijgende koers niet boven lijkt te kunnen komen; de kans is groter dat hij er een tijdje
onder blijft hangen. Als de koers van een aandeel uiteindelijk toch door de weerstand heen breekt,
wordt deze weerstand de nieuwe steun. Ditzelfde geldt bij het doorbreken van een steun; als de
prijs van een aandeel tot onder de steun zakt, wordt het oude steunniveau de nieuwe weerstand.
Dit is te zien in figuur 1.3 en in figuur 1.4.
Figuur 1.4: Hoe weerstand verandert in een steun (hier komt betere afbeelding)
Bij technische analyse wordt niet alleen gebruik gemaakt van veelvoorkomende patronen in de
koersen, maar ook van bepaalde rekenkundig verkregen indicatoren. Een van deze indicatoren is het
moving average (voortschrijdend gemiddelde). Dit houdt in dat het gemiddelde van de slotkoersen
gedurende een bepaalde periode wordt genomen, en per dag wordt aangepast. Bijvoorbeeld, als het
om een 10-daags moving average gaat, en je dus 10 slotkoersen bij elkaar optelt en deelt door 10, is
het eerste MA het gemiddelde van de slotkoersen van dag 1-10, en het tweede MA het gemiddelde
van de slotkoersen van dag 2-11. Op deze manier is het mogelijk om het moving average in dezelfde
grafiek te laten zien als het verloop van de koers, en hier conclusies uit te trekken. Het moving
average helpt de kleine uitschieters weg te filteren, om zo de trend duidelijker te zien. Ieder moving
9
average is te berekenen met behulp van de volgende formule1
n
P
MA =
pM −(n−1)
i=1
n
waarbij het gaat om een n -daags moving average met de prijzen p op de dagen M − (n − 1)
tot en met M . In het algemeen wordt aangenomen dat een koers die boven het MA staat een
positieve indicator is voor het verdere verloop van de koers, en een koers die lager is dan het MA
een verwachte daling van de koers aangeeft.
700
600
500
400
300
200
100
0
02−Jan−2005
27−Nov−2007
21−Oct−2010
14−Sep−2013
Figuur 1.5: Een 100-daags moving average van het aandeel Apple
In figuur 1.5 is zowel de koers van de aandelen van Apple als het 100-daags moving average
te zien [66]. De snijpunten van de twee lijnen zijn momenten waarop het gunstig kan zijn om het
aandeel te kopen of te verkopen; op het moment dat de koers zich eerst een tijdje onder het MA
bevindt en dan het MA snijdt, om er vervolgens bovenuit te komen, is het vaak gunstig het aandeel
te kopen. Andersom geldt ook dat als de koers het MA snijdt en eronder komt, dit een signaal kan
zijn om het aandeel te verkopen.
Uit meerdere studies is echter gebleken dat de voorspellende kracht van technische analyse
vaak te wensen overlaat [13, 43]. Daarom gaan we verder met de volgende vorm van analyse:
kwantitatieve analyse.
1.3.3
Kwantitatieve analyse
De grens tussen technische en kwantitatieve analyse is een grijs gebied. Over het algemeen genomen
gebruikt men bij kwantitatieve analyse methoden uit de statistiek om iets te zeggen over de prijs van
een aandeel of ander financieel product. Er wordt bijna uitsluitend gebruik gemaakt van historische
prijsdata. Wiskundige modellen dienen hierbij als ondersteuning om de beweging van het aandeel te
begrijpen. Dit is handig, aangezien handelscomputers slechts in staat zijn om cijfers te verwerken.
In dit profielwerkstuk zal daarom uitsluitend gebruik worden gemaakt van kwantitatieve analyse.
Als basis voor de meeste modellen wordt het standpunt ingenomen dat de bewegingen van de koers
1 Zie
voor een overzicht van gebruikte notaties bijlage A
10
van een aandeel op de korte termijn geheel willekeurig zijn. Door historische data te analyseren kan
echter wel een uitspraak worden gedaan over de kansen behorend bij de prijsveranderingen. Om
iets te begrijpen van kwantitatieve analyse is het belangrijk om te kijken hoe we aandelenkoersen
kunnen modelleren. Bij kwantitatieve analyse wordt immers gebruik gemaakt van modellen om
het koersverloop van aandelen te analyseren. Daarom wordt in het volgende hoofdstuk geprobeerd
een wiskundige benadering van een aandelenkoers te vinden.
11
Hoofdstuk 2
Financi¨
ele wiskunde I
2.1
2.1.1
Modellen voor het verloop van koersen
Het binominale model
Voor het modelleren van aandelen gaan we ervan uit dat prijzen van aandelen een zekere willekeurigheid bevatten. Dat betekent niet direct dat we geenszins in staat zijn om aandelenprijzen te
modelleren, maar dat het moet gebeuren vanuit het oogpunt van de statistiek en kansberekening.
Met het uitgangspunt dat een aandeel een willekeurig pad, ook wel random walk, volgt, kunnen
we ons eerste simpele model opstellen. Hoewel dit model de werkelijkheid niet heel realistisch beschrijft, is dit een eerste stap richting een juiste benadering. We beginnen met een bedrag van $100.
Zie dit als de prijs van een aandeel. Vervolgens gooien we met een munt. Wanneer je kop gooit
vermenigvuldig je het bedrag met 1.01.1 Wanneer je munt gooit vermenigvuldig je het bedrag met
0.99. Gooi nu de munt weer op en vermenigvuldig het nieuwe bedrag met 1.01 of 0.99. Er zijn nu
vier mogelijkheden voor het uiteindelijke bedrag: 1.012 × 100, 1.01 × 0.99 × 100 = 0.99 × 1.01 × 100
en 0.992 × 100. Wanneer je deze stappen vaker herhaalt krijg je een willekeurig pad dat al redelijk
lijkt op dat van een aandeel. Een specifiek experiment is weergeven in figuur 2.1.
We hebben hier bewust gekozen ons bedrag te vermenigvuldigen met een vaste factor. In
plaats daarvan hadden we er ook voor kunnen kiezen om er een vaste hoeveelheid bij op te tellen
of vanaf te trekken. Dit is een zeer belangrijk aspect van de koers van financi¨ele producten; op
het moment dat de prijs van een aandeel hoger wordt stijgt ook de grootte van de dagelijkse
prijsveranderingen. De prijsveranderingen blijven proportioneel met de hoogte van de prijs van
het aandeel. Daarnaast kan in dit gekozen model de aandelenprijs niet negatief worden, net als bij
echte aandelenprijzen. Wanneer we een vermenigvuldigingsmodel gebruiken krijgen we een goede
benadering van een zogeheten lognormale random walk, ook wel meetkundige rij genoemd.
Wanneer we een optelregel gebruiken krijgen we een benadering van een normale random walk
of rekenkundige rij.
Hoewel de bovengenoemde eigenschappen kloppend zijn, zit er ´e´en groot nadeel aan deze modelmatige benadering van aandelenkoersen: het model stelt dat het aandeel of omhoog, of omlaag
kan gaan met een vaste verhouding. Er zijn dus slechts twee mogelijkheden voor de prijs van
‘morgen’. Daarom wordt dit model ook wel het binominale model genoemd. Dit is overduidelijk
onrealistisch.
2.1.2
Rendement en volatiliteit
Wanneer je ergens in investeert, verwacht je natuurlijk dat het in waarde toeneemt, zo ook bij
aandelen. Deze extra waarde noemen we rendement of return. Met het woord rendement wordt de
procentuele groei van de waarde van je aandeel bedoeld, samen met eventueel ontvangen dividenden
1 Alle getallen zullen vanaf hier in de Amerikaanse notatie gegeven worden, dat wil zeggen dat een punt wordt
gebruikt om de decimalen van het getal te scheiden.
12
120
115
110
105
100
95
Aantal keer gooien
90
0
10
20
30
40
50
60
70
80
90
100
Figuur 2.1: Een simpele simulatie van een aandelenkoers
over een bepaalde periode:
Rendement =
Verandering in waarde aandeel + ontvangen dividenden
Originele waarde aandeel
Het is belangrijk om onderscheid te maken tussen procentuele of relatieve groei, en absolute groei.
Stel, we kunnen investeren in twee aandelen die beiden $10 per jaar in waarde toenemen. Aandeel
A heeft een waarde van $100 en aandeel B heeft een waarde van $1000. Aandeel A is dan duidelijk
een betere investering. Na ´e´en jaar is aandeel A $110 waard en aandeel B $1010. Beide zijn
gestegen met $10, maar aandeel A is toegenomen met 10% en aandeel B met slechts 1%. Als je
$1000 hebt om te investeren kun je beter tien aandelen A kopen dan ´e´en aandeel B.
Dit voorbeeld toont ons dat we bij het onderzoeken van koersen de nadruk moeten leggen op
rendementen. De absolute verandering van de prijs is namelijk vele malen minder relevant dan de
relatieve verandering van de koers. Om de rendementen van verschillende aandelen in te schatten
moeten we bepalen hoeveel onzekerheid er aanwezig is in de waarde van de effecten. Later pogen
we rendementen en hun onzekerheid in een beter model voor de prijs van aandelen te vatten.
In figuur 2.2 zien we het koersverloop van Goldman Sachs (GS) van september 2012 tot september 2013 [66]. Dit is een typische plot van een financieel instrument. Het aandeel laat over deze
periode een opwaartse trend zien, maar dit is niet per definitie gegarandeerd. De onvoorspelbaarheid van het koersverloop is een belangrijk kenmerk van financi¨ele producten. Omdat er zoveel
willekeur in de prijs zit, moet elk model gebaseerd worden op toeval en kansberekening.
Aangezien we eerder al hebben geconcludeerd dat de rendementen belangrijker zijn dan de
absolute waarde van aandelenprijzen, kijken we nu hoe we deze rendementen kunnen berekenen.
Als we de prijs van het aandeel op de ide dag noteren met Si , dan wordt het rendement van dag i
tot dag i + 1 gegeven door:
Si+1 − Si
= Ri
Si
Hierbij negeren de eventuele dividenden die op aandelen worden uitbetaald. Het gemiddelde van
de rendementen wordt dan gegeven door:
R=
M
1 X
Ri
M i=1
13
170
160
150
140
130
120
110
100
03−Sep−2012
02−Jan−2013
03−May−2013
01−Sep−2013
Figuur 2.2: Goldman Sachs Group Inc. van september 2012 tot september 2013
De standaarddeviatie wordt gebruikt om aan te geven hoe de waarden rond het gemiddelde verspreid zijn. Deze wordt als volgt berekend:
v
u
n
u 1 X
(xi − x)2
σ=t
n − 1 i=1
Hierin is n het aantal waarden, xi de waarde van een getal in de reeks, en x het gemiddelde van
de waarden.
De standaarddeviatie van rendementen wordt ook wel de volatiliteit genoemd, en deze geeft de
bewegelijkheid van een aandeel aan. De standaarddeviatie van de verzameling rendementen wordt
nu dus gegeven door
v
u
M
u 1 X
σ=t
(Ri − R)2
M − 1 i=1
waarin M het aantal rendementen in de verzameling is (eentje minder dan het aantal prijzen,
aangezien het rendement bestaat uit het verschil tussen twee prijzen). Hoe hoger de volatiliteit,
hoe bewegelijker het aandeel. Hier komen we later op terug. Wanneer we deze formules gebruiken
komen we voor het aandeel GS uit op een gemiddeld rendement van 0.0015 en een standaarddeviatie
van 0.0153 per dag. De standaarddeviatie is vele malen groter dan het gemiddelde rendement
(σ > R). Dit is typerend voor financi¨ele producten op de korte termijn. Van dag tot dag is er
vooral ruis waarneembaar. Het kan soms maanden duren voordat je een trend kunt waarnemen.
14
Rendementen Goldman
Normaalverdeling
30
25
Dichtheid
20
15
10
5
0
−0.06
−0.04
−0.02
0
Rendement
0.02
0.04
0.06
Figuur 2.3: Histogram van de rendementen van Goldman Sachs Group Inc. en normale verdeling
2.1.3
Het normale model
De normale verdeling
In figuur 2.3 is een histogram weergeven van de rendementen van Goldman Sachs Inc. Geplot in
dezelfde figuur is de functie van de normale verdeling2
1 x−µ 2
1
√ e− 2 ( σ )
σ 2π
waarbij σ de standaarddeviatie is en µ het gemiddelde van de verdeling.
De verdelingen zijn niet identiek, maar ze zijn min of meer hetzelfde. Wanneer we geloven dat de
empirische rendementen genoeg lijken op de normale verdeling, en deze dus een goede benadering
vormt van de verdeling van de rendementen, kunnen we dit verwerken tot een nieuw model. Als
we nu de rendementen schrijven als een combinatie van een gemiddelde groei en een willekeurige
variabele φ krijgen we het volgende:
Ri =
Si+1 − Si
= gemiddelde + standaarddeviatie × φ
Si
Hierin is φ een willekeurige variabele, getrokken uit de standaardnormale verdeling met µ = 0 en
σ = 1.
Dit vormt een goede basis voor een nieuw model waarin we groei over de lange tijd splitsen
van de willekeurigheid op de korte termijn. Daarnaast zijn er op deze manier van tijdsstap tot
tijdsstap oneidig veel mogelijke prijsveranderingen, met elk hun eigen kans van voorkomen. Dit
is al vele malen beter dan het binominale model, waarin slechts twee prijsveranderingen mogelijk
waren.
Tijdsschaal niet-willekeurige deel
Tot nu toe hebben we alleen gekeken naar metingsintervallen van ´e´en dag, maar wat gebeurt er
met onze rendementen en standaarddeviatie als we kijken naar intervallen van bijvoorbeeld een
uur of een week? Hoe veranderen deze als gevolg van veranderingen van de tijdsduur?
2 De normale verdeling is een klokvormige verdeling, met op de horizontale as het gemiddelde µ en de standaarddeviatie σ van dit gemiddelde, en op de verticale as de kans op een bepaalde waarde x. De normale verdeling is een
continue kansverdeling, wat wil zeggen dat het aantal mogelijke waarden binnen deze kansverdeling oneindig is. De
verdeling is afhankelijk van de µ en de σ van de waarden binnen de verzameling. De totale oppervlakte onder de
normaalkromme is altijd 1.
15
We noemen de tijdsstap δt. Het gemiddelde van de rendementen schaalt evenredig met de
grootte van de tijdsstap. Dit betekent dat hoe groter de tijd tussen de meetmomenten is, des te
meer de prijs gemiddeld zal zijn bewogen, en des te groter (of kleiner) het rendement zal zijn. We
kunnen schrijven:
gemiddelde rendement = µ δt
Dit is dezelfde µ die we eerder hebben gezien en die het gemiddelde jaarlijkse rendement voorstelt,
ook wel drift genoemd. We nemen aan dat µ constant blijft.
Wanneer we de afwijkingen van het gemiddelde op de korte termijn (dus σ × φ) even buiten
beschouwing laten, zien we dat het rendement gelijk is aan µ maal δt. In formules:
Si+1 − Si
= µ δt
Si
Dit kunnen we omschrijven tot:
Si+1 = Si (1 + µ δt)
Wanneer het aandeel begint op S0 , met t = 0, dan geldt na ´e´en tijdsstap t = δt dat
S1 = S0 (1 + µ δt)
en na twee tijdsstappen t = 2δt dat
S2 = S1 (1 + µ δt) = S0 (1 + µ δt)2
en na M tijdsstappen t = M δt = T dat:
SM = S0 (1 + µ δt)M
Wanneer de we toewerken naar een continu model en de tijdsstappen δt naar nul gaan met de
totale tijd T constant is dit:
SM = S0 (1 + µ δt)M
Hierin is δt een breuk die steeds kleiner wordt, als er meer tijd verstrijkt.
Vanwege deze mathematische definitie van ex :
x n
ex = lim 1 +
n→∞
n
Kunnen we dit als volgt schrijven:
SM = S0 (1 + µ δt)M = S0 eM ln(1+µ
δt)
≈ S0 eµM δt = S0 eµT
Dit is een belangrijke observatie aangezien een aandeel zonder de aanwezigheid van het willekeurige deel (σ × φ) dus een eponenti¨ele groei ondervindt. Nu we dit weten is het zaak om de
willekeurige term, die we zojuist buiten beschouwing hebben gelaten, mee te schalen. Hoe gaat dit
in zijn werk?
Tijdsschaal willekeurige deel
Wanneer we terugkijken naar de functie voor de standaarddeviatie van de rendementen
v
u
M
u 1 X
σ=t
(Ri − R)2
M − 1 i=1
en we kijken naar een vast tijdsbestek T dan zien we duidelijk dat als we onze tijdsstappen δt
tussen de rendementen kleiner maken, M (het aantal rendementen) omgekeerd evenredig groeit.
Dit betekent dat de variantie, gegeven door (Ri − R)2 lineair schaalt met de tijd. Hierdoor schaalt
de standaarddeviatie met de wortel van de tijd. De standaarddeviatie is immers de wortel van de
variantie. Dit betekent dat over een periode T geldt
1
standaarddeviatie = σ δt 2
16
Wanneer we de niet-willekeurige component samenvoegen met de willekeurige component voor de
rendementen kunnen we het volgende samenstellen:
Ri =
1
Si+1 − Si
= µ δt + σφ δt 2
Si
Hierin is φ een willekeurige component, getrokken uit een normale verdeling met µ = 0 en σ = 1.
Hieruit volgt:
1
Si+1 − Si = µSi δt + σSi φ δt 2
Het linker gedeelte is de verandering van de prijs van i naar i + 1 en het rechter gedeelte is hier
ons ‘model’. Het is belangrijk om te beseffen dat we niet in staat zijn om de prijs van morgen te
voorspellen. We geven slechts een kansverdeling van de mogelijke prijzen op de volgende tijdsstap.
We zien met dit model ook direct waarom de volatiliteit domineert op de korte termijn. Aangezien
1
σ maal δt 2 gaat en µ maal δt, zal voor een zeer kleine waarde van δt de volatiliteit belangrijker zijn
dan de drift (µ). De wortel van een dusdanig klein getal is namelijk altijd groter dan het getal zelf.
Echter, wanneer de tijdsstappen groter worden, krijgt de drift de overhand en wordt de volatiliteit
minder belangrijk. Dit is direct zichtbaar in de aandelenkoersen; op de lange termijn is er vaak
een trend waarneembaar terwijl de prijs zich op de korte termijn willekeuriger lijkt te bewegen.
2.2
Stochastiche calculus
Aangezien ons nieuwe model gebaseerd is op kansberekening, krijgen we te maken met stochastiche
wiskunde. Dit is het onderdeel van de wiskunde dat zich bezighoudt met willekeurige processen
en functies. Deze tak van de wiskunde zal in de loop van dit hoofdstuk behandeld worden.
2.2.1
Brownse beweging
De willekeurige beweging uit ons huidige model kan ook wel een Brownse beweging genoemd
worden. Deze heeft een aantal bijzondere eigenschappen waar we zometeen op terug zullen komen.
Het discrete model
We hebben net gezien:
1
Si+1 − Si = µSi δt + σSi φ δt 2
Vooralsnog is dit een discreet model, dat wil zeggen dat het alleen voor beperkte waarden van de
tijdsstap δt geldt. We kunnen schrijven:
1
∆S = µSδt + σSφ δt 2
De verandering in S over een kleine tijdsstap δt wordt dus gegeven door het verwachte rendement,
de drift (µ), keer de tijd (δt) plus een stochastiche component. Hierbij is φ nog steeds dezelfde
willekeurige component, getrokken uit een normale verdeling met µ = 0 en σ = 1.
Met deze vergelijking kunnen we een zogenaamde Monte Carlo simulatie uitvoeren om het
prijsverloop van een aandeel te simuleren. We starten met een prijs van 100. Vervolgens voeren we
deze waarde in in onze formule. Hieruit volgt een nieuwe waarde voor S op de volgende tijdsstap,
die we weer invoeren in de formule. Wanneer we dit N keer doen, krijgen we een willekeurige
grafiek zoals figuur 2.4, voor een arbitraire waarde van de drift en volatiliteit. Zoals te zien begint
dit al aardig op het koersverloop van een aandeel te lijken.
Hoewel we met behulp van dit model het verloop van een aandeel redelijk kunnen simuleren, is
het lastig om er berekeningen mee uit te voeren. Het is immers een discreet proces. Om er zinvolle
berekeningen mee uit te kunnen voeren moeten we toewerken naar een continue functie. Dat wil
zeggen dat onze tijdsstap naar de limiet nul gaat.
17
106
105
104
103
S
102
101
100
99
98
97
Simulatie 1
Simulatie 2
Simulatie 3
0
100
200
300
400
500
N
600
700
800
900
1000
Figuur 2.4: Drie Monte Carlo simulaties van een aandelenpad met N = 1000 en S0 = 100
Eigenschappen van het continue Brownse model
Allereerst moeten we stilstaan bij een paar belangrijke mathematische eigenschappen van ons
model. Wanneer we het niet-willekeurige gedeelte buiten beschouwing laten en ons even focussen
op het stochastische (willekeurige) gedeelte kunnen we de volgende eigenschappen waarnemen:
1. Markov
Ons model is alleen afhankelijk van de vorige waarde van S. Alle eerdere waarden van S tot
aan Si zijn irrelevant voor de waarde van Si+1 . Dit noemen het we Markov kenmerk. Dit
komt overeen met het geloof van technische analisten dat alle relevante informatie van een
aandeel in de prijs van nu zit verwerkt, en oudere prijzen dus van geen enkel belang zijn.
2. Martingaal
De verwachte prijs van het aandeel op het volgende moment is gelijk aan de prijs van het
aandeel op dit moment. Oftewel: E[Si+1 ] = Si Als de verwachte prijs anders zou zijn, dan
zou de prijs immers nu al veranderen.
3. Kwadratische variantie schaalt lineair met tijd
1
Laten we ons stochastische onderdeel φδt 2 tijdelijk de functie G(t) noemen. Hierdoor is
1
G(t) = φδt 2 waarbij φ nog steeds een variabele is getrokken uit een normale verdeling,
N (0,1). Wanneer we de tijdsstap δt bekijken kunnen we deze steeds kleiner maken door een
hulpvariabele n te nemen. We hebben:
r
δt
G(t) = n × φ
n
We nemen voor n een grote waarde. δt wordt door een groot getal gedeeld, en is dus klein.
G(t) wordt hierbij als het ware opgebouwd uit de som van een hoop verschillende kansvariabelen getrokken uit de normale verdeling. Door deze grote hoeveelheid gaat gelden dat
E[G(t)] = 0 vanwege het feit dat de µ van φ gelijk is aan 0 (deze is immers getrokken uit
N (0,1)). Daarnaast is belangrijk dat de kwadratische variantie evenredig schaalt met de
tijd. We kunnen stellen dat E[G(t)2 ] = t. Dit is duidelijk te zien als we de functie G(t)
kwadrateren. Dit geeft G(t)2 = φ2 δt. Zoals eerder vermeld, is φ een variabele getrokken uit
de normale verdeling N (0,1). De verwachte waarde voor φ2 is dus 1.
18
Het continue Brownse model
1
Wanneer we voor δt de limiet nul bereiken noemen we φ δt 2 een Wiener proces. We kunnen het
1
dan schrijven als dW . Dit is niets anders dan φ δt 2 in een omgeving waar δt bijna nul is. Er geldt
2
nog steeds dat E[dW ] = 0 en E[dW ] = dt. Als we ons model op een Wiener manier opschrijven
in een omgeving waarin de limiet naar nul gaat krijgen we de volgende differentiaalvergelijking:
dS = µSdt + σSdW
(2.1)
Dit is een van de belangrijkste formules uit de kwantitatieve analyse en vormt de basis voor vele
theorie¨en. Stochastische differentiaalvergelijkingen zoals deze kunnen worden bewerkt door middel
van Itˆo’s Lemma, een theorie die hierna wordt uitgelegd.
2.2.2
Itˆ
o’s Lemma
Omdat we te maken hebben met stochastische calculus gelden er andere regels dan voor normale
calculus. Een van de belangrijkste hulpmiddelen in de stochastische calculus is Itˆo’s Lemma [7, 37,
64, 65]. Dit wordt hieronder verder toegelicht.
Stel we hebben een functie g(x) met ´e´en variabele, dan is de Taylorreeks3 van deze functie
g(x + dx) = g(x) +
1 d2 g 2 1 d3 g 3
dg
dx +
dx + · · ·
dx +
dx
2 dx2
6 dx3
dus:
dg
1 d2 g 2 1 d3 g 3
dx +
dx +
dx + · · ·
dx
2 dx2
6 dx3
En voor een functie g(x,y) met twee variabelen is de Taylor serie:
∆g(x) =
∆g(x,y) =
dg
dg
1 d2 g 2
d2 g
1 d2 g 2
dx +
dy +
dx +
dx dy +
dy + · · ·
2
dx
dy
2 dx
dx dy
2 dy 2
Een Itˆo functie bestaat uit een functie a en b welke afhangen van (x,t), waarin een Wiener proces
verwerkt zit, dus:
dx = a(x,t) dt + b(x,t) dW
Of zonder argumenten:
dx = a dt + b dW
f (x,t) is een functie afhankelijk van dit Itˆo proces en t. Dan kunnen we met behulp van de
Taylorreeks schrijven:
df =
df
df
1 d2 f 2
d2 f
1 d2 f 2
dx + dt +
dx +
dx dt +
dt
2
dx
dt
2 dx
dx dt
2 dt2
Invullen voor dx levert:
df =
df
df
1 d2 f 2 2
d2 f
1 d2 f 2
2
2
(a dt + b dW ) + dt +
(a
dt
+
ab
dW
dt
+
b
dW
)
+
(a
dt
+
b
dW
)dt
+
dt
dx
dt
2 dx2
dx dt
2 dt2
(2.2)
Itˆo maakt gebruik van de een aantal eerdergenoemde kenmerken:
• De kwadratische variantie schaalt lineair met de tijd. Hierbij geldt dat E[dW 2 ] = dt. Volgens
Itˆo geldt dat in de limiet naar nul dW 2 → dt.
• Aangezien limd→0 dt, wordt dt2 verwaarloosbaar klein en geldt dt2 → 0.
• Omdat E[dW ] = 0 geldt dat het gemiddelde E[dW dt] = 0.
• De variantie van dW dt is E[dW 2 dt2 ] = E[dtdt2 ] = E[dt3 ]. Volgens eerder genoemde redenen
geldt dt3 → 0 dus dW dt → 0.
3 de
Taylorreeks is een wiskundig hulpmiddel om een benadering van een functie op te stellen.
19
dW
dt
dW
dt
0
dt
0
0
In de bovenstaande tabel zijn de regels van Itˆo’s Lemma overzichtelijk samengevat. Vergelijking
2.2 wordt, als we deze kenmerken meenemen, dus:
df =
df
df
1 d2 f 2
(b dt)
(a dt + b dW ) + dt +
dx
dt
2 dx2
Hieruit volgt de algemene definitie voor Itˆo’s Lemma:
df
df
df
1 d2 f 2
df =
b
dt +
+
a+
b dW
dt dx
2 dx2
dx
(2.3)
Dus een functie als
k(S) = ln(S)
met de differentiaalvergelijking met Wienerproces
dS = µSdt + σSdW
kunnen we met behulp van Itˆ
o’s Lemma omschrijven. De a van Itˆo’s Lemma is in dit geval dus
µS, en de b is σS. Verder geldt:
•
df
dt
= 0, aangezien de variabele t niet voorkomt.
•
df
dx
=
•
d2 f
dx2
1
S,
=
aangezien de afgeleide van ln(x) = x1 .
1
S2 ,
aangezien de tweede afgeleide van ln(x) =
1
x2 .
Deze regels toepassend, krijgen we:
1 2 2
1
1
σ S dt + σS dW
dk(S) = 0 + µS −
S
2S 2
S
Na het wegstrepen van een aantal keer S, volgt:
1
dk(S) = µ − σ 2 dt + σ dW
2
Integreren levert:
k(S) =
1
µ − σ 2 t + σ (W (t) − W (0))
2
Aangezien
k(S) = ln(S)
geldt dat de orspronkelijke functie S(t) wordt gegeven door:
1 2
S(t) = e(µ− 2 σ )t+σ(W (t)−W (0))
We hebben hiermee de oorspronkelijke differentiaalvergelijking van het continue model omgeschreven tot een bruikbare functie. We zullen deze methode later weer gebruiken om soortgelijke functies
op te stellen.
20
Hoofdstuk 3
Algorithmisch handelen I
3.1
Hedging
Nu we een redelijk goed werkende formule hebben om het verloop van de prijs van een aandeel
weer te geven, wordt het tijd om deze kennis te gebruiken om winst te maken. Ons doel is
een zo hoog mogelijk rendement met een zo laag mogelijk risico te behalen. Een goede manier
om dit te doen is door middel van het zogenaamde ‘hedging’. Dit principe houdt in dat je het
risico dat voortkomt uit het bezitten van een bepaald product afdekt met het bezitten van een
ander product1 . Hiervoor zijn in het simpelste voorbeeld twee aandelen nodig met een negatieve
correlatie. Een (erg) eenvoudig voorbeeld hiervan kan optreden bij de koersen van een bedrijf dat
zonnebrand produceert en een bedrijf dat paraplu’s produceert. Als in ons voorbeeld even geldt dat
altijd regent, ´
of altijd zonnig is, dan zouden de koersen van de bedrijven tegengestelde bewegingen
maken. Dit wordt veroorzaakt door het feit dat als de zon schijnt, mensen wel zonnebrand nodig
hebben, maar geen paraplu’s. Bij regen treedt dit effect omgekeerd op. Jammer genoeg is de
echte wereld niet zo simpel, dus moeten we actief op zoek naar twee aandelen met een negatieve
correlatie. De correlatie tussen twee aandelen wordt berekend met Pearsons correlatieco¨effici¨ent,
deze is als volgt:
Pn
¯
¯
i=1 (Xi − X)(Yi − Y )
qP
ρ = qP
n
n
¯ 2
¯ 2
i=1 (Xi − X)
i=1 (Yi − Y )
Oftewel:
Pn
ρ=
i
= 1(S1i − S¯1 )(S2i − S¯2 )
σS1 σS2
Als we eenmaal twee aandelen met een negatieve correlatieco¨effici¨ent hebben gevonden, zullen
hun koersen er bijvoorbeeld zo uitzien als in figuur 3.1. Dit zogeheten ‘delta neutral’ portfolio
wordt in de praktijk echter vaker geconstrueerd door long en short te gaan in twee aandelen die
juist sterk positief gecorreleerd zijn.
Het verschil in prijs tussen de twee aandelen noemt men de ‘spread’. Deze wordt gegeven door:
|S1 − S2 |
In de financi¨ele wereld wordt echter vaak gebruikt
|ln(S1 ) − ln(S2 )|
aangezien (zoals eerder besproken) de prijsveranderingen van een aandeel proportioneel zijn met
het huidige prijsniveau. Door het logaritme te nemen wordt het berekenen van de spread van twee
aandelen met een zeer verschillend prijsniveau vergemakkelijkt.
1 We hebben het hier specifiek over delta hedging, waarbij de waardeverandering van de gehele portfolio tot nul
wordt gereduceerd.
21
SPY
SH
1.5
1.25
1
0.75
0.5
01−Jan−2008
01−Jan−2010
01−Jan−2012
Figuur 3.1: Genormaliseerde koersen van SPDR S&P 500 (SPY) en ProShares Short S&P500
(SH)
3.2
Pairs trading
Als we nu twee aandelen gevonden hebben met een correlatie ρ, zal de spread van de twee aandelen mogelijk terugkeren naar een bepaald historisch gemiddelde. Dit gedrag noemen we meanreverting. Bij pairs trading probeert men gebruik te maken van eventueel mean-reverting gedrag
van aandelen. Stel nu dat we twee aandelen hebben, aandeel A en aandeel B, waarvan eerder
is vastgesteld dat ze positief gecorreleerd zijn en mean-reverting. De gemiddelde spread is ook
historisch bepaald. Als de prijzen van A en B nu op een bepaald moment verder uit elkaar liggen,
doordat de prijs van A gestegen is en de prijs van B is gedaald, en de spread dus groter is dan
de gemiddelde spread, kan er winst behaald worden. Men weet dat de spread zal terugkeren naar
het gemiddelde, dus dat de prijs van aandeel A zal dalen ten opzichte van de prijs van aandeel
B. Omdat deze strategie markt-neutraal is, maakt het niet uit in welke richting de markt zich
beweegt, alleen de onderlinge beweging van de twee aandelen is van belang. Een pairs trader zou
op dit moment dus short gaan op aandeel A, en long gaan op aandeel B. Als de prijs van aandeel
A daalde, zou hij winst maken, en als de prijs van aandeel B steeg, zou hij ook winst maken.
In afbeelding 3.2 is duidelijk te zien dat de correlatie van aandelen niet altijd constant hoeft te
blijven. Dit kan een probleem opleveren bij pairs trading.
22
Figuur 3.2: JCJ Index: door opties ge¨ımpliceerde correlatie van aandelen in de S&P 500 Index
23
Hoofdstuk 4
Financi¨
ele wiskunde II
4.1
Spread modellering
Het eerder genoemde pairs trading heeft dus een spread nodig die mean-reverting is. Een correlatie
tussen de aandelen is echter niet voldoende om vast te stellen dat de spread inderdaad meanreverting is, zo wordt hieronder bewezen.
Stel we hebben twee aandelen waarvan de rendementen gecorreleerd zijn met ρ, waarvoor geldt
dat −1 < ρ < 1. Voor deze aandelen gaan we weer uit van het continue model zoals beschreven in
hoofdstuk 2, Financi¨ele wiskunde I:
dS1 = µ1 S1 dt + σ1 S1 dW1
dS2 = µ2 S2 dt + σ2 S2 dW2
Stel we hebben een functie f (S1 ,S2 ) dan kunnen we via Taylor schrijven:
df =
df
d2 f
df
1 d2 f 2
1 d2 f 2
dS
+
dS
dS1 +
dS2 +
dS
dS
+
1
2
dS1
dS2
2 dS12 1 dS1 dS2
2 dS22 2
Invullen voor S1 en S2 en delen met dtλ met λ > 1 weglatend, aangezien deze verwaarloosbaar
klein worden, levert:
df = µ1 S1
df
df
df
df
dt + σ1 S1
dW1 + µ2 S2
dt + σ2 S2
dW2
dS1
dS1
dS2
dS2
1
d2 f
d2 f
1
d2 f
+ σ12 S12 2 dW12 + σ1 σ2 S1 S2
dW1 dW2 + σ22 S22 2 dW22
2
dS1
dS1 dS2
2
dS2
Er gelden nog steeds de volgende ˆIto regels:
E[dWi ] = 0 en E[dWi2 ] = dt
De Wiener processen zijn echter gecorreleerd, dus er geldt:
E[dW1 dW2 ] = ρdt
Wanneer we dit invullen krijgen we:
df = µ1 S1
df
df
df
df
dt + σ1 S1
dW1 + µ2 S2
dt + σ2 S2
dW2
dS1
dS1
dS2
dS2
1
d2 f
d2 f
1
d2 f
+ σ12 S12 2 dt + σ1 σ2 S1 S2
ρdt + σ22 S22 2 dt
2
dS1
dS1 dS2
2
dS2
24
Er geldt dus:
df =
df
d2 f
df
1 2 2 d2 f
1 2 2 d2 f
µ1 S1
+ µ2 S2
+ σ1 S1 2 + σ1 σ2 S1 S2
ρ + σ2 S2 2 dt
dS1
dS2
2
dS1
dS1 dS2
2
dS2
df
df
+ σ1 S1
dW1 + σ2 S2
dW2
dS1
dS2
Wanneer we voor de spread de volgende functie hebben
ξ = ln(S1 ) − ln(S2 )
met
•
df
dS1
=
•
df
dS2
is dus ook
•
d2 f
dS12
= − S12 , aangezien de tweede afgeleide van ln(x) = − x12 .
•
2
d f
dS22
•
2
1
S1 ,
aangezien de afgeleide van ln(x) = x1 .
1
S2
1
is dus ook − S12
2
d f
dS1 dS2
= 0, aangezien ....
dan levert dit op:
dξ =
µ1 S1
1
1
1
1
1
1
− µ2 S2
− σ12 S12 2 + σ1 σ2 S1 S2 × 0 × ρ + σ22 S22 2
S1
S2
2
S1
2
S2
+ σ1 S1
dt
1
1
dW1 − σ2 S2 dW2
S1
S2
dt, σ1 en σ2 buiten haakjes halen geeft:
1
1
dξ = µ1 − µ2 − σ12 + σ22 dt + σ1 dW1 − σ2 dW2
2
2
En nu integreren we, zodat we de oorspronkelijke functie hebben:
1 2 1 2
ξ(t) = µ1 − µ2 − σ1 + σ2 t + σ1 (W1 (t) − W1 (0)) − σ2 (W2 (t) − W2 (0))
2
2
Als de correlatie ρ tussen de Wiener processen niet exact 1 of -1 is, is dit weer een Brownse beweging (willekeurige beweging). We kunnen nu concluderen dat twee aandelen die elk een Brownse
beweging volgen en gecorreleerde rendementen hebben een spread opleveren die niet met zekerheid
mean-reverting is, maar willekeurig. Voor de pairs trading strategie is het echter essentieel dat de
spread mean-reverting is. Dit bewijs laat ons zien dat je met twee gecorreleerde aandelen via pairs
trading geen gegarandeerde winst zult maken.
25
Hoofdstuk 5
Algorithmisch handelen II
5.1
Zoektocht naar geschikte trading pairs
We hebben net aangetoond dat er met twee gecorreleerde aandelen via pairs trading geen gegarandeerde winst te behalen valt, aangezien gecorreleerde aandelen niet per se mean-reverting zijn. Een
strategie waar wel gegarandeerde winst mee behaald kan worden, is arbitrage. Arbitrage is het het
tegelijkertijd kopen en verkopen van een aandeel om zo ‘risicovrije’ winst te behalen. De simpelste
vorm van arbitrage is mogelijk als hetzelfde effect wordt verhandeld op twee verschillende beurzen.
Wanneer de prijs op de ene locatie verschilt van die op de andere locatie, kan er een risicoloze winst
worden gemaakt door het product tegelijkertijd op de plek met de lagere prijs te kopen en op de
plek met de hogere prijs te verkopen, aangezien je weet dat de prijzen vanzelf weer gelijk zullen
worden. In praktijk zijn er door de globalisatie en automatisering van de markten echter nog maar
weinig van dit soort mogelijkheden. Het maakt huidige investeerders niet uit of ze het product van
plek A of plek B kopen, alles gaat immers elektronisch. Er zal daarom tussen de locatiesmweinig
verschil in vraag en aanbod bestaan, de drijfveer is achter deze prijsverschillen.
Deze simpele vorm van arbitrage is in de praktijk dus niet haalbaar, en eerder is al gebleken
dat pairs trading met gecorreleerde aandelen ook geen winstgarantie biedt. Dit wordt veroorzaakt
door het feit dat je er niet vanuit kunt gaan dat de spread van de twee aandelen het benodigde
mean-reverting gedrag vertoont. Daarnaast verandert de correlatie tussen de aandelen voortdurend
vanwege fundamentele redenen. Voor een succesvolle strategie moeten we dus op zoek naar een
koppel van producten waarvan we redelijkerwijs kunnen aannemen dat de spread altijd meanreverting zal zijn. Een manier om dit te garanderen is door te handelen in producten die in
wezen exact hetzelfde zijn, dus derivaten met hetzelfde onderliggende product. Je weet dan met
zekerheid dat een eventuele spread mean-reverting zal zijn aangezien de onderliggende waarde van
de producten hetzelfde is. Deze zijn echter erg lastig te vinden.
Om deze strategie uit te kunnen voeren, moeten we op zoek naar een andere vorm van dit
principe. In dit profielwerkstuk opperen wij een door onszelf bedachte variant van deze arbitragestrategie die slechts sinds enkele jaren mogelijk is geworden, de ETP/Underlying arbitage. Zoals
eerder uiteengezet is een ETP, Exchange-Traded Product, (in ons geval een ETN) een belegginsproduct waarbij de koper wordt blootgesteld aan de waardeverandering van de door het ETP al
dan niet direct gehouden producten. Het doel van het ETP is dus om net zo van koers te veranderen als zijn benchmark. Wanneer de koers van het ETP afwijkt van de waarde van de producten
die het bevat is er arbitrage mogelijk. Als bijvoorbeeld een graan ETF duurder is dan het graan
zelf, is er een spread aanwezig, en kan men long gaan in graan en short gaan in het ETF. Omdat
de producten in feite hetzelfde zijn zal de spread die is ontstaan weer verdwijnen, en dan kan er
winst worden behaald.
ETP’s bestaan echter omdat het voor consumenten vaak lastig is om de producten die ze bevatten aan te schaffen of te houden. Het bovengenoemde voorbeeld met graan illustreert dit. Het ETF
is makkelijk verhandelbaar, maar het is onhandig om graan te kopen of verkopen. Je krijgt dan te
maken met opslagkosten en verschillende kwaliteiten. Dit is vanuit het oogpunt van algorithmisch
handelen ongewenst. Ook ETP’s die bestaan uit zeer veel verschillende componenten zijn onbruikbaar. Voor een pairs trading strategie moet je dan simultaan handelen in een hoop verschillende
26
producten, en de kans dat er iets fout gaat omdat ´e´en van de producten niet tegelijkertijd met de
andere producten te verkrijgen is wordt dan groter.
De ETP’s die gebruikt worden voor deze strategie moeten dus bestaan uit enkele makkelijk
verhandelbare, gestandaardiseerde producten. De zogenaamde VIX ETF’s en ETN’s voldoen aan
deze criteria.
5.2
5.2.1
VIX ETP/Underlying arbitrage
De VIX Index
Simpel gezegd is de VIX Index een geannualiseerde waarde van
de geimpliceerde volatiliteit van een combinatie van korte termijn
opties op de S&P 500 index. Aandelenindexen, zoals de S&P 500
(SPX), worden berekend aan de hand van de prijzen van de onderliggende aandelen. De VIX Index is echter gebaseerd op opties in
plaats van aandelen, waarbij de prijs van iedere optie de marktverwachting van de toekomstige volatiliteit weergeeft. De prijs van opties is immers afhankelijk van de volatiliteit van het onderliggende
product (wanneer een hogere volatiliteit wordt verwacht zullen opties relatief duurder zijn). Om de VIX Index te berekenen worden
verschillende call- en putopties van huidige termijn en opties van
de volgende termijn gebruikt. De VIX geeft hiermee de 30-daagse
verwachte volatiliteit van de S&P 500 index aan, gestandaardiseerd
naar een periode van ´e´en jaar. Een waarde van de VIX Index van
20 betekent dus dat de S&P 500 over een periode van 30 dagen een
volatiliteit van 20% per annum verwacht. Over 30 dagen is dit dus
20%
√
.
12
Na de komst van de VIX Index zijn er verscheidene hierop gebaseerde derivaten op de markt gebracht. Hierdoor is het mogelijk
geworden om direct in verwachte volatiliteit te handelen. Dit is een
bijzonder concept aangezien volatiliteit op zichzelf niet tastbaar is.
Om in de VIX Index te kunnen handelen bestaan er futures op de
index (ticker VX). Daarnaast bestaan er ETF’s en ETN’s gebaseerd op deze futures. Voorbeelden hiervan zijn VXX, UVXY en
VXZ. Zie voor een duidelijk overzicht figuur 5.1.
Aandelen
S&P500 Index
Opties
Geïmpliceerde Volatiliteit
VIX Index
Futures
5.2.2
VX Futures
Een belangrijk derivaat dat is gebaseerd op de VIX Index, zijn de
CBOE VIX Futures. Hierbij geldt de VIX Index vanzelfsprekend
ETF’s / ETN’s
als onderliggende index van de futures. Anders dan bij futures op
grondstoffen vindt er bij de VIX Futures op het uitoefenmoment
geen aflevering van een daadwerkelijk product plaats. De VIX
Futures zijn ‘cash-settled’. Dat wil zeggen dat er alleen een afre- Figuur 5.1: Opbouw VIX
kening plaatsvindt op basis van de waarde van de onderliggende Index en afgeleide producten
VIX Index. Ieder VIX Futures contract heeft een vermenigvuldigingsfactor van $1000. Iedere verandering van $0.05 in de prijs van het contract zorgt dus voor
een winst of verlies van $50.
5.2.3
ETN’s
Een ETN (Exchange-Traded Note) lijkt qua principe erg op een ETF: het product is verhandelbaar
op een exchange en heeft als doel de investeerder exposure te bieden aan een verzameling van andere
producten die zijn opgenomen in een index. De wijze waarop dit gebeurt is echter verschillend.
Waar een ETF als het ware een aandeel is in een speciaal fonds dat de betreffende producten
bezit, is dit bij een ETN anders geregeld. Een ETN is een ongedekt schuldbewijs dat op een
27
beurs wordt verhandeld. De ‘lening’ van de investeerders aan de bank heeft een vaste waarde en
is bij de creatie van een ETN vastgelegd (aan de hand van de waarde van de referentie-index).
De bank die de ETN uitgeeft betaalt over deze lening geen rente of periodieke aflossingen. Zij
belooft echter om aan het einde van de looptijd van de ETN de waarde van de index terug te
betalen aan de houder van de ETN, de investeerder dus. Het is bij een ETN voor de bank dus niet
nodig om de daadwerkelijke effecten te bezitten, als de bank maar in staat is om aan het einde aan
haar verplichtingen te voldoen. Om te garanderen dat de koers van de ETN niet te ver af gaat
wijken van de referentie-index heeft de bank een ‘redemption / creation’ mechanisme opgesteld.
Hiermee kunnen institutionele beleggers de onderliggende producten van de index in grote blokken
omruilen voor ETN’s, en ETN’s omruilen voor onderliggende producten. Dit garandeert dat een
evetuele premium of discount van de ETN ten opzichte van de index na verloop van tijd teniet zal
worden gedaan. Bij een premium van de ETN ten opzichte van de onderliggende producten zullen
de beleggers de onderliggende producten omruilen voor ETN’s. Hierdoor neemt het aanbod van
de ETN’s toe en die van de onderliggende producten af. De prijzen zullen daardoor convergeren.
Wanneer er een discount is gebeurt het omgekeerde.
Short Term VIX Futures Index
iPath (Uitgever ETN)
Referentie VIX Futures
2e maand
Investeringen
Nominale waarde note
Schuld (Indexwaarde - Fees)
Referentie VIX Futures
1e maand
Indexwaarde
VXX ETN
Notes
Betaling
Notes
Futures
Futures
Notes
Barclays Bank PLC
Redemption / Creation
Exchange
Investeerders
Figuur 5.2: Schematisch overzicht opbouw VXX ETN
5.2.4
De VXX ETN
Een specifiek voorbeeld van zo’n product is de VXX ETN. De structuur is weergeven in figuur
5.2. In het geval van de VXX ETN wordt gepoogd exposure te cre¨eren aan een constante looptijd
van korte termijn VIX Index futures, welke de ge¨ımpliceerde volatiliteit van de S&P 500 index
weergeven op verschillende punten in de voorwaardse volatiliteitscurve. Om dit te bereiken wordt
op basis van de futures van de huidige en komende maand een nieuwe indexwaarde berekend, de
S&P 500 VIX Short-Term Futures Index TR (hierna STF Index, niet te verwarren met de VIX
Index), welke een investeringsstrategie simuleert op basis van een gewogen gemiddelde van een long
positie in VIX futures, opdat deze samen een constante looptijd hebben van 1 maand. Deze index
dient als referentie voor de waarde van de ETN.
28
Om een constante looptijd van 1 maand te cre¨eren wordt gebruik gemaakt van het zogeheten
‘rolling’. Wanneer je futures hebt die worden uitgeoefend in de maand augustus en je deze inruilt
voor futures die worden uitgeoefend in de maand september noemt men dit ‘rolling’: je rolt als
het ware je exposure door naar de volgende maand. De STF Index maakt dagelijks gebruik van
het rolling proces en ruilt iedere dag een deel van de futures van de huidige maand in voor die van
de volgende maand door deze te kopen en te verkopen. Stel, we nemen de expiratiedatum van de
alle futures op de eerste dag van de maand. Om een gemiddelde exposure van 1 maand te cre¨eren
zal de STF Index dus op 1 augustus volledig bestaan uit september futures, die op 1 september
verlopen. Op 1 september zal de index volledig bestaan uit oktober futures. Tussen 1 augustus
en 1 september bestaat de index uit een mix van september en oktober futures. Iedere dag na 1
augustus wordt een deel van de september futures verkocht en een gelijke nominale waarde aan
oktober futures gekocht. Deze hoeveelheid is evenredig met het aantal futures contracten van de
huidige maand op de vorige dag en omgekeerd evenredig met de lengte van de huidige roll periode.
Op deze manier wordt de initi¨ele positie in huidige maand contracten progressief verwisseld met een
positie in de volgende maand contracten gedurende de periode van ´e´en maand, totdat de volgende
roll periode begint en de oude volgende maand contracten de nieuwe huidige maand contracten
zijn geworden. Dit principe is makkelijk weer te geven in de volgende twee formules (met wf,1
als wegingsfactor van de eerste maands futures en wf,2 als wegingsfactor van de tweede maands
futures):
dr
wf,1 =
dt
dt − dr
ws,2 =
dt
Hierbij bedraagt dt het totale aantal werkdagen in de huidige roll periode, beginnend met en
inclusief de eerste CBOE VIX Futures uitoefendatum en eindigend met, maar exclusief de volgende
CBOE VIX Futures uitoefendatum. dr is hierbij het totale aantal werkdagen in een roll periode,
beginnend met, en inclusief de volgende werkdag, en eindigend met, maar exclusief de volgende
CBOE VIX Futures uitoefendatum. De roll periode begint op de dinsdag voorafgaande aan aan
de maandelijkse CBOE VIX Futures uitoefendatum, welke valt op de woensdag 30 kalenderdagen
voorafgaande aan de S&P 500 optie expiratiedatum voor de volgende maand. De roll periode loopt
tot de dinsdag voorafgaande aan de volgende maands CBOE VIX Futures uitoefendatum.
29
Hoofdstuk 6
Verwerking data I
6.1
Historische data
Om verder onderzoek op dit gebied uit te voeren maken we gebruik van historische data. Deze
prijsdata hebben wij verkregen via Bloomberg L.P. [11]. We hebben data van zes dagen opgeslagen,
te weten 31 mei, 24 juni, 22 juli, 10 september, 8 oktbober en 4 november. Hierbij hebben we
ernaar gestreefd om dagen met verschillende volatiliteitsniveaus van de markt te selecteren. We
hebben de VIX Index als referentie gebruikt.
21
VIX Index
20
19
18
17
16
15
14
13
12
11
01−Jan−2013
03−May−2013
02−Sep−2013
02−Jan−2014
Figuur 6.1: Historische koers VIX Index met gekozen data
6.2
Bewerking van de data
Na het vergaren van de benodigde historische data via Bloomberg, is de tijd aangebroken om de
data te analyseren. Allereerst hebben we de start- en eindtijden van alle data gelijk gemaakt (bij
sommige producten was er sprake van after-hours trading). Daarna hebben we alle gegevens in
MATLAB1 ge¨ımporteerd om de berekeningen uit te kunnen voeren. Eerst moesten we echter nog
van de ticks prijzen per seconde maken, met een zelfgeschreven functie2 . Ook moest rekening
gehouden worden met het feit dat op vrijdag 8 november 2013, Barclays Bank een 1-for-4 reverse
split heeft uitgevoerd op de VIX futures ETN [6], waarvoor de data van Bloomberg automatisch
1 MATLAB is een softwarepakket, geproduceerd door The Mathworks. Het kan worden gebruikt voor een verscheidenheid aan wiskundige toepassingen op het gebied van functies, statistiek, algoritmen en economische analyses.
Hierbij wordt gebruik gemaakt van zogenaamde ’M’ code, waarmee gegevens kunnen worden bewerkt en geanalyseerd.
2 Zie bijlage C voor alle geschreven MATLAB codes
30
was gecorrigeerd. Om de huidige prijzen toch met de historische data te kunnen vergelijken, hebben
we alle prijzen door vier moeten delen.
De spread wordt, zoals eerder beschreven, gegeven door de prijs van de VXX, min de prijs van de
VXX.IV. Er ontstond echter een probleem, gezien het feit dat de VXX.IV slechts een eenmaal per
15 seconden ge¨
updatet wordt, en de rest van de data wel minstens eenmaal per seconde ge¨
updatet
wordt. Daarnaast loopt de index achter op de koersen van de VXX en de futures, zoals nader
toegelicht in de indicative value disclaimer [5]:
The indicative value calculation is provided for reference purposes only. It is not intended as a price or quotation, or as an offer or solicitation for the purchase, sale,
redemption or termination of the iPath ETNs, nor do they reflect hedging or transaction costs, credit considerations, market liquidity, or bid-offer spreads. Published Index
levels from the index sponsor may occasionally be subject to delay or postponement.
Any such delays or postponements will affect the current Index level and therefore the
indicative value of the iPath ETNs. The actual trading price of the iPath ETNs may
be different from their indicative value.
Om een zinvolle analyse van de spread te kunnen maken hebben we besloten een nieuwe index
te cre¨eren om de spread mee te kunnen berekenen. We noemen deze de real time index, oftewel
RT Index. Deze RT Index heeft exact dezelfde samenstelling van futures als de VXX.IV Index,
maar is gebaseerd op secondendata. Om te compenseren voor het effect van historisch ondergane
contango3 en andere prijseffecten moet daarnaast de hedgeratio tussen de RT Index en de VXX.IV
Index, β worden bepaald.
6.3
Optimalisering RT Index
Om de correcte hedge ratio, β, te bepalen van de RT Index t.o.v. de IV Index moeten we ook
rekening houden met het feit dat de data van de IV Index achterloopt op de RT Index met γ
seconden, gezien de aard van de calculatie van deze index. Ons doel is om de cumulatieve afwijking
van de RT Index t.o.v. de IV Index zo laag mogelijk te houden. We hebben twee datasets, ieder van
lengte n waarbij geldt dat I = {. . . } de verzameling van waarden van de IV Index is en R = {. . . }
de verzameling waarden van de RT Index is. Onze cumulatieve afwijking van de IV Index ten op
zichte van de RT Index, afhankelijk van β en γ, wordt gegeven door de functie :
V (β,γ) =
n−γ
X
(|Ik+γ − Rk β|) γ ∈ N
k
Om dit probleem op te lossen cre¨eren we een matrix A met waarden
ai,j =
n−i+1
X
(|Ik+i−1 − Rk jdβ|)
k
met {i,j} ∈ N waarbij geldt dat i = γ + 1 en j =
accurate berekening van β. We krijgen dus:

a1,1 a1,2
 a2,1 a2,2

Am,p =  .
..
 ..
.
am,1 am,2
β
dβ
en dβ het interval is benodigd voor een
···
···
..
.

a1,p
a2,p 

.. 
. 
···
am,p
Waarvoor dus geldt:
Pn
 Pn
(|I − Rk 2dβ|)
···
k (|Ik − Rk dβ|)
Pn−1k k
Pn−1

(|I
−
R
dβ|)
(|I
−
R
2dβ|)
···
k+1
k
k+1
k
k
 k
Am,p = 
..
..
..

.
.
.
Pn−m
Pn−m
(|I
−
R
dβ|)
(|I
−
R
2dβ|)
·
·
·
k+m
k
k+m
k
k
k
Pn

k (|Ik − Rk pdβ|)
Pn−1
(|Ik+1 − Rk pdβ|) 
k


..

.
Pn−m
(|Ik+m − Rk pdβ|)
k
3 Het feit dat de futures van de tweede maand duurder zijn dan de futures van de eerste maand wordt ook wel
contango genoemd.
31
In de matrix Am,p zijn we op zoek naar min[ai,j ]. Deze vinden we met behulp van een computerberekening. Wanneer we min[ai,j ] hebben gelocaliseerd kunnen we met behulp van i en j via
γ = i − 1 en β = jdB de waarden van γ en β achterhalen waarvoor de fout in onze waarde van
de RT Index ten opzichte van de IV Index minimaal is. We hoeven de cumulatieve afwijkingen
ai,j niet te corrigeren voor de afname van het aantal gesommeerde waarden aangezien in onze
berekening geldt dat γ n.
Nu we de hedge ratio β bepaald hebben, is het mogelijk de RT Index op te stellen. Hiertoe
hebben we een functie geschreven, die berekent uit hoeveel front en hoeveel second month futures
de VXX.IV op een bepaald moment bestaat. De RT Index kan hiermee als volgt samengesteld
worden:
RT = β(Sf × wf + Ss × ws )
Waarbij Sf en Ss de prijzen zijn van de eerste en tweede maands futures en wf en ws de respectievelijke wegingsfactoren.
In de figuren 6.2(a) tot en met 6.2(f) staan zowel de Hedgeratio β, als de vertraging γ, als de
cumulatieve afwijking RT Index t.o.v. de VXX.IV Index. De resulataten van deze optimalisatie
zijn weergeven in tabel 6.1.
Datum
31 mei
24 juni
22 juli
10 sept
8 okt
4 nov
vertraging VXX.IV, RT (s)4
24
27
28
28
36
23
Hedge Ratio RT IV (β)
1.1771
1.1371
1.0564
0.9362
0.8879
0.8524
Tabel 6.1: Tabel met de optimale waarden voor de Hedgeratio β en de vertraging
4 de
vertraging van de VXX.IV Index t.o.v.de RT Index
32
1100
Cumulatieve afwijking RT Index t.o.v. IV Index
Cumulatieve afwijking RT Index t.o.v. IV Index
700
600
500
400
300
200
1000
100
0
900
800
700
600
500
400
300
0
20
40
60
1.1785
1.178
1.1775
1.1765
1.177
1.176
20
1.1755
40
60
Hedgeratio
Delay
1.1375
1.1365
1.137
1.136
1.1355
Hedgeratio
(b) 24 juni
550
Cumulatieve afwijking RT Index t.o.v. IV Index
700
Cumulatieve afwijking RT Index t.o.v. IV Index
1.138
Delay
(a) 31 mei
600
500
400
300
200
100
0
500
450
400
350
300
250
200
150
0
20
40
60
1.058
1.0575
1.057
1.0565
1.056
1.0555
20
1.055
40
60
Hedgeratio
Delay
0.9375
0.937
0.9365
0.936
0.9355
0.935
Hedgeratio
Delay
(c) 22 juli
(d) 10 september
750
400
700
Cumulatieve afwijking RT Index t.o.v. IV Index
Cumulatieve afwijking RT Index t.o.v. IV Index
1.1385
650
600
550
500
450
400
350
300
0
350
300
250
200
150
100
0
20
40
60
0.889
0.8885
0.888
0.8875
0.887
20
0.8865
40
60
Hedgeratio
Delay
Delay
(e) 8 oktober
0.8535
0.8525
0.853
Hedgeratio
(f) 4 november
Figuur 6.2: Optimale hedge ratio en delay RT en IV Index
33
0.852
0.8515
6.4
Analyse van de spread
Nu we een nieuwe index (RT Index) hebben om mee te werken in plaats van de VXX.IV, kunnen
we de spread bepalen. De spread wordt gegeven door:
|S1 − S2 |
In ons geval is dat dus:
|Svxx − Srt |
We gebruiken hier bewust geen logaritmische spread aangezien het hier om zeer kleine verschillen
gaat. Na per dag op alle tijdstippen t de spread bepaald te hebben, hebben we de grootte van
de spread tegen het aantal keer voorkomen uitgezet. We stellen dus een kansdistributie op. Ook
stellen we de normale verdeling voor deze kansdistributie op, zoals in de figuren op de volgende
pagina’s voor elke dag te zien is.
De eerste figuur (a) van elke pagina laat de spread uitgezet tegen de tijd zien. In de tweede
figuur (b) is de spread als een histogram uitgezet tegen het aantal keer voorkomen van die bepaalde
spread. De diagram is dus tegelijkertijd te beschouwen als een kansverdeling. In dezelfde figuur
is de normale verdeling van deze kansdistributie geplot. De derde figuur, (c), laat de normale
verdeling en de probability plot van de spread zien. Hieruit kan de afwijking van de spread ten
opzichte van de normale verdeling worden afgelezen, en het is bij elk van de gekozen dagen duidelijk
zichtbaar dat de spread vooral bij de uiteinden afwijkt van de normale verdeling. De statistieken
van iedere meting zijn weergeven in tabel 6.2.
34
0.08
0.06
0.04
Spread ($)
0.02
0
−0.02
−0.04
−0.06
−0.08
16:00:00
17:00:00
18:00:00
19:00:00
Tijd
20:00:00
21:00:00
22:00:00
(a) spread uitgezet tegen de tijd
Spread
Verdeling
35
Spread
Verdeling
0.9999
0.999
30
0.99
0.95
0.9
Probability
Density
25
20
15
0.75
0.5
0.25
0.1
0.05
10
5
0
−0.06
0.0001
−0.04
−0.02
0
Spread ($)
0.02
0.04
0.06
−0.06
(b) spread met normale verdeling
−0.04
−0.02
0
Spread
0.02
0.04
(c) spread met probability plot
Figuur 6.3: Spread grafieken van 31 mei
35
0.06
0.08
0.06
0.04
Spread ($)
0.02
0
−0.02
−0.04
−0.06
−0.08
−0.1
16:00:00
17:00:00
18:00:00
19:00:00
Tijd
20:00:00
21:00:00
22:00:00
(a) spread uitgezet tegen de tijd
25
Spread
Verdeling
0.9999
Spread
Verdeling
0.999
0.995
0.99
20
0.95
0.9
Density
Probability
15
0.75
0.5
0.25
10
0.1
0.05
0.01
0.005
5
0.0001
0
−0.08
−0.06
−0.04
−0.02
0
Spread ($)
0.02
0.04
0.06
−0.08
(b) spread met normale verdeling
−0.06
−0.04
−0.02
0
Spread ($)
0.02
0.04
(c) spread met probability plot
Figuur 6.4: Spread grafieken van 24 juni
36
0.06
0.2
0.15
Spread ($)
0.1
0.05
0
−0.05
16:00:00
17:00:00
18:00:00
19:00:00
Tijd
20:00:00
21:00:00
22:00:00
(a) spread uitgezet tegen de tijd
30
Spread
Verdeling
Spread
Verdeling
25
0.9999
0.999
20
Probability
Density
0.99
15
0.95
0.9
0.75
0.5
10
0.25
0.1
0.05
5
0.0001
0
−0.02
0
0.02
0.04
Spread ($)
0.06
0.08
0.1
−0.02
(b) spread met normale verdeling
0
0.02
0.04
0.06
0.08
Spread ($)
0.1
0.12
0.14
(c) spread met probability plot
Figuur 6.5: Spread grafieken van 22 juli
37
0.16
0.18
0.1
0.08
Spread ($)
0.06
0.04
0.02
0
−0.02
−0.04
16:00:00
17:00:00
18:00:00
19:00:00
TIjd
20:00:00
21:00:00
22:00:00
(a) spread uitgezet tegen de tijd
Spread
Verdeling
35
0.9999
Spread
Verdeling
0.999
30
0.99
0.95
0.9
Probability
Density
25
20
15
0.75
0.5
0.25
0.1
0.05
10
5
0.0001
0
−0.02
0
0.02
0.04
0.06
0.08
−0.02
Spread ($)
0
0.02
0.04
0.06
Spread ($)
(b) spread met normale verdeling
(c) spread met probability plot
Figuur 6.6: Spread grafieken van 10 september
38
0.08
0.06
0.04
Spread ($)
0.02
0
−0.02
−0.04
−0.06
16:00:00
17:00:00
18:00:00
19:00:00
Tijd
20:00:00
21:00:00
22:00:00
(a) spread uitgezet tegen de tijd
Spread
Verdeling
25
0.9999
Spread
Verdeling
0.999
0.99
20
Probability
Density
0.95
0.9
15
10
0.75
0.5
0.25
0.1
0.05
5
0.0001
0
−0.06
−0.04
−0.02
0
Spread ($)
0.02
0.04
0.06
−0.06
(b) spread met normale verdeling
−0.04
−0.02
0
Spread ($)
0.02
0.04
(c) spread met probability plot
Figuur 6.7: Spread grafieken van 8 oktober
39
0.06
0.06
0.05
0.04
0.03
Spread ($)
0.02
0.01
0
−0.01
−0.02
−0.03
−0.04
16:00:00
17:00:00
18:00:00
19:00:00
Tijd
20:00:00
21:00:00
22:00:00
(a) spread uitgezet tegen de tijd
45
Spread
Verdeling
Spread
Verdeling
40
0.9999
0.999
35
0.99
0.95
0.9
Probability
Density
30
25
20
0.75
0.5
0.25
0.1
0.05
15
10
0.0001
5
0
−0.04
−0.03
−0.02
−0.01
0
0.01
Spread ($)
0.02
0.03
0.04
0.05
0.06
−0.04
(b) spread met normale verdeling
−0.03
−0.02
−0.01
0
0.01
Spread ($)
0.02
0.03
0.04
(c) spread met probability plot
Figuur 6.8: Spread grafieken van 4 november
40
0.05
0.06
Datum
31 mei
24 juni
22 juli
10 sept
8 okt
4 nov
µξ
0.0798166
-0.00664618
0.0360119
0.0378299
-0.00455212
0.0152216
σµ
1.20681E-4
1.19260E-4
1.21405E-4
1.08929E-4
1.11755E-4
8.42112E-5
σξ
0.0184610
0.0182436
0.0185717
0.0166633
0.0170956
0.0128821
σσ
8.53370E-6
8.43321E-5
8.58487E-5
7.70268E-5
7.90251E-5
5.95482E-5
Tabel 6.2: Spread statistieken
6.5
Dickey Fuller Test
Hoewel het feit dat de spread mean-reverting is in de aard van het product lijkt vast te liggen,
moeten we dit natuurlijk kunnen bewijzen voordat we onze modellen hierop baseren. Dit doen
we door middel van de Augmented Dickey Fuller Test. Hiermee onderzoeken we of de spread een
stationair proces is. De ADF test maakt hierbij gebruik van het feit dat bij een mean-reverting
proces de prijsverandering proportioneel is met de huidige prijs. We gebruiken hierbij het model:
∆yt = α + βt + ηyt−1 + δ1 ∆yt−1 + · · · + δp−1 ∆yt−p+1 + εt
Bij ons vallen echter α, βt en δ1 ∆yt−1 + · · · + δp−1 ∆yt−p+1 weg, omdat er bij onze spread als het
goed is geen sprake is van drift, lag of een tijdstrend. We houden over:
∆yt = ρyt−1 + εt ,
De ADF test kijkt of de nulhypothese H0 : ρ = 0 kan worden verworpen tegen de alternatieve
hypothese HA : ρ < 0. Bij ρ = 0 geldt namelijk dat de verandering in y geheel afhankelijk is van
de willekeurige term εt en dat y dus een random walk is. Wanneer deze hypothese kan worden
verworpen kunnen we stellen dat y naar alle waarschijnlijkheid geen random walk uitvoert. In
tabel 6.3 zijn de p-waarden, t statistieken en kritieke waarden van de test weergeven. We kunnen
concluderen dat de spread op geen van de dagen een random walk uitvoert. We kunnen voor de
modellering van onze spread dus een mean-reverting model gebruiken.
Datum
31-mei
24-jun
22-jul
10-sep
08-okt
04-nov
p-waarde
< 0.001
< 0.001
< 0.001
< 0.001
< 0.001
< 0.001
t waarde
-24.7022
-45.2334
-11.8875
-10.4595
-39.5824
-14.8302
kritieke waarde 5%
-1.9416
-1.9416
-1.9416
-1.9416
-1.9416
-1.9416
kritieke waarde 1%
-2.5662
-2.5662
-2.5662
-2.5662
-2.5662
-2.5662
Tabel 6.3: Augmented Dickey Fuller Test statistieken
41
Hoofdstuk 7
Financi¨
ele wiskunde III
7.1
Arbitrage optimum
Nu we de spread hebben onderzocht moeten we zien te achterhalen bij welke waarde van de spread
we onze handelsstrategie het beste kunnen uitvoeren. Hierbij zullen we eerst een zelf bedacht
theoretisch model opstellen en dit vervolgens vergelijken met de historische data. We zijn dus op
zoek naar een target level van de spread die ons het meeste winst zal opleveren. Laten we eerst
uitgaan van een strategie waarbij we een positie innemen op het moment dat we een afwijkende
spread waarnemen, en de positie sluiten op het moment dat de spread is teruggekeerd naar zijn
‘normale’ niveau. We noemen dit normale niveau λ. We beginnen met het corrigeren van de
spread door er λ van af te trekken. Hierdoor kunnen we makkelijk berekeningen doen aangezien
de spread nu rond 0 fluctueert, in plaats van rond de waarde λ. Hiervoor moeten we echter eerst
de waarde λ bepalen. Dit zouden we natuurlijk kunnen doen door het gemiddelde (mean) van de
spread over de hele dag te nemen. Wanneer echter blijkt dat de spread vanuit ons niveau λ vaker
omhoog afwijkt dan naar beneden, zal onze berekening van λ significant hoger uitvallen dan de
echte waarde van λ. We moeten dus eerst controleren of dit niet het geval is. Dit doen we door de
λ te vinden waarvoor geldt dat de standaarddeviatie van de absolute waarden van de spread minus
λ minimaal is. Op deze manier elimineren we het effect van een scheve verhouding van positieve
en negatieve uitwijkingen op λ. Dus:
v

u
N
u1 X
min[σ] = min  t
(|Si − λ|) 
N i=1
Wanneer we dit numeriek oplossen plotten we op de horizontale as λ en op de verticale as σ. We
kunnen dan het minimum bepalen. Dit is de waarde voor λ, gecorrigeerd voor een onevenwichtige
verdeling van positieve en negatieve uitwijkingen. Vervolgens vergelijken we dit met de waarden
voorspeld door een simpel gemiddelde. Er ontstaat een plot zoals in figuur 7.1. We zien dat op
alle dagen het verschil in de waarden tussen beide methoden verwaarloosbaar is. We kunnen voor
onze waarde λ dus gewoon het gemiddelde van de spread gebruiken.
Nu onze spread gecorrigeerd is voor λ en rond het punt 0 fluctueert kunnen we verder gaan
met het opstellen van ons model. Vanaf nu wordt met ‘spread’ de genormaliseerde (dus minus λ)
van de spread bedoeld. We gaan er nog steeds van uit dat de spread normaal verdeeld is. Houd in
gedachte dat de formule van de normale distributie werd gegeven door
(x−µ)2
1
√ e− 2σ2
σ 2π
waarbij σ de standaarddeviatie is van de verdeling en µ de gemiddelde waarde van deze verdeling.
De µ is in dit geval dus nul vanwege de correctie met behulp van λ. De winst van iedere trade wordt
gegeven door de openingsspread minus de commissiekosten. We stappen immers uit de trade op
het moment dat de waarde van de spread nul is. Wanneer we een lage waarde van de spread nemen
(die vaak voorkomt) om onze trades bij uit te voeren kunnen we vaak handelen met een kleine
42
0.02
0.018
0.016
0.014
0.012
0.01
0.008
0.006
−0.05
31 mei
24 juni
22 juli
10 september
8 oktober
4 november
std methode
mean methode
−0.04
−0.03
−0.02
−0.01
0
0.01
0.02
0.03
0.04
0.05
Figuur 7.1: Bepaling λ via mean en standaarddeviatie methode vergeleken
winst. De commissiekosten zijn dan echter relatief hoog. Wanneer we een hoge waarde van de
spread nemen (die weinig voorkomt), kunnen we minder vaak handelen met een hogere winst. De
commissiekosten zijn dan relatief laag. We moeten een goede balans vinden tussen vaak handelen
en hoge commissiekosten en weinig handelen en lage commissiekosten. De winst P kunnen we
mathematisch als volgt opschrijven:
Z ∞
Z ∞
2
2
ξd
ξd
1
1
√ e− 2σ2 dξd − c
√ e− 2σ2 dξd
P = 2 ξd
σ 2π
σ 2π
ξd
ξd
Hierin noteren we de target spreaddeviatie als ξd en de commissiekosten als c opschrijven. We
noemen dit het CASO model (Convergence Arbitrage Strategy Optimum). We beschrijven nu
hoe deze formule tot stand is gekomen. Wanneer we een target spreaddeviatie ξd vaststellen van
bijvoorbeeld minimaal 2 cent, dan zal er niet gehandeld worden als de spread lager is dan 2
cent. Van alle mogelijkheden van 2 cent en hoger zal gebruik worden gemaakt. Omdat de spread
normaal verdeeld is, wordt het relatieve voorkomen van de spread boven de 2 cent gegeven door
de cumulatieve normale distributie van ξd tot ∞. Het relatieve aantal keren dat de strategie wordt
uitgevoerd wordt dus gegeven door
Z ∞
2
ξd
1
√ e− 2σ2 dξd
σ 2π
ξd
Dit levert per keer ξd op en kost per keer c. We krijgen dus
Z ∞
Z ∞
2
2
ξd
ξd
1
1
√ e− 2σ2 dξd − c
√ e− 2σ2 dξd
P = ξd
σ 2π
σ 2π
ξd
ξd
Dit moeten we echter nog met een factor 2 vermenigvuldigen aangezien het ons niet uitmaakt of de
spread −2 of +2 is. Wanneer we dit niet zouden doen, zouden alleen de positieve waarden worden
gebruikt. We kunnen hier mooi gebruik maken van het feit dat de normale verdeling symmetrisch
is. We kunnen dit makkelijk opschrijven als:
Z ∞
2
ξd
1
√ e− 2σ2 dξd
(7.1)
P = 2(ξd − c)
σ 2π
ξd
We zijn op zoek naar de maximale waarde van deze functie. Deze kunnen we vinden wanneer we
de afgeleide van P gelijk stellen aan 0 en het geheel oplossen voor ξd . Dus:
Z ∞
ξ2
d
1
− 2σd2
√ e
2(ξd − c)
dξd = 0
dξd
σ 2π
ξd
43
Als we de afgeleide gaan nemen krijgen we voor
Z ∞
2
ξd
1
√ e− 2σ2 dξd
σ 2π
ξd
gewoon:
2
ξd
1
− √ e− 2σ2
σ 2π
Dus
Z ∞
Z ∞
2
2
ξd
ξd
1
d
1
√ e− 2σ2 dξd − 2c
√ e− 2σ2 dξd = 0
2ξh
dξd
σ 2π
σ 2π
ξd
ξd
wordt via de kettingregel
Z ∞
2
2
2
ξd
ξd
ξd
1
1
1
√ e− 2σ2 dξd − 2ξd √ e− 2σ2 + 2c √ e− 2σ2 = 0
2
σ 2π
σ 2π
σ 2π
ξd
vereenvoudigd:
2(c − ξh )
2
ξd
1
√ e− 2σ2
σ 2π
Z
∞
+ 2c
ξd
2
ξd
1
√ e− 2σ2
σ 2π
dξd = 0
(7.2)
We zien echter dat dit een probleem oplevert. Vanwege de kettingregel blijft de functie
Z ∞
2
ξd
1
√ e− 2σ2 dξd
σ 2π
ξd
in onze formule staan. Het is echter bewezen dat deze functie geen exacte oplossing heeft [22]. We
zullen het geheel dus numeriek op moeten lossen. Wanneer we de winst plotten als functie van
de targetdivergentie van de spread volgens formule (7.1) krijgen we een figuur van de vorm zoals
weergeven in figuur 7.2. Deze figuur laat zien dat maximale winst wordt behaald als er gehandeld
wordt bij een spread van ongeveer 2 cent. Hierbij is uitgegaan van commissiekosten van 1 cent, een
tijdelijke assumptie om het verloop van de functie te illustreren. De figuur klopt relatief gezien wel,
maar de absolute waarde van de winst is nog niet te bepalen. Dit proberen we later op te lossen.
Daarnaast is het zo dat er verlies gemaakt wordt wanneer er gehandeld wordt bij een spread van
minder dan 1 cent. Dit is niet te zien in de figuur, maar moet wel opgemerkt worden.
Theoretische winst
Maximale winst
0.01
0.02
0.03
0.04
0.05
Divergence target ($)
0.06
0.07
Figuur 7.2: Theoretische winst bij verschillende targetdivergenties
44
0.08
Hoofdstuk 8
Verwerking data II
In dit hoofdstuk onderzoeken we de invloed van de verschillende parameters en kijken we in hoeverre
ons CASO model overeenkomt met de werkelijkheid.
8.1
Invloed van gekozen targetdivergentie
Laten we allereerst kijken naar de invloed van de gekozen targetdivergentie (in de grafieken ook
wel divergence target genoemd) voor de strategie. In figuur 8.1 is voor de historische data de
winst bij verschillende targets te zien met commissiekosten van $0.01. We zien dat de vorm van de
grafiek overeenkomt met de door CASO voorspelde vorm. Bij het backtestalgoritme wordt er bij
een targetdivergentie van $0.01 echter nog steeds winst gemaakt. Dit komt door de discrete natuur
van de aandelenprijzen. Dit probleem verdwijnt echter snel naarmate we dichter bij het optimum
komen. De grafieken in figuur 8.1 geven alleen het verloop weer van de winst bij gelijkblijvende
commissiekosten van $0.01. Hieruit kan de optimale targetdivergentie worden bepaald. In de
volgende sectie wordt dit optimum gebruikt wanneer we de commissiekosten vari¨eren.
45
7
18
Winst
Optimum
6
Winst
Optimum
16
14
5
4
Winst ($)
Winst ($)
12
3
10
8
6
2
4
1
2
0
0.01
0.02
0.03
0.04
0.05
0.06
Divergence target ($)
0.07
0
0.01
0.08
0.02
0.03
0.04
0.05
0.06
Divergence target ($)
(a) 31 mei
5
Winst
Optimum
4.5
4
4
3.5
3.5
3
3
2.5
2.5
2
2
1.5
1.5
1
1
0.5
0.5
0.02
0.03
0.04
0.05
0.06
Divergence target ($)
0.07
Winst
Optimum
4.5
Winst ($)
Winst ($)
0.08
(b) 24 juni
5
0
0.01
0.07
0
0.01
0.08
0.02
(c) 22 juli
0.03
0.04
0.05
0.06
Divergence target ($)
0.07
0.08
(d) 10 september
14
2
Winst
Optimum
12
Winst
Optimum
1.8
1.6
1.4
8
Winst ($)
Winst ($)
10
6
1.2
1
0.8
0.6
4
0.4
2
0.2
0
0.01
0.02
0.03
0.04
0.05
0.06
Divergence target ($)
0.07
0
0.01
0.08
(e) 8 oktober
0.02
0.03
0.04
0.05
0.06
Divergence target ($)
(f) 4 november
Figuur 8.1: Historische winst bij verschillende targetdivergenties
46
0.07
0.08
8.2
Invloed van commissiekosten
We kunnen nu zowel de maximale winst als de optimale targetdivergentie plotten als functie van de
commissiekosten c. Hiermee kunnen we de invloed van commissiekosten op onze tradingstrategie
visualiseren. In figuur 8.2 is het CASO model geplot en vergeleken met historische data. De linker
grafieken laten de maximale winst per dag als functie van de commissiekosten zien, en de rechter
figuren laten de optimale targetspread als functie van de commissiekosten zien. De waarde van de
maximale winst is hierbij genormaliseerd met factor ω om op de hoogte van de historische winsten
te komen, iets waar we later op terugkomen. In de figuren 8.2(a), 8.2(a), 8.2(b) en 8.2(c) lijkt
de historische data aardig overeen te komen met ons model. De historische plot en de voorspelde
plot verlopen hetzelfde. Alleen op 22 juli (figuur 8.2(c)) wijkt de voorspelling van de optimale
targetdivergentie af van de historische data. Daarnaast kon er op 24 juni (figuur 8.2(b)) en 22 juli
(figuur 8.2(c)) historisch gezien meer winst gemaakt worden dan het CASO model laat zien.
47
14
0.08
Historisch
CASO voorspeling
10
8
6
4
0.06
0.05
0.04
0.03
0.02
2
0
Historisch
CASO voorspeling
y=x
0.07
Optimale divergence target ($)
Maximale winst per pair per dag ($)
12
0.01
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0
0.08
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0.08
0.06
0.07
0.08
0.06
0.07
0.08
(a) 31 mei
35
0.08
Historisch
CASO voorspeling
25
20
15
10
0.06
0.05
0.04
0.03
0.02
5
0
Historisch
CASO voorspeling
y=x
0.07
Optimale divergence target ($)
Maximale winst per pair per dag ($)
30
0.01
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0
0.08
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
(b) 24 juni
12
0.08
Historisch
CASO voorspeling
y=x
0.07
10
Optimale divergence target ($)
Maximale winst per pair per dag ($)
Historisch
CASO voorspeling
8
6
4
0.06
0.05
0.04
0.03
0.02
2
0.01
0
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0
0.08
(c) 22 juli
48
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
12
0.08
Historisch
CASO voorspeling
y=x
0.07
10
Optimale divergence target ($)
Maximale winst per pair per dag ($)
Historisch
CASO voorspeling
8
6
4
0.06
0.05
0.04
0.03
0.02
2
0.01
0
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0
0.08
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0.08
0.06
0.07
0.08
0.06
0.07
0.08
(a) 10 september
30
0.08
Historisch
CASO voorspeling
y=x
0.07
25
Optimale divergence target ($)
Maximale winst per pair per dag ($)
Historisch
CASO voorspeling
20
15
10
0.06
0.05
0.04
0.03
0.02
5
0.01
0
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0
0.08
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
(b) 8 oktober
10
0.08
Historisch
CASO voorspeling
8
7
6
5
4
3
Historisch
CASO voorspeling
y=x
0.07
Optimale divergence target ($)
Maximale winst per pair per dag ($)
9
0.06
0.05
0.04
0.03
0.02
2
0.01
1
0
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
0.06
0.07
0
0.08
0
0.01
0.02
0.03 0.04 0.05
Commissiekosten ($)
(c) 4 november
Figuur 8.2: Maximale winst en optimale divergentietargets CASO model versus historische data
49
8.3
Invloed van vertraging
Naast de invloed van de targetdivergentie en de commissiekosten kunnen we met de historische
data de invloed van een eventuele vertraging berekenen. Aangezien de data uit de Verenigde Staten
moet komen, moet worden verwerkt door de computer, en de orders weer verstuurd moeten worden
naar de Exchanges zal er een zekere vertraging in het handelen zitten. In figuur 8.3 is de maximale
winst en de procentuele winstdaling bij verschillende vertragingen geplot. Een vertraging van 1
seconde betekent dat de order op de koersinformatie van de volgende seconde wordt uitgevoerd.
Een vertraging van 2 seconden betekent dat de order op de koersinformatie 2 seconden later wordt
uitgevoerd.
50
14
12
−30
10
8
6
4
−40
−50
−60
−70
−80
2
0
Delay 1 sec
Delay 2 sec
−20
Procentuele winstdaling
Maximale winst per pair per dag ($)
−10
Delay 0 sec
Delay 1 sec
Delay 2 sec
−90
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
−100
0.06
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
0.06
(a) 31 mei
35
30
−20
25
20
15
10
−30
−40
−50
−60
−70
−80
5
0
Delay 1 sec
Delay 2 sec
−10
Procentuele winstdaling
Maximale winst per pair per dag ($)
0
Delay 0 sec
Delay 1 sec
Delay 2 sec
−90
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
−100
0.06
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
0.06
(b) 24 juni
−10
Delay 0 sec
Delay 1 sec
Delay 2 sec
10
−30
8
6
4
−40
−50
−60
−70
−80
2
0
Delay 1 sec
Delay 2 sec
−20
Procentuele winstdaling
Maximale winst per pair per dag ($)
12
−90
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
−100
0.06
(c) 22 juli
51
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
0.06
−10
Delay 0 sec
Delay 1 sec
Delay 2 sec
10
−30
8
6
4
−40
−50
−60
−70
−80
2
0
Delay 1 sec
Delay 2 sec
−20
Procentuele winstdaling
Maximale winst per pair per dag ($)
12
−90
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
−100
0.06
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
0.06
(a) 10 september
−10
Delay 0 sec
Delay 1 sec
Delay 2 sec
25
−30
20
15
10
−40
−50
−60
−70
−80
5
0
Delay 1 sec
Delay 2 sec
−20
Procentuele winstdaling
Maximale winst per pair per dag ($)
30
−90
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
−100
0.06
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
0.06
(b) 8 oktober
8
7
−30
6
5
4
3
2
−40
−50
−60
−70
−80
1
0
Delay 1 sec
Delay 2 sec
−20
Procentuele winstdaling
Maximale winst per pair per dag ($)
−10
Delay 0 sec
Delay 1 sec
Delay 2 sec
−90
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
−100
0.06
0
0.01
0.02
0.03
0.04
Commissiekosten ($)
0.05
0.06
(c) 4 november
Figuur 8.3: Invloed van vertraging van de historische data met verschillende commissiekosten op
de winst
52
Hoofdstuk 9
Financi¨
ele wiskunde IV
9.1
Correlatie historische winst en CASO
We hebben inmiddels kunnen zien dat ons CASO model de relatieve hoogte van de winsten en
de optimale targets goed kan voorspellen. De exacte hoogte van de winst kan hiermee echter nog
niet worden bepaald. Wanneer we de door CASO voorspelde hoogte van de exacte winst en de
historische winst plotten (zie figuur 9.1) en een correlatietest uitvoeren, krijgen we statistieken
zoals weergeven in tabel 9.1. Voor de test geldt H0 : r = 0 en HA : r 6= 0. Hieruit kunnen we
concluderen dat ons CASO model nog geen voorspellende kracht heeft met betrekking tot de exacte
hoogte van de winst. Kennelijk mist er nog een dimensie in het model waardoor de bepaling van de
exacte hoogte van de winsten mogelijk kan worden gemaakt. We gaan terug naar de theoretische
basis om ons model te verbeteren.
30
Winst bij c = 0.0025
Winst bij c = 0.0050
Winst bij c = 0.0100
Historische winst ($)
25
20
15
10
5
0
1
1.5
2
2.5
3
3.5
CASO winst ($)
4
4.5
5
5.5
−3
x 10
Figuur 9.1: Correlatie van de door CASO voorspelde exacte winst en de historische winst
Paar
P0.0025
P0.0050
P0.0100
r2
0.176
0.193
0.171
p-waarde
0.407
0.384
0.415
Tabel 9.1: Correlatie tussen door CASO voorspelde winst en de historische winst
53
9.2
Ornstein-Uhlenbeck
Om het CASO model te verebeteren grijpen we terug op de eerder ge¨ıntroduceerde stochastische
differentiaalvergelijkingen en Itˆ
o’s Lemma. We gaan de spread wiskundig modelleren en enkele aspecten invoegen in het CASO model. Hiermee veralgemeniseren we tegelijkertijd het CASO model
opdat het gebruikt kan worden voor een veelvoud aan arbitragestrategie¨en. Aangezien we met de
Augmented Dickey Fuller test hebben bewezen dat onze spread zoals verwacht mean-reverting is,
kunnen we met zekerheid een mean-reverting model gebruiken om de spread wiskundig weer te
geven. We kunnen hierbij gebruik maken van een specifieke stochastische differentiaalvergelijking:
het Ornstein-Uhlenbeck model. Deze differentiaalvergelijking heeft de volgende vorm:
dξ(t) = θ(λ − ξ) dt + σ dW
Hierbij geldt dat θ de snelheid is waarmee de spread terugkeert naar het gemiddelde, θ > 0 en λ
het gemiddelde van de spread over de lange termijn is. Wanneer de spread ξ groter of kleiner is
dan λ, zal θ(λ − ξ) dt ervoor zorgen dat de spread convergeert naar λ.
Stel, we hebben een functie f (ξ,t) afhankelijk van dit proces. De algemene definitie voor Itˆo’s
Lemma was
df
df
1 d2 f 2
df
b
dt +
+
a+
b dW
df =
dt dx
2 dx2
dx
voor een stochastische differentiaalvergelijking van de vorm:
dx = a dt + b dW
Stel we nemen voor de functie f het volgende:
f (ξ,t) = ξeθt
De a van Itˆ
o’s Lemma is dan dus gelijk aan θ(λ − ξ), en de b is gelijk aan σ.
Verder geldt:
•
df
dt
= θξeθt
•
df
dξ
= eθt
•
d2 f
dξ 2
=0
Dit invullen levert:
df (ξ,t) = θξeθt + eθt θ(λ − ξ) dt + σeθt dW
iereenvoudigd:
df = θλeθt dt + σeθt dW
Integreren levert:
Z
t
Z
df = θλ
0
t
eθp dp + σ
Z
0
t
eθp dWp
0
Hierbij is de als variabele gebruikte t tijdelijk vervangen door p om verwarring te voorkomen. Dit
levert:
Z t
f (t) = f (0) + λ(eθt − 1) + σ
eθp dWp
0
We hadden genomen:
f (ξ,t) = ξ eθt
Dus:
ξ(t) = f (t) e−θt
Onthoud dat e−θt hetzelfde is als
1
.
eθt
Ook geldt:
ξ(0) = f (0)
54
Voor de nieuwe functie ξ(t) krijgen we dus:
ξ(t) = ξ(0)
1
1
1
+ λ(eθt − 1) θt + σ θt
θt
e
e
e
t
Z
eθp dWp
0
Vereenvoudigen geeft:
ξ(t) = ξ0 e−θt + λ(1 − e−θt ) + σe−θt
Z
t
eθp dWp
0
Deze formule zullen we gebruiken om de spread voor te stellen. Aangezien de laatste component
willekeurig is en een verwachte waarde heeft van 0 (het is immers een Wiener Proces), geldt:
E [ξ(t)] = ξ0 e−θt + λ(1 − e−θt )
Dit correspondeert met onze parameter λ voor de lange-termijns verwachting van het gemiddelde
als t → ∞. Daarnaast geldt voor de kwadratische variantie:
2
Z t
Z t
Z t
−θt
θp
−θt
θp
2 −2θt
Var[ξ(t)] = Var σe
e dWp = σe
e dWp
e2θp dp =
=σ e
0
0
0
1
σ2
1 2θt
2 −2θt
e −
=
1 − e−2θt
σ e
2θ
2θ
2θ
Ook voor de variantie geldt dat als t → ∞ gaat, deze een eindige waarde aanneemt, namelijk:
σ2
2θ
De standaarddeviatie van de gemodelleerde spread wordt dus gegeven door de wortel van deze
variantie. Aanstonds hebben we deze eigenschappen nodig voor de aanpassing van het CASO
model.
9.3
Integratie Ornstein-Uhlenbeck met CASO model
Laten we nu ons Ornstein-Uhlenbeck model integreren in ons CASO model. Onthoud dat de winst
in ons CASO model wordt gegeven door de volgende formule:
Z ∞
2
ξd
1
√ e− 2σ2 dξd
P = 2(ξd − c)
σ 2π
ξd
We hebben net gezien dat ons Ornstein-Uhlenbeck proces wordt gedefinieerd door de differentiaalvergelijking:
dξ(t) = θ(λ − ξ) dt + σ dW
Dit leidde tot de volgende formule voor de spread
ξ(t) = ξ0 e
−θt
+ λ(1 − e
−θt
−θt
Z
) + σe
t
eθp dWp
0
met voor t → ∞ de belangrijke eigenschap:
Var[ξ(t)] =
σ2
2θ
Aangezien θ de mean-reversion snelheid voorschrijft, is er naar alle waarschijnlijkheid een evenredig
verband tussen θ en P . Immers, hoe sneller (en dus vaker) de spread naar de nullijn terugbeweegt,
hoe meer winst er te behalen valt. Laten we aannemen dat geldt P ∼ ωθ, waarbij ω een vooralsnog
onbekende evenredigheidscontante is. Daarnaast neemt de totale winst toe naarmate de strategie
langer wordt gebruikt. De winst P is dus ook evenredig met de tijd T . We verwachten dat:
P ∼ ωθT
55
Laten we dit invoegen in onze formule, zodat we deze aanname kunnen testen. Tegelijkertijd vullen
2
we onze variantie σ2θ in. We krijgen:
Z
∞
P = 2ωθT (ξd − c)
ξd
2ξ2
− σd2
1
√ e 2 2θ
σ 2π
!
dξd
Wanneer we de 2 verwerken in de evenredigheidsconstante ω en de formule vereenvoudigen krijgen
we:
Z ∞
2
2θξd
1
√ e− σ 2
dξd
P = ωθT (ξd − c)
σ 2π
ξd
We hebben nu dus een algemene formule opgesteld waarmee we de winst van een spreadarbitragestrategie aan de hand van de variabelen targetdivergentie en commissiekosten kunnen voorspellen
als we weten dat deze een standaard Ornstein-Uhlenbeck proces volgt. Laten we dit model testen
op de historische data door de door het model voorspelde winsten te vergelijken met de historische
winsten.
Allereerst is het belangrijk dat we van de historische winst de mean-reversion snelheid θ bepalen.
Hiervoor kalibreren we de spread met een algemeen Ornstein-Uhlenbeck proces. Dit gaat als volgt:
We beginnen met het omzetten van de continue Ornstein-Uhlenbeck formule van de spread in een
versie met een discrete tijdsstap. We hebben:
Z t
ξ(t) = ξ0 e−θt + λ(1 − e−θt ) + σe−θt
eθp dWp
0
We hadden vastgesteld dat de kwadratische variantie van het willekeurige deel
Z t
σe−θt
eθp dWp
0
werd gegeven door:
σ2
1 − e−2θt
2θ
We kunnen het niet-willekeurige deel laten staan en we vervangen het willekeurige deel door een
kansproces uit een normale verdeling vermenigvuldigd met de standaarddeviatie, die nu dus wordt
gegeven door:
r
σ 2 (1 − e−2θδ )
2θ
We krijgen:
r
1 − e−2θδ
−θδ
−θδ
N0,1
ξi+1 = ξi e
+ λ(1 − e ) + σ
2θ
We kunnen nu met behulp van deze discrete formule een lineaire regressie uitvoeren op de historische spreaddata om de verschillende parameters te achterhalen. We zien dat de discrete formule
van de volgende vorm is:
y = ax + b + Waarbij een willekeurige component voorstelt. Wanneer we voor de x-component de waarde van
de spread op het tijdstip i nemen, dus
x = ξi
en voor de y-component de waarde van de spread op het tijdstip i + 1, dus
y = ξi+1
56
krijgen we voor de regressie de volgende variabelen:
a = e−θδ
b = λ(1 − e−θδ )
r
1 − e−2θδ
sd() = σ
2θ
Als we dit in elkaar substitueren en het geheel omschrijven krijgen we:
−ln(a)
δ
b
λ=
1−a
s
θ=
−2ln(a)
δ(1 − a2 )
σ = sd()
Hieruit kunnen we gemakkelijk de waarden van de parameters verkrijgen. Vanzelfsprekend zijn
we met name ge¨ınteresseerd in de waarden van θ om ons vernieuwde CASO model te testen. We
krijgen de waarden zoals weergeven in tabel 9.2. Betrouwbaarheidsgrenzen van deze inschatting
zijn weergeven op 95% niveau als θ− en θ+ .
Datum
31 mei
24 juni
22 juli
10 sept
8 okt
4 nov
θ− (95%)
0.05583
0.19213
0.05435
0.05446
0.13697
0.04207
θ
0.06041
0.20106
0.05884
0.05893
0.14432
0.04600
θ+ (95%)
0.06497
0.21010
0.06337
0.06347
0.15175
0.05003
Tabel 9.2: Berekende θ per dag
De winst volgens CASO wordt gegeven door:
Z
P = ωθT (ξd − c)
∞
ξd
2
2θξd
1
√ e− σ 2
σ 2π
dξd
Om te testen of dit model werkt, vullen we voor P de historische winst in. We kunnen de formule
omschrijven tot:
P
h
θ=
2θξ2
R∞
d
ωT (ξd − c) ξd σ√12π e− σ2
dξd
We plotten
ωT (ξd − c)
R∞
ξd
P
h
√1 e−
σ 2π
2θξ2
d
σ2
dξd
op de y-as, en θ op de x-as. Hierdoor ontstaat figuur 9.2. De regressie van de vorm y = ax +
b heeft een r2 waarde van 0.9734 en een p-waarde van 4.971E-14. We kunnen dus stellen dat
het vernieuwde CASO model een goede benadering geeft van de werkelijkheid en nu kan worden
gebruikt om de exacte waarde van de winst te schatten. De integratie met het Ornstein-Uhlenbeck
model en de toevoeging van de factor θωT hebben de eerdere problemen verholpen. Wanneer
we de commissiekosten en de targetdivergentie weergeven in termen van σ kunnen we het model
veralgemeniseren zodat de waarden bruikbaar zijn voor iedere arbitragestrategie. De figuur 9.3
ontstaat. De optimale waarden zoals gegeven door ons model in termen van σ zijn te vinden in
appendix B.
57
7000
Ratio CASO en historische winst
6000
5000
4000
3000
2000
Ratio bij c = 0.0025
Ratio bij c = 0.0050
Ratio bij c = 0.0100
lijn
T
1000
0
0
0.05
0.1
0.15
0.2
0.25
Figuur 9.2: Invloed van θ op de ratio van de door CASO voorspelde winst en de historische winst
1
3.5
0.9
3
Optimale divergence target ( )
0.8
Relatieve winst
0.7
0.6
0.5
0.4
0.3
2.5
2
1.5
1
0.2
0.5
0.1
0
0
0.5
1
1.5
2
Commissiekosten ( )
2.5
0
3
0
0.5
1
1.5
2
Commissiekosten ( )
Figuur 9.3: Algemeen geldende versie van het CASO model
58
2.5
3
Hoofdstuk 10
De praktijk
10.1
Uitvoering
Na de tests op historische data volgde natuurlijk een test op real-time data. Dit hebben we
gedaan met behulp van het programma TradeStation, een handelsplatform waarin zelf bedachte
handelsstrategie¨en gebruikt kunnen worden. We hebben een academisch account van TradeStation
gekregen om met een fictieve ´e´en miljoen dollar transacties uit te kunnen voeren. Na het invullen
en opsturen van verschillende formulieren is hier ook real-time data aan toegevoegd en konden we
de koersen van de VXX, de twee futures en de spread tussen van VXX en de futures bepalen. De
spread wordt nog steeds gegeven door:
|Svxx − Sfutures |
Het invoeren van onze strategie in TradeStation was een uitdaging, aangezien de programmeertaal
van TradeStation, EasyLanguage, minder eenvoudig bleek te zijn dan de naam deed denken. Door
de eenvoud van de taal werden onze mogelijkheden beperkt en hebben we ingewikkelde omwegen
moeten nemen om tot het gewenste resultaat te komen.
Figuur 10.1: Een schermafbeelding van TradeStation met de door ons ontwikkelde spreadindicator
Als de spread zich boven de bovenste targetdivergentielijn bevindt (zie figuur 10.1, onderste
helft), betekent dit dat de VXX ten opzichte van de futures duur is. De strategie neemt hierbij een
shortpositie in de VXX en een longpositie in de futures in. Als de spread zich onder de onderste
59
targetdivergentielijn bevindt, betekent dit dat de VXX ten opzichte van de futures goedkoop is.
De strategie neemt dan een longpositie in de VXX en een shortpositie in de futures in.
Uit historische tests hadden we al bepaald dat de optimale afwijking van de gemiddelde spread
om bij te handelen, afhankelijk van de commissiekosten, tussen de 0.75 en de 3.25 dollarcent ligt.
De lage targetdivergentie bij geringe commissiekosten kon onze computer en het programma TradeStation niet aan. Hierdoor hebben we besloten de targetspread bij opening van een positie hoger
te leggen dan de optimale waarde, opdat er minder orders werden gegenereerd. In het programma
hebben wij daarom voor een targetdivergentie van anderhalve standaarddeviatie gekozen. Ook
hebben we de targetspread bij het sluiten van een positie aangepast; we hebben gekozen om de
strategie alleen te laten handelen als de koers beide optima passeert; de positie werd nu geopend
bij het passeren van de ene targetdivergentielijn, en gesloten bij het passeren van de andere. Dit
verminderde het aantal handelsmomenten en zorgde voor een grotere winst per transactie.
Omdat we, in tegenstelling tot bij het testen op historische data, niet direct beschikking hadden
over de data van de gehele dag, hebben we de gemiddelde spread en targetdivergenties bepaald
met behulp van data uit de voorgaande 500 seconden.
10.2
Resultaten
Toen het systeem eenmaal redelijk functioneerde, hebben we het een hele handelsdag (donderdag
6 februari, van half 4 ’s middags tot 10 uur ’s avonds Nederlandse tijd) aangezet. De resultaten
van de strategie gedurende deze dag zijn in tabel 10.1 weergegeven.
Aantal winstgevende trades
Aantal verlieslatende trades
Aantal neutrale trades
Totaal aantal trades
Maximale winst per trade
Maximaal verlies per trade
107
69
15
191
$
$
Gemiddelde duur trade
Gemiddelde tijd tussen trades
2,050.00
1,240.00
102 sec
18 sec
Bruto winst
Bruto verlies
Netto winst
$
$
$
28,570.00
15,450.00
13,120.00
Netto winst
Commissiekosten per trade
Totale commissiekosten
Gecorrigeerde netto winst
$
$
$
$
13,120.00
10.501
4,011.00
9,109.00
Benodigde startkapitaal
Gecorrigeerde netto winst
Rendement
$
$
368.650,002
9,109.00
2.47%
Tabel 10.1: Resultaten van ´e´en dag handelen met de strategie
1 Na enig marktonderzoek zijn we tot de conclusie gekomen dat competitieve brokers gemiddeld zo’n $4.50 per
transactie van aandelen vragen. Hierbij tellen we 10 keer $0.60 op, de commissiekosten per futurescontract. Eventuele kosten voor het lenen van de aandelen voor shortselling zijn verwaarloosbaar.
2 Het benodigde startkapitaal is berekend door de hoogste prijs van de VXX op de betreffende dag te vermenigvuldigen met 5000, het aantal aandelen dat per keer wordt verhandeld. Hierbij is 10 keer de benodigde marge van
de VX futures opgeteld ($5,390.00 initi¨
ele marge en $4,900.00 onderhoudsmarge). We gaan er dus van uit dat er bij
de aandelen geen gebruik wordt gemaakt van eventuele mogelijkheden tot leverage.
60
Het verloop van de handelsstrategie gedurende de handelsdag is in figuur 10.2 weergeven.
14000
Winst strategie
Winst VXX
Winst VXG14
Winst VXH14
12000
10000
Winst ($)
8000
6000
4000
2000
0
−2000
−4000
0
20
40
60
80
100
Trade #
120
140
160
180
Figuur 10.2: Verloop van de strategie
Om te testen of onze strategie een significante bijdrage heeft geleverd aan de winst gebruiken we
een afgeleide versie van de Monte Carlo bootstrapping methode. We simuleren hierbij een strategie
gebaseerd op volledige willekeur. Hiervoor genereren we 192 × 2 willekeurige cijfers3 tussen de 1
en 23401, het aantal seconden in een handelsdag. Dit gebeurt zonder terugleggen. Deze getallen
worden gesorteerd. Op de tijdstippen corresponderend met de willekeurige cijfers wordt een positie
ingenomen of gesloten, afhankelijk van de huidige positie en corresponderend met de hoeveelheden
en producten van onze eigen strategie, gebaseerd op de prijsdata van de dag waarop we de strategie
hebben uitgevoerd. De richting van de positie wordt bepaald door een willekeurige 1 of -1. Op deze
manier wordt een pairs-trading strategie gesimuleerd die volledig gebaseerd is op toeval. De winst
van deze strategie wordt bepaald. Dit proces wordt 20,000 keer herhaald opdat we een verdeling
op kunnen stellen van de ontstane winsten. Een normale verdeling onstaat. Met behulp van het
gemiddelde en de standaarddeviatie kunnen we eenvoudig via de cumulatieve verdelingsfunctie de
p-waarde van onze strategie bepalen, met H0 : de strategie is volledig willekeurig. Deze blijkt
uit te komen op 0.000024. Op 0.05% significantieniveau kunnen we dus de nulhypothese dat onze
strategie volledig willekeurig zou zijn verwerpen. Daarmee heeft onze strategie dus wel degelijk
toegevoegde waarde.
3 192
× 2 komt overeen met het aantal transacties dat heeft plaatsgevonden op onze testdag.
61
Hoofdstuk 11
Conclusie
We hebben een model, het CASO model, kunnen opstellen waarmee men voor alle mean-reverting
effectenparen de optima voor een pairs-trading strategie kan bepalen, afhankelijk van enkele variabelen. Ook hebben we de invloed van enkele van deze variabelen, namelijk de commissiekosten en
de targetdivergentie, op de totale winst onderzocht met behulp van historische data. Uit wiskundige bewerking van de historische data is gebleken dat de winst maximaal is bij commissiekosten
van 0 cent en dat de winst richting de nul gaat bij commissiekosten die 3 keer zo groot zijn als de
standaarddeviatie σ van de spread. Uit grafiek 9.3 volgt dat de commissiekostenelasticiteit van de
winst ten allen tijden negatief is, en negatiever wordt naarmate de commissiekosten oplopen. In
de bijlage bevindt zich een tabel met daarin de optimale targetdivergentie voor een verscheidenheid aan commissiekosten. Daarnaast hebben we de invloed van eventuele vertraging op de winst
onderzocht. Figuur 8.3 laat zien dat met slechts enkele seconden vertraging de winst significant
afneemt. Dit effect wordt sterker naarmate de commissiekosten toenemen.
Uit onze praktische resultaten blijkt dat het gelukt is een werkend geautomatiseerd handelssysteem op te bouwen. Het systeem heeft gedurende een handelsdag 191 transacties uitgevoerd, op de
door de strategie aangegeven momenten. Met deze transacties heeft het systeem een gecorrigeerde
netto winst van 9,109.00 dollar gemaakt, dit komt overeen met een rendement van 2.47%. Onze
doelstelling was om een rendement hoger dan de risicovrije rente te behalen. Dit is ruimschoots
gelukt aangezien de risicovrije rente van de 10-jarige US Treasury Bond op dit moment 2,68% per
jaar bedraagt [10]. Deze winst had nog groter kunnen zijn, ware het niet dat enkele factoren binnen
het systeem dit belemmerden. In de discussie worden deze factoren besproken.
62
Hoofdstuk 12
Discussie
Hoewel de door ons bedachte strategie uiteindelijk een positief rendement heeft behaald, en theoretisch gezien toegevoegde waarde heeft gegenereerd, is het toch belangrijk om enkele kanttekeningen
bij dit resultaat te maken. Het is nog maar de vraag of de strategie even optimaal zou werken op
het moment dat deze met ‘echt geld’ zou worden uitgevoerd. Er bestaan namelijk enkele verschillen tussen de simulatie en de werkelijkheid, daarnaast heeft de manier waarop de simulatie heeft
plaatsgevonden indirect invloed gehad op de uitkomst. Ook is bij de real-time simulatie afgeweken
van het CASO model, welke gebruikt had moeten worden om de optima te bepalen.
Allereerst is het spijtig dat het CASO model niet gebruikt kon worden om de tradingsstrategie
van het real-time systeem voor te schrijven. Dit werd veroorzaakt door het feit dat ons systeem
niet in staat is om te kapitaliseren op alle winstmogelijkheden vanwege de snelheid waarmee de
berekeningen uitgevoerd dienen te worden en de snelheid waarmee orders geplaatst moeten worden.
Vanwege de gebruikte computer, de betrouwbaarheid van de dataconnectie en de aard van het softwarepakket TradeStation was dit onhaalbaar. Hierdoor hebben we de strategie aan moeten passen.
Het oorspronkelijke plan om de CASO waarden aan te houden werd hierdoor dus belemmerd.
Er zijn enkele punten waardoor de strategie mogelijkerwijs minder goed zal werken wanneer
deze met ‘echt geld’ uit wordt gevoerd. Ten eerste zijn de futures waarin gehandeld wordt minder
liquide dan de VXX. Hierdoor zal het wellicht op de handelsmomenten niet altijd mogelijk zijn
om tegelijkertijd alle producten te kopen of te verkopen. Het gemiddelde handelsvolume van de
eerstemaands futures is 15,471 en het gemiddelde handelsvolume van de tweedemaands futures
is 11,882. Ter vergelijking: het gemiddelde handelsvolume van de VXX ETF is 13,375,372. De
liquiditeit van de futures is dus, in verhouding tot de liquiditeit van de VXX, erg laag. Dit kan ertoe
leiden dat alleen de VXX gekocht wordt, omdat er op dat moment niet genoeg aanbod aan futures
is. Dit kan zorgen voor situaties waarbij slechts ´e´en kant van de positie wordt ingenomen. De
marktneutraliteit van de strategie komt hiermee in het geding. De door ons gebruikte simulatie in
TradeStation is gebaseerd op de laats geldende prijs voor de producten waardoor eventuele effecten
veroorzaakt door de liquiditeit van de producten niet duidelijk in de resultaten zijn meegenomen.
Het was ook mogelijk om simulaties uit te voeren op basis van de volgende geldende prijs. Dit
zorgde echter voor grote verliezen en is daarnaast minder representatief voor de werkelijkheid.
Omdat er voortdurend Bid/Ask prijzen zijn zou een order in een ‘echte’ situatie sneller uitgevoerd
kunnen worden dan de volgende door TradeStation geregistreerde trade van een ander persoon. De
werkelijke prijzen waartegen een order kan worden uitgevoerd zullen daarom ergens in het midden
van deze simulatiemethoden liggen en kunnen alleen worden bepaald wanneer de strategie met echt
geld wordt uitgevoerd.
Het feit dat we maatregelen hebben moeten nemen om de last op de computer en de software
te beperken heeft een significante invloed gehad op de hoogte van de winst. Wij zijn begonnen met
handelen op een tamelijk trage computer, en later overgeschakeld naar een snellere laptop aangezien
de eerste computer, zelfs na de genomen maatregelen, te vaak vastliep om goed te kunnen handelen.
Zelfs op deze snellere laptop kwam het echter regelmatig voor dat het programma even vastliep, of
de data niet snel genoeg doorkwam. Aangezien er bij onze strategie soms binnen enkele seconden
gehandeld moet worden, is een vastlopende computer al snel funest voor de winst. Wanneer we
beschikking hadden gehad over een computer met meer rekenkracht waren we in staat geweest om
63
gebruik te maken van meer winstmogelijkheden.
Daarnaast zorgde de gebruikte software en de daarbij behorende EasyLanguage voor een suboptimale uitvoering van de strategie. Het programma is eigenlijk bedoeld om in ´e´en product tegelijk
te handelen. Aangezien we met onze strategie gebruik maken van drie producten die tegelijkertijd
moeten worden gekocht en verkocht vormde dit een uitdaging. Via het gebruik van een externe dll1
en enkele andere technische ‘trucs’ was het mogelijk om dit te omzeilen. Door deze omwegen was
het echter niet mogelijk om de berekeningen voor de verschillende producten simultaan te laten
geschieden. Een kleine vertraging ontstond, welke ongetwijfeld invloed heeft gehad op de werking
van de strategie. Idealiter hadden we dus een ander softwarepakket gebruikt om onze strategie mee
uit te voeren. Het bleek echter zeer lastig om een bedrijf te vinden dat bereid was voor educatieve
doeleinden zijn software en data te verschaffen. Voor ons was TradeStation daarom op dit moment
de best beschikbare optie.
Ook kwam er af en toe enkele seconden geen nieuwe prijsdata binnen via TradeStation. Het is
onzeker of dit aan de computer lag of aan de dataservice zelf. Hier geldt hetzelfde: enkele seconden
niet kunnen handelen kan zorgen voor zeer grote verliezen.
Al met al zijn er dus veel factoren die de optimale werking van onze strategie verstoord kunnen
hebben en ervoor zorgen dat de resultaten van de test niet representatief zijn voor de ‘echte wereld’.
Om de strategie vrij van deze factoren te kunnen testen, zou het volgende nodig zijn:
• Een zeer snelle computer met veel rekenkracht
• Een beter softwarepakket dat gemaakt is om meerdere producten tegelijkertijd te verhandelen
• Een stabielere dataservice
• Een test waarbij werkelijk aandelen gekocht worden, voor een representatieve orderuitvoering.
Hiervoor is echter redelijk wat geld nodig, aangezien we eerder hebben berekend dat er een
minimaal startkapitaal nodig is van $368.650,00.
Vanwege deze vereisten is het u
¨berhaupt de vraag of de strategie haalbaar is voor de gemiddelde
consument. De noodzaak van een zeer snelle computer, een hoog startkapitaal en een betrouwbare
dataverbinding om veel te kunnen handelen maken het moeilijk om de strategie succesvol uit te
kunnen voeren. Een strategie waarbij minder trades per dag plaats hoeven te vinden zou waarschijnlijk beter passen bij het profiel van de gemiddelde belegger. Ook zou een strategie die handelt
in meer liquide producten waarschijnlijk voor betere resultaten zorgen (alhoewel de prijsverschillen
natuurlijk deels worden veroorzaakt door het verschil in liquiditeit van de producten). Feit blijft
echter dat het theoretisch mogelijk is om te kapitaliseren op de prijsverschillen die er bestaan tussen
de VXX en de onderliggende VIX Futures wanneer aan alle vereisten wordt voldaan.
1 DDL staat voor “dynamic-link library”. Het is een bibliotheek met waarden en functies die door meerdere
applicaties gebruikt kunnen worden.
64
Nawoord
Tijdens het maken van dit profielwerkstuk hebben wij nieuwe inzichten gekregen in de werking
van geautomatiseerde aandelenhandel, en in het bijzonder in het cre¨eren van geautomatiseerde
handelsstrategie¨en. Het bouwen van het systeem was een grotere uitdaging dan we vooraf hadden
ingeschat, maar het was erg mooi om te zien dat het systeem uiteindelijk werkte en zelfs winstgevend was. Het lijkt ons echter zeker dat het voor de gemiddelde consument lastig is om zoiets te
ontwikkelen, en dat het uitvoeren zeer kapitaalsintensief is. Onze dank gaat uit naar de heer Van
de Vegt voor de begeleiding, aan Matthijs Wouterse en Niels Schuurman voor het verlenen van
toegang tot de historische koersdata, en aan Janette Perez van TradeStation, voor het verschaffen
van het academische account waarmee we gehandeld hebben.
Maatschappelijke overwegingen
Veel van de handel in financi¨ele producten gaat inmiddels via computerprogramma’s zoals het
onze. Deze systemen bieden investeerders grote voordelen in de vorm van hoog rendement en laag
risico, maar hebben ook een schaduwzijde. Het leek ons vekeerd deze maatschappelijke kant van
de financi¨ele wereld totaal te negeren, vandaar dit kleine uitstapje richting de ethische kant en
maatschappelijke gevolgen van geautomatiseerde handel.
Gevolgen van geautomatiseerd handelen
De afgelopen jaren heeft de handel in aandelen en andere financi¨ele producten een grote verandering
doorgemaakt. Waar in 2006 een derde deel van alle beurshandel uitgevoerd werd door algoritmes,
steeg dit aandeel totdat in 2009 61% [55, 23] van alle beurshandel in de Verenigde Staten uitgevoerd
werd door de zogenaamde High Frequency Traders, handelaren die met behulp van supercomputers
en algoritmes aandelen kopen en weer verkopen binnen enkele seconden. Grote veranderingen
hebben grote gevolgen, zo ook in het geval van de aandelenmarkt, en deze gevolgen zijn zo nu en
dan zeer goed merkbaar. De eerste keer dat de wereldeconomie met deze gevolgen te maken kreeg
was op 6 mei 2010, de dag waarop de gebeurtenis plaatsvond die later bekend zou komen te staan
als de ‘flash crash’ [33, 51, 67]. Het begon als een normale dag op de Amerikaanse beursvloer, maar
rond 2 uur ‘s middags begon de Dow Jones Industrial Average ongewoon snel te dalen. Binnen
enkele minuten was de Dow Jones met 998.62 punten, oftewel 9.2 procent van zijn totale waarde,
gedaald. De index herstelde zich bijna net zo snel weer, en steeg met 619.42 punten. Wereldwijd
riep deze flash crash vragen op, en de oorzaak van de crash bleef lang onbekend. Op dit moment
is de meest aannemelijke theorie dat de crash veroorzaakt werd door een plotselinge, erg grote
verkooporder van “E-mini” futures op de S&P 500 index. Deze verkooporder had met behulp van
een algoritme langzaam, binnen enkele uren, uitgevoerd moeten worden, maar werd per ongeluk
binnen 20 minuten voltooid. Deze ongebruikelijk grote verkoop triggerde ook andere automatische
handelssystemen tot verkopen, en dit veroorzaakte een kettingreactie van verkopen, waardoor de
Dow Jones zo snel daalde. De beurs krabbelde zo snel als hij was ingestort weer overeind, maar
de schrik van deze crash bleef nog lang hangen. “Even 9/11 didn’t have that kind of impact”,
stelde Dave Lauer, voormalig High Frequency Trader [46]. Na de flash crash heeft men geprobeerd
soortgelijke toekomstige gebeurtenissen te voorkomen door het invoeren van handelspauzes. Hierbij
wordt de handel in een bepaald product tijdelijk stilgelegd op momenten van ongebruikelijk hoge
volatiliteit.
65
De flash crash heeft laten zien dat de beurs misschien makkelijker te be¨ınvloeden is dan men
zou denken, vooral nu ook het nieuws automatisch geanalyseerd wordt. De computersoftware
van analisten onderzoekt de nieuwsberichten van betrouwbare bronnen, maar ook bijvoorbeeld de
twitterfeeds en facebookpagina’s van persbureaus. Deze analysetechniek kan een enorm voordeel
zijn, maar vormt tegelijkertijd een zwakte, zo bleek op dinsdag 23 april 2013 [59, 21, 45]. Hackers
wisten via het twitterkanaal van Associated Press de valse tweet uit figuur 12.1 te plaatsen.
Figuur 12.1: Valse tweet van Associated Press
Handelssytemen die het nieuws scanden en interpreteerden, gingen spontaan over tot het verkopen
van aandelen. Dit zorgde alweer voor een kettingreactie, maar de twittercrash bleef beperkter dan
de flash crash van 2010. De Dow Jones daalde (slechts) 143 punten, en herstelde, toen de tweet
vals bleek te zijn, binnen enkele minuten weer.
Problemen gerelateerd aan complexe financi¨
ele producten
Uit het eerdere stuk over ETN’s is al gebleken dat ETN’s erg ingewikkelde producten zijn, en voor
de gemiddelde belegger wellicht wat te hoog gegrepen. Er zijn genoeg particuliere beleggers die
bijvoorbeeld de VXX ETN bezitten, en naar alle waarschijnlijkheid weet slechts een klein deel van
deze mensen hoe het door hen gekochte product precies werkt, of dat op de lange termijn deze ETN
alleen maar daalt, wat voor de consument verlies inhoudt en voor de bank winst, aangezien de
koper hier eigenlijk geld uitleent aan de bank, en een aan de index gerelateerd bedrag terugkrijgt.
Zoals in figuur 12.2 te zien is, maken lange-termijn bezitters van de VXX ETN bijna gegarandeerd
8000
VXX
7000
6000
5000
4000
3000
2000
1000
0
30−Jan−2009
21−Sep−2010
12−May−2012
Figuur 12.2: Lange termijn koers VXX
66
01−Jan−2014
verlies. Dit wordt veroorzaakt door het feit dat het product is opgebouwd uit VIX Futures van de
huidige maand en VIX Futures van de volgende maand, en zoals eerder al beschreven worden de
eerste maands futures verkocht, en tweede maands gekocht. Tweede maands VIX Futures zijn door
het zogenaame contango effects bijna altijd duurder dan eerste maands futures, en dus maakt het
fonds verlies. De VXX ETN is echter zo complex dat veel particuliere beleggers dit van tevoren niet
inzien. Ook worden complexe producten vaak als waardevoller dan simpele producten beschouwd,
terwijl dit helemaal niet het geval hoeft te zijn.
De VXX ETN is niet het enige (te) complexe product op de financi¨ele markt [35]. Er zijn
zodanig veel gecompliceerde producten, dat de Europese Unie vorig jaar een zoektocht naar het
gevaarlijkste financi¨ele product heeft uitgeschreven [32]. Het product dat deze wedstrijd gewonnen
heeft, is de Credit Default Swap.2
Joris Luyendijk, correspondent voor onder andere NRC Next en The Guardian, schetste in
2011 portretten van medewerkers van de financi¨ele wereld in Londen, door middel van meer dan
200 interviews. Hij liet de mensen voornamelijk zelf en vaak anoniem aan het woord, en wist zo
buitenstaanders een kijkje te geven in de complexe financi¨ele wereld. Een van de personen die
hij sprak was een structurer, iemand die financi¨ele producten bedenkt en in elkaar zet. Hij heeft
lange tijd bij een grote investeringsbank gewerkt en is tot de conclusie gekomen dat veel van de
(onder andere door hem) bedachte producten niet altijd even goed werken. In zijn interview zei
hij: “Generally, I’d say that 80-90% of all derivatives are morally ambiguous, to say the least. It’s
mostly to do with accounting, legal or tax needs, with greed or fear or with gambling” [42].
2 Een credit default swap, ook wel CDS is erg vergelijkbaar met een verzekering en wordt vaak afgesloten op fixed
income producten (bijvoorbeeld obligaties). Een CDS is een contract waarbij kredietrisico wordt overgedragen. Stel,
bedrijf A bezit een obligatie van bedrijf C. Bedrijf A kan het risico op wanbetaling afdekken met een CDS. Bedrijf
A betaalt hiervoor een maandelijks bedrag aan bedrijf B, de premie. Wanneer bedrijf C niet in staat is om bedrijf
A via de obligatie te betalen, dan keert bedrijf B een afgesproken bedrag aan bedrijf A uit. Het kredietrisico van
bedrijf C is nu dus overgedragen van bedrijf A naar B.
67
Bibliografie
[1]
Irene Aldridge. High-frequency trading: a practical guide to algorithmic strategies and trading
systems. Wiley trading. Hoboken, N.J: Wiley, 2010. 339 p.
[2] Algorithmic trading. en. In: Wikipedia, the free encyclopedia. Page Version ID: 575076354.
30 sep 2013. url: http : / / en . wikipedia . org / w / index . php ? title = Algorithmic _
trading&oldid=575076354 (bezocht op 30-09-2013).
[3] An Inside Look At ETF Construction. Investopedia. 28 mei 2011. url: http : / / www .
investopedia.com/articles/mutualfund/05/062705.asp (bezocht op 23-10-2013).
[4] An Introduction To Sector ETFs. Investopedia. 20 apr 2012. url: http://www.investopedia.
com/articles/exchangetradedfunds/08/sector-etfs.asp (bezocht op 23-10-2013).
[5]
Barclays iPath. iPath VIX Futures ETNs Prospectus. English. 11 jul 2013. url: http://
www.ipathetn.com/static/pdf/vix-prospectus.pdf (bezocht op 20-11-2013).
[6]
Barclays iPath. iPath VIX Futures ETNs Splits and Reverse Splits FAQs. English. 19 jul
2012. url: http://www.ipathetn.com/static/pdf/ipath-split-FAQs.pdf (bezocht op
20-11-2013).
[7]
Martin Baxter en Andrew Rennie. Financial calculus: an introduction to derivative pricing.
Cambridge; New York, NY: Cambridge University Press, 1996.
[8]
Simon Benninga. Financial modeling. 3rd ed. Cambridge, MA: MIT Press, 2008. 1132 p.
[9]
Thijs van den Berg. Calibrating the Ornstein-Uhlenbeck (Vasicek) model. Sitmo. 28 mei 2011.
url: http://www.sitmo.com/article/calibrating-the-ornstein-uhlenbeck-model/
(bezocht op 30-11-2013).
[10]
Bloomberg. United States Government Bonds. Bloomberg. url: http://www.bloomberg.
com/markets/rates-bonds/government-bonds/us/ (bezocht op 09-02-2014).
[11]
Bloomberg L.P. Bloomberg Professional Service. (Bezocht op 15-11-2013).
[12]
Damiano Brigo e.a. “A Stochastic Processes Toolkit for Risk Management”. In: arXiv:0812.4210
[q-fin] (22 dec 2008). url: http://arxiv.org/abs/0812.4210 (bezocht op 30-11-2013).
[13]
E.S. Browning. “Reading market tea leaves”. In: The Wall Street Journal Europe (31 jul
2007), p. 17–18.
[14]
Bruce I. Carlin. “Strategic price complexity in retail financial markets”. In: Journal of Financial Economics 91 (3 mrt 2009), p. 278–287. doi: 10.1016/j.jfineco.2008.05.002. url:
http://www.sciencedirect.com/science/article/pii/S0304405X08002092 (bezocht op
30-11-2013).
[15]
Bruce I. Carlin. Technical Analysis - Explained. url: https://www.credit-suisse.com/
legal/pb_research/technical_tutorial_en.pdf.
[16]
Barbara Casu en Laura Chiaramonte. “Are Cds spreads a good proxy of bank risk? Evidence from the recent financial crisis”. In: BANCARIA 11 (2011), p. 82–98. url: http :
//econpapers.repec.org/article/banbancar/v_3a11_3ay_3a2011_3am_3anovember_
3ap_3a82-98.htm (bezocht op 30-11-2013).
[17]
Mario Cerrato. The mathematics of derivatives securities with applications in MATLAB.
Hoboken: John Wiley & Sons Inc, 2012. 236 p.
68
[18]
Ernest P. Chan. Quantitative trading: how to build your own algorithmic trading business.
The Wiley trading series. Hoboken, N.J: John Wiley & Sons, 2009. 181 p.
[19] Chart pattern. en. In: Wikipedia, the free encyclopedia. Page Version ID: 564047090. 17 jul
2013. url: http : / / en . wikipedia . org / w / index . php ? title = Chart _ pattern & oldid =
564047090 (bezocht op 14-09-2013).
[20]
Chicago Board Options Exchange. The CBOE Volatility Index - VIX. English. 27 feb 2009.
(Bezocht op 20-11-2013).
[21]
Amy Chozick en Nicole Perlroth. “Social Media’s Effects On Markets Concern Regulators”.
In: The New York Times (28 apr 2013). url: http://www.nytimes.com/2013/04/29/
business / media / social - medias - effects - on - markets - concern - regulators . html
(bezocht op 08-09-2013).
[22]
Brian Conrad. Impossibility theorems for elementary integration. 19 jul 2005. url: http:
//www2.maths.ox.ac.uk/cmi/library/academy/LectureNotes05/Conrad.pdf (bezocht
op 12-12-2013).
[23]
“Declining U.S. High-Frequency Trading”. In: The New York Times (15 okt 2012). url:
http://www.nytimes.com/interactive/2012/10/15/business/Declining- US- HighFrequency-Trading.html?ref=business (bezocht op 30-09-2013).
[24]
Department of Economics, Mathematics and Statistics, Birkbeck, University of London. A
crash course in Itˆ
o calculus. url: http://www.ems.bbk.ac.uk/for_students/msc_finEng/
math_methods/lecture34.pdf (bezocht op 09-10-2013).
[25]
Deutsche Bank Research - Global Risk Analysis. Sovereign default probabilities online - Extracting implied default probabilities from CDS spreads. 12 aug 2011. url: http : / / www .
dbresearch.com/PROD/DBR_INTERNET_EN-PROD/PROD0000000000183612.pdf.
[26]
David A. Dickey en Wayne A. Fuller. “Distribution of the Estimators for Autoregressive
Time Series with a Unit Root”. In: Journal of the American Statistical Association 74 (366a
jun 1979), p. 427–431. doi: 10.1080/01621459.1979.10482531. url: http://amstat.
tandfonline.com/doi/abs/10.1080/01621459.1979.10482531#.UpnfEmTknVA (bezocht
op 30-11-2013).
[27] Double top and double bottom. en. In: Wikipedia, the free encyclopedia. Page Version ID:
542515955. 10 aug 2013. url: http://en.wikipedia.org/w/index.php?title=Double_
top_and_double_bottom&oldid=542515955 (bezocht op 14-09-2013).
[28] Exchange-traded fund. en. In: Wikipedia, the free encyclopedia. Page Version ID: 577078972.
14 okt 2013. url: http://en.wikipedia.org/w/index.php?title=Exchange- traded_
fund&oldid=577078972 (bezocht op 23-10-2013).
[29] Exchange-Traded Fund (ETF) Definition. Investopedia. 15 feb 2009. url: http : / / www .
investopedia.com/terms/e/etf.asp (bezocht op 23-10-2013).
[30]
Fabio Bellini. Vasicek. 26 mei 2009. url: http://www.economia.unimib.it/DATA/moduli/
4_4366/materiale/vasicek.pdf (bezocht op 30-11-2013).
[31] Fundamentele analyse. nl. In: Wikipedia. Page Version ID: 35485399. 16 mei 2013. url: http:
/ / nl . wikipedia . org / w / index . php ? title = Fundamentele _ analyse & oldid = 35485399
(bezocht op 01-09-2013).
[32] Gef¨
ahrlichstes Finanzprodukt Europas. url: http://www.dangerous-finance.eu/ (bezocht
op 01-02-2014).
[33]
Giovanny Moreano. Anatomy of the Flash Crash: 15 Minutes of Market Madness. CNBC.
url: http://www.cnbc.com/id/42920769 (bezocht op 30-09-2013).
[34]
William H. Greene. Econometric analysis. 5th ed. Upper Saddle River, N.J: Prentice Hall,
2003. 1026 p.
[35]
Ken Hawkins. These Financial Products Are Too Complex For The Average Joe. Investopedia. 13 nov 2009. url: http://www.investopedia.com/articles/financial-theory/08/
structured-products.asp (bezocht op 06-11-2013).
69
[36] Head and shoulders (chart pattern). en. In: Wikipedia, the free encyclopedia. Page Version
ID: 564320520. 10 aug 2013. url: http://en.wikipedia.org/w/index.php?title=Head_
and_shoulders_(chart_pattern)&oldid=564320520 (bezocht op 14-09-2013).
[37]
John Hull. Options, futures, and other derivatives. 8th. Boston: Prentice Hall, 2012. 841 p.
[38]
Kenneth Small Jeff Smith. “Weighing the Risks - Are Exchange- Traded Notes Right for Your
Clients?” In: Journal of Financial Planning (2010), p. 48–56. url: http://www.fpanet.
org/journal/CurrentIssue/TableofContents/WeighingtheRisks/.
[39]
Chad Langager en Casey Murphey. Analyzing Chart Patterns: Double Top And Double
Bottom. Investopedia. 25 feb 2009. url: http : / / www . investopedia . com / university /
charts/charts4.asp (bezocht op 14-09-2013).
[40]
Chad Langager en Casey Murphey. Analyzing Chart Patterns: Head And Shoulders. Investopedia. 25 feb 2009. url: http://www.investopedia.com/university/charts/charts2.
asp (bezocht op 14-09-2013).
[41]
Chad Langager en Casey Murphey. Analyzing Chart Patterns: Triple Tops And Bottoms.
Investopedia. 25 feb 2009. url: http : / / www . investopedia . com / university / charts /
charts9.asp (bezocht op 14-09-2013).
[42]
Joris Luyendijk. “Head of structuring equity derivatives: ’Structurers are like snakes’”. In:
The Guardian (23 mrt 2012). url: http://www.theguardian.com/commentisfree/2012/
mar/23/voices-of-finance-structuring-equity-derivatives (bezocht op 01-02-2014).
[43]
Ben R. Marshall, Rochester H. Cahan en Jared Cahan. Technical Analysis Around the World.
SSRN Scholarly Paper ID 1181367. Rochester, NY: Social Science Research Network, 1 aug
2010. url: http://papers.ssrn.com/abstract=1181367 (bezocht op 01-02-2014).
[44]
MathWorks. Augmented Dickey-Fuller test. adftest - MATLAB. 2013. url: http://www.
mathworks.nl/help/econ/adftest.html (bezocht op 30-11-2013).
[45]
Christopher Matthews. “How Does One Fake Tweet Cause a Stock Market Crash?” In: Time
(). url: http://business.time.com/2013/04/24/how-does-one-fake-tweet-cause-astock-market-crash/ (bezocht op 02-10-2013).
[46]
Marijke Meerman. Wall Street Code. Tegenlicht. 4 nov 2013.
[47]
Moody’s Investors Service - Global Credit Research. Moody’s Ultimate Recovery Database.
Apr 2007. url: https://www.moodys.com/sites/products/DefaultResearch/2006600000428092.
pdf (bezocht op 30-11-2013).
[48] Moving average. en. In: Wikipedia, the free encyclopedia. Page Version ID: 572389091. 11 sep
2013. url: http://en.wikipedia.org/w/index.php?title=Moving_average&oldid=
572389091 (bezocht op 14-09-2013).
[49] Normale verdeling. nl. In: Wikipedia. Page Version ID: 38672019. 10 aug 2013. url: http://
nl.wikipedia.org/w/index.php?title=Normale_verdeling&oldid=38672019 (bezocht
op 30-09-2013).
[50]
NYSE Euronext. NYSE Euronext TAQ Database via Wharton Research Data Services (WRDS).
(Bezocht op 10-11-2013).
[51]
“One big, bad trade”. In: The Economist (1 okt 2010). url: http://www.economist.com/
blogs/newsbook/2010/10/what_caused_flash_crash (bezocht op 30-09-2013).
[52] Ornstein–Uhlenbeck process. en. In: Wikipedia, the free encyclopedia. Page Version ID: 566989142.
8 okt 2013. url: http://en.wikipedia.org/w/index.php?title=Ornstein%E2%80%
93Uhlenbeck_process&oldid=566989142 (bezocht op 23-10-2013).
[53]
Hans Oudshoorn en Peter Siks. Beleggen voor dummies. Amsterdam: Pearson, 2012.
[54]
Scott Patterson. The quants: [how a new breed of math whizzes conquered Wall Street and
nearly destroyed it]. 1ste ed. New York: Crown Business, 2010.
[55]
Nathaniel Popper. “With Profits Dropping, High-Speed Trading Cools Down”. In: The New
York Times (14 okt 2012). url: http://www.nytimes.com/2012/10/15/business/withprofits-dropping-high-speed-trading-cools-down.html (bezocht op 04-09-2013).
70
[56] Short (finance). en. In: Wikipedia, the free encyclopedia. Page Version ID: 572853601. 12 okt
2013. url: http://en.wikipedia.org/w/index.php?title=Short_(finance)&oldid=
572853601 (bezocht op 23-10-2013).
[57] Standard deviation. en. In: Wikipedia, the free encyclopedia. Page Version ID: 583586640.
27 nov 2013. url: http://en.wikipedia.org/w/index.php?title=Standard_deviation&
oldid=583586640 (bezocht op 30-11-2013).
[58]
“Stochastic Differential Equations”. en. In: Stochastic Differential Equations. Universitext 0.
Springer Berlin Heidelberg, 2003, p. 65–84. url: http://link.springer.com/chapter/10.
1007/978-3-642-14394-6_5 (bezocht op 30-11-2013).
[59]
“The Twitter Crash: #newscrashrecover”. In: The Economist (27 apr 2013). url: http://
www.economist.com/news/finance-and-economics/21576671-hacked-tweet-brieflyunnerves-stockmarket-newscrashrecover (bezocht op 02-10-2013).
[60]
G. E. Uhlenbeck en L. S. Ornstein. “On the Theory of the Brownian Motion”. In: Physical
Review 36 (5 1 sep 1930), p. 823–841. doi: 10.1103/PhysRev.36.823. url: http://link.
aps.org/doi/10.1103/PhysRev.36.823 (bezocht op 29-11-2013).
[61]
Oldrich Vasicek. “An equilibrium characterization of the term structure”. In: Journal of
Financial Economics 5 (2 nov 1977), p. 177–188. doi: 10 . 1016 / 0304 - 405X(77 ) 90016 2. url: http : / / www . sciencedirect . com / science / article / pii / 0304405X77900162
(bezocht op 29-11-2013).
[62]
Ganapathy Vidyamurthy. Pairs trading: quantitative methods and analysis. Hoboken, N.J:
J. Wiley, 2004. 210 p.
[63]
Paul Wilmott. Frequently asked questions in quantitative finance: including key models, important formulæ, popular contracts, essays and opinions, a history of quantitative finance,
sundry lists, the commonest mistakes in quant finance, brainteasers, plenty of straight-talking,
the Modellers’ Manifesto and lots more. 2nd ed. Chichester, U.K: Wiley, 2009. 608 p.
[64]
Paul Wilmott. Paul Wilmott introduces quantitative finance. 2de ed. Chichester, West Sussex,
England; Hoboken, NJ: J. Wiley & Sons, 2007.
[65]
Paul Wilmott. Paul Wilmott on quantitative finance. 2de ed. Chichester, England; Hoboken,
NJ: John Wiley & Sons, 2006.
[66]
Yahoo! Inc. Yahoo! Finance. url: http://finance.yahoo.com/.
[67]
Heidi Moore in New York en Dan Roberts in Washington. “AP Twitter hack causes panic
on Wall Street and sends Dow plunging”. In: The Guardian (23 apr 2013). url: http :
/ / www . theguardian . com / business / 2013 / apr / 23 / ap - tweet - hack - wall - street freefall (bezocht op 30-09-2013).
71
Bijlage A
Overzicht gebruikte notaties
Symbool
R
P
t
S
σ
µ
φ
E
W
ρ
ξ
β
γ
θ
λ
ω
Betekenis
rendement
winst
tijd
prijs
standaarddeviatie, volatiliteit
gemiddelde, drift
stochasitsche variabele
verwachte waarde
Wiener proces
correlatieco¨effici¨ent
spread
hedge ratio
vertraging
snelheidsparameter mean-reverting proces
gemiddelde spread over lange termijn
evenredigheidsconstante
72
Bijlage B
CASO waarden
c (σ)
0.000
0.005
0.010
0.015
0.020
0.025
0.030
0.035
0.040
0.045
0.050
0.055
0.060
0.065
0.070
0.075
0.080
0.085
0.090
0.095
0.100
0.105
0.110
0.115
0.120
0.125
0.130
0.135
0.140
0.145
0.150
0.155
0.160
0.165
0.170
ξd (σ)
0.750
0.755
0.760
0.760
0.765
0.770
0.775
0.775
0.780
0.785
0.785
0.790
0.795
0.795
0.800
0.805
0.810
0.810
0.815
0.820
0.820
0.825
0.830
0.835
0.835
0.840
0.845
0.845
0.850
0.855
0.860
0.860
0.865
0.870
0.870
Pr
1.0000
0.9934
0.9868
0.9802
0.9736
0.9671
0.9606
0.9542
0.9478
0.9414
0.9350
0.9287
0.9224
0.9161
0.9099
0.9037
0.8975
0.8914
0.8852
0.8791
0.8731
0.8671
0.8611
0.8551
0.8491
0.8432
0.8373
0.8315
0.8257
0.8199
0.8141
0.8084
0.8027
0.7970
0.7913
c (σ)
0.175
0.180
0.185
0.190
0.195
0.200
0.205
0.210
0.215
0.220
0.225
0.230
0.235
0.240
0.245
0.250
0.255
0.260
0.265
0.270
0.275
0.280
0.285
0.290
0.295
0.300
0.305
0.310
0.315
0.320
0.325
0.330
0.335
0.340
0.345
ξd (σ)
0.875
0.880
0.885
0.885
0.890
0.895
0.900
0.900
0.905
0.910
0.910
0.915
0.920
0.925
0.925
0.930
0.935
0.940
0.940
0.945
0.950
0.950
0.955
0.960
0.965
0.965
0.970
0.975
0.980
0.980
0.985
0.990
0.995
0.995
1.000
73
Pr
0.7857
0.7801
0.7746
0.7690
0.7635
0.7581
0.7526
0.7472
0.7418
0.7364
0.7311
0.7258
0.7205
0.7153
0.7101
0.7049
0.6997
0.6946
0.6894
0.6844
0.6793
0.6743
0.6693
0.6643
0.6594
0.6544
0.6496
0.6447
0.6399
0.6350
0.6303
0.6255
0.6208
0.6161
0.6114
c (σ)
0.350
0.355
0.360
0.365
0.370
0.375
0.380
0.385
0.390
0.395
0.400
0.405
0.410
0.415
0.420
0.425
0.430
0.435
0.440
0.445
0.450
0.455
0.460
0.465
0.470
0.475
0.480
0.485
0.490
0.495
0.500
0.505
0.510
0.515
0.520
ξd (σ)
1.005
1.010
1.010
1.015
1.020
1.025
1.025
1.030
1.035
1.040
1.040
1.045
1.050
1.055
1.055
1.060
1.065
1.070
1.070
1.075
1.080
1.085
1.085
1.090
1.095
1.100
1.100
1.105
1.110
1.115
1.115
1.120
1.125
1.130
1.135
Pr
0.6067
0.6021
0.5975
0.5930
0.5884
0.5839
0.5794
0.5749
0.5705
0.5661
0.5617
0.5573
0.5530
0.5487
0.5444
0.5401
0.5359
0.5317
0.5275
0.5233
0.5192
0.5151
0.5110
0.5069
0.5029
0.4989
0.4949
0.4909
0.4870
0.4830
0.4792
0.4753
0.4714
0.4676
0.4638
c (σ)
0.525
0.530
0.535
0.540
0.545
0.550
0.555
0.560
0.565
0.570
0.575
0.580
0.585
0.590
0.595
0.600
0.605
0.610
0.615
0.620
0.625
0.630
0.635
0.640
0.645
0.650
0.655
0.660
0.665
0.670
0.675
0.680
0.685
0.690
0.695
0.700
0.705
0.710
0.715
0.720
0.725
0.730
0.735
0.740
0.745
0.750
0.755
0.760
0.765
0.770
ξd (σ)
1.135
1.140
1.145
1.150
1.150
1.155
1.160
1.165
1.165
1.170
1.175
1.180
1.185
1.185
1.190
1.195
1.200
1.200
1.205
1.210
1.215
1.220
1.220
1.225
1.230
1.235
1.235
1.240
1.245
1.250
1.255
1.255
1.260
1.265
1.270
1.270
1.275
1.280
1.285
1.290
1.290
1.295
1.300
1.305
1.310
1.310
1.315
1.320
1.325
1.330
Pr
0.4600
0.4563
0.4526
0.4489
0.4452
0.4415
0.4379
0.4343
0.4307
0.4271
0.4236
0.4201
0.4166
0.4131
0.4097
0.4062
0.4028
0.3994
0.3961
0.3927
0.3894
0.3861
0.3828
0.3796
0.3764
0.3731
0.3700
0.3668
0.3636
0.3605
0.3574
0.3543
0.3513
0.3482
0.3452
0.3422
0.3392
0.3363
0.3333
0.3304
0.3275
0.3246
0.3218
0.3189
0.3161
0.3133
0.3105
0.3078
0.3050
0.3023
c (σ)
0.775
0.780
0.785
0.790
0.795
0.800
0.805
0.810
0.815
0.820
0.825
0.830
0.835
0.840
0.845
0.850
0.855
0.860
0.865
0.870
0.875
0.880
0.885
0.890
0.895
0.900
0.905
0.910
0.915
0.920
0.925
0.930
0.935
0.940
0.945
0.950
0.955
0.960
0.965
0.970
0.975
0.980
0.985
0.990
0.995
1.000
1.005
1.010
1.015
1.020
ξd (σ)
1.330
1.335
1.340
1.345
1.345
1.350
1.355
1.360
1.365
1.365
1.370
1.375
1.380
1.385
1.385
1.390
1.395
1.400
1.405
1.410
1.410
1.415
1.420
1.425
1.430
1.430
1.435
1.440
1.445
1.450
1.450
1.455
1.460
1.465
1.470
1.470
1.475
1.480
1.485
1.490
1.495
1.495
1.500
1.505
1.510
1.515
1.515
1.520
1.525
1.530
74
Pr
0.2996
0.2969
0.2943
0.2916
0.2890
0.2864
0.2838
0.2812
0.2787
0.2762
0.2736
0.2712
0.2687
0.2662
0.2638
0.2614
0.2590
0.2566
0.2542
0.2518
0.2495
0.2472
0.2449
0.2426
0.2403
0.2381
0.2359
0.2337
0.2315
0.2293
0.2271
0.2250
0.2228
0.2207
0.2186
0.2165
0.2145
0.2124
0.2104
0.2084
0.2064
0.2044
0.2024
0.2005
0.1985
0.1966
0.1947
0.1928
0.1909
0.1891
c (σ)
1.025
1.030
1.035
1.040
1.045
1.050
1.055
1.060
1.065
1.070
1.075
1.080
1.085
1.090
1.095
1.100
1.105
1.110
1.115
1.120
1.125
1.130
1.135
1.140
1.145
1.150
1.155
1.160
1.165
1.170
1.175
1.180
1.185
1.190
1.195
1.200
1.205
1.210
1.215
1.220
1.225
1.230
1.235
1.240
1.245
1.250
1.255
1.260
1.265
1.270
ξd (σ)
1.535
1.535
1.540
1.545
1.550
1.555
1.560
1.560
1.565
1.570
1.575
1.580
1.585
1.585
1.590
1.595
1.600
1.605
1.605
1.610
1.615
1.620
1.625
1.630
1.630
1.635
1.640
1.645
1.650
1.655
1.655
1.660
1.665
1.670
1.675
1.680
1.680
1.685
1.690
1.695
1.700
1.705
1.705
1.710
1.715
1.720
1.725
1.730
1.735
1.735
Pr
0.1872
0.1854
0.1836
0.1818
0.1800
0.1782
0.1764
0.1747
0.1729
0.1712
0.1695
0.1678
0.1662
0.1645
0.1628
0.1612
0.1596
0.1580
0.1564
0.1548
0.1532
0.1517
0.1501
0.1486
0.1471
0.1456
0.1441
0.1426
0.1412
0.1397
0.1383
0.1368
0.1354
0.1340
0.1326
0.1313
0.1299
0.1285
0.1272
0.1259
0.1245
0.1232
0.1219
0.1207
0.1194
0.1181
0.1169
0.1156
0.1144
0.1132
c (σ)
1.275
1.280
1.285
1.290
1.295
1.300
1.305
1.310
1.315
1.320
1.325
1.330
1.335
1.340
1.345
1.350
1.355
1.360
1.365
1.370
1.375
1.380
1.385
1.390
1.395
1.400
1.405
1.410
1.415
1.420
1.425
1.430
1.435
1.440
1.445
1.450
1.455
1.460
1.465
1.470
1.475
1.480
1.485
1.490
1.495
1.500
1.505
1.510
1.515
1.520
ξd (σ)
1.740
1.745
1.750
1.755
1.760
1.760
1.765
1.770
1.775
1.780
1.785
1.785
1.790
1.795
1.800
1.805
1.810
1.815
1.815
1.820
1.825
1.830
1.835
1.840
1.845
1.845
1.850
1.855
1.860
1.865
1.870
1.870
1.875
1.880
1.885
1.890
1.895
1.900
1.900
1.905
1.910
1.915
1.920
1.925
1.930
1.930
1.935
1.940
1.945
1.950
Pr
0.1120
0.1108
0.1096
0.1084
0.1073
0.1061
0.1050
0.1038
0.1027
0.1016
0.1005
0.0994
0.0983
0.0972
0.0962
0.0951
0.0941
0.0931
0.0920
0.0910
0.0900
0.0890
0.0880
0.0871
0.0861
0.0851
0.0842
0.0833
0.0823
0.0814
0.0805
0.0796
0.0787
0.0778
0.0769
0.0761
0.0752
0.0743
0.0735
0.0727
0.0718
0.0710
0.0702
0.0694
0.0686
0.0678
0.0670
0.0663
0.0655
0.0647
c (σ)
1.525
1.530
1.535
1.540
1.545
1.550
1.555
1.560
1.565
1.570
1.575
1.580
1.585
1.590
1.595
1.600
1.605
1.610
1.615
1.620
1.625
1.630
1.635
1.640
1.645
1.650
1.655
1.660
1.665
1.670
1.675
1.680
1.685
1.690
1.695
1.700
1.705
1.710
1.715
1.720
1.725
1.730
1.735
1.740
1.745
1.750
1.755
1.760
1.765
1.770
ξd (σ)
1.955
1.960
1.960
1.965
1.970
1.975
1.980
1.985
1.990
1.995
1.995
2.000
2.005
2.010
2.015
2.020
2.025
2.025
2.030
2.035
2.040
2.045
2.050
2.055
2.060
2.060
2.065
2.070
2.075
2.080
2.085
2.090
2.090
2.095
2.100
2.105
2.110
2.115
2.120
2.125
2.125
2.130
2.135
2.140
2.145
2.150
2.155
2.160
2.160
2.165
75
Pr
0.0640
0.0632
0.0625
0.0618
0.0611
0.0603
0.0596
0.0589
0.0582
0.0576
0.0569
0.0562
0.0556
0.0549
0.0542
0.0536
0.0530
0.0523
0.0517
0.0511
0.0505
0.0499
0.0493
0.0487
0.0481
0.0475
0.0469
0.0464
0.0458
0.0453
0.0447
0.0442
0.0436
0.0431
0.0426
0.0420
0.0415
0.0410
0.0405
0.0400
0.0395
0.0390
0.0385
0.0381
0.0376
0.0371
0.0367
0.0362
0.0358
0.0353
c (σ)
1.775
1.780
1.785
1.790
1.795
1.800
1.805
1.810
1.815
1.820
1.825
1.830
1.835
1.840
1.845
1.850
1.855
1.860
1.865
1.870
1.875
1.880
1.885
1.890
1.895
1.900
1.905
1.910
1.915
1.920
1.925
1.930
1.935
1.940
1.945
1.950
1.955
1.960
1.965
1.970
1.975
1.980
1.985
1.990
1.995
2.000
2.005
2.010
2.015
2.020
ξd (σ)
2.170
2.175
2.180
2.185
2.190
2.195
2.195
2.200
2.205
2.210
2.215
2.220
2.225
2.230
2.235
2.235
2.240
2.245
2.250
2.255
2.260
2.265
2.270
2.270
2.275
2.280
2.285
2.290
2.295
2.300
2.305
2.310
2.310
2.315
2.320
2.325
2.330
2.335
2.340
2.345
2.350
2.350
2.355
2.360
2.365
2.370
2.375
2.380
2.385
2.390
Pr
0.0349
0.0344
0.0340
0.0336
0.0331
0.0327
0.0323
0.0319
0.0315
0.0311
0.0307
0.0303
0.0299
0.0295
0.0292
0.0288
0.0284
0.0281
0.0277
0.0273
0.0270
0.0266
0.0263
0.0259
0.0256
0.0253
0.0249
0.0246
0.0243
0.0240
0.0237
0.0233
0.0230
0.0227
0.0224
0.0221
0.0218
0.0216
0.0213
0.0210
0.0207
0.0204
0.0202
0.0199
0.0196
0.0194
0.0191
0.0188
0.0186
0.0183
c (σ)
2.025
2.030
2.035
2.040
2.045
2.050
2.055
2.060
2.065
2.070
2.075
2.080
2.085
2.090
2.095
2.100
2.105
2.110
2.115
2.120
2.125
2.130
2.135
2.140
2.145
2.150
2.155
2.160
2.165
2.170
2.175
2.180
2.185
2.190
2.195
2.200
2.205
2.210
2.215
2.220
2.225
2.230
2.235
2.240
2.245
2.250
2.255
2.260
2.265
2.270
ξd (σ)
2.390
2.395
2.400
2.405
2.410
2.415
2.420
2.425
2.430
2.430
2.435
2.440
2.445
2.450
2.455
2.460
2.465
2.470
2.470
2.475
2.480
2.485
2.490
2.495
2.500
2.505
2.510
2.515
2.515
2.520
2.525
2.530
2.535
2.540
2.545
2.550
2.555
2.560
2.560
2.565
2.570
2.575
2.580
2.585
2.590
2.595
2.600
2.605
2.605
2.610
Pr
0.0181
0.0178
0.0176
0.0174
0.0171
0.0169
0.0167
0.0164
0.0162
0.0160
0.0158
0.0156
0.0153
0.0151
0.0149
0.0147
0.0145
0.0143
0.0141
0.0139
0.0137
0.0135
0.0133
0.0132
0.0130
0.0128
0.0126
0.0124
0.0123
0.0121
0.0119
0.0117
0.0116
0.0114
0.0113
0.0111
0.0109
0.0108
0.0106
0.0105
0.0103
0.0102
0.0100
0.0099
0.0097
0.0096
0.0095
0.0093
0.0092
0.0091
c (σ)
2.275
2.280
2.285
2.290
2.295
2.300
2.305
2.310
2.315
2.320
2.325
2.330
2.335
2.340
2.345
2.350
2.355
2.360
2.365
2.370
2.375
2.380
2.385
2.390
2.395
2.400
2.405
2.410
2.415
2.420
2.425
2.430
2.435
2.440
2.445
2.450
2.455
2.460
2.465
2.470
2.475
2.480
2.485
2.490
2.495
2.500
2.505
2.510
2.515
2.520
ξd (σ)
2.615
2.620
2.625
2.630
2.635
2.640
2.645
2.650
2.655
2.655
2.660
2.665
2.670
2.675
2.680
2.685
2.690
2.695
2.700
2.700
2.705
2.710
2.715
2.720
2.725
2.730
2.735
2.740
2.745
2.750
2.750
2.755
2.760
2.765
2.770
2.775
2.780
2.785
2.790
2.795
2.800
2.805
2.805
2.810
2.815
2.820
2.825
2.830
2.835
2.840
76
Pr
0.0089
0.0088
0.0087
0.0085
0.0084
0.0083
0.0082
0.0081
0.0079
0.0078
0.0077
0.0076
0.0075
0.0074
0.0073
0.0071
0.0070
0.0069
0.0068
0.0067
0.0066
0.0065
0.0064
0.0063
0.0062
0.0061
0.0061
0.0060
0.0059
0.0058
0.0057
0.0056
0.0055
0.0054
0.0054
0.0053
0.0052
0.0051
0.0050
0.0050
0.0049
0.0048
0.0047
0.0047
0.0046
0.0045
0.0045
0.0044
0.0043
0.0042
c (σ)
2.525
2.530
2.535
2.540
2.545
2.550
2.555
2.560
2.565
2.570
2.575
2.580
2.585
2.590
2.595
2.600
2.605
2.610
2.615
2.620
2.625
2.630
2.635
2.640
2.645
2.650
2.655
2.660
2.665
2.670
2.675
2.680
2.685
2.690
2.695
2.700
2.705
2.710
2.715
2.720
2.725
2.730
2.735
2.740
2.745
2.750
2.755
2.760
2.765
2.770
ξd (σ)
2.845
2.850
2.855
2.855
2.860
2.865
2.870
2.875
2.880
2.885
2.890
2.895
2.900
2.905
2.910
2.910
2.915
2.920
2.925
2.930
2.935
2.940
2.945
2.950
2.955
2.960
2.965
2.965
2.970
2.975
2.980
2.985
2.990
2.995
3.000
3.005
3.010
3.015
3.020
3.025
3.025
3.030
3.035
3.040
3.045
3.050
3.055
3.060
3.065
3.070
Pr
0.0042
0.0041
0.0041
0.0040
0.0039
0.0039
0.0038
0.0037
0.0037
0.0036
0.0036
0.0035
0.0035
0.0034
0.0033
0.0033
0.0032
0.0032
0.0031
0.0031
0.0030
0.0030
0.0029
0.0029
0.0029
0.0028
0.0028
0.0027
0.0027
0.0026
0.0026
0.0025
0.0025
0.0025
0.0024
0.0024
0.0023
0.0023
0.0023
0.0022
0.0022
0.0022
0.0021
0.0021
0.0021
0.0020
0.0020
0.0020
0.0019
0.0019
c (σ)
2.775
2.780
2.785
2.790
2.795
2.800
2.805
2.810
2.815
2.820
2.825
2.830
2.835
2.840
2.845
ξd (σ)
3.075
3.080
3.085
3.085
3.090
3.095
3.100
3.105
3.110
3.115
3.120
3.125
3.130
3.135
3.140
Pr
0.0019
0.0018
0.0018
0.0018
0.0017
0.0017
0.0017
0.0017
0.0016
0.0016
0.0016
0.0015
0.0015
0.0015
0.0015
c (σ)
2.850
2.855
2.860
2.865
2.870
2.875
2.880
2.885
2.890
2.895
2.900
2.905
2.910
2.915
2.920
ξd (σ)
3.145
3.145
3.150
3.155
3.160
3.165
3.170
3.175
3.180
3.185
3.190
3.195
3.200
3.205
3.210
77
Pr
0.0014
0.0014
0.0014
0.0014
0.0013
0.0013
0.0013
0.0013
0.0013
0.0012
0.0012
0.0012
0.0012
0.0012
0.0011
c (σ)
2.925
2.930
2.935
2.940
2.945
2.950
2.955
2.960
2.965
2.970
2.975
2.980
2.985
2.990
2.995
ξd (σ)
3.210
3.215
3.220
3.225
3.230
3.235
3.240
3.245
3.250
3.255
3.260
3.265
3.270
3.275
3.275
Pr
0.0011
0.0011
0.0011
0.0011
0.0010
0.0010
0.0010
0.0010
0.0010
0.0010
0.0009
0.0009
0.0009
0.0009
0.0009
Bijlage C
Geschreven MATLAB code
Tick2second
1
2
3
4
5
function [newtime,newprice] = tick2second(time,price)
%TIME2INTERVAL Zet Bloomberg Tick Data om naar secondendata
%
Zet meerdere ticks om in secondendata door de openingstick te nemen van
%
iedere seconde. Daarnaast worden missende waardes opgevuld met vorige
%
prijsdata.
6
7
8
temptime(1) = time(1);
tempprice(1) = price(1);
9
10
for i=1:length(time)
11
if temptime(end) 6= time(i)
temptime(end+1) = time(i);
tempprice(end+1) = price(i);
end
12
13
14
15
16
end
17
18
19
20
dt = datenum(0,0,0,0,0,1);
newtime = temptime(1):dt:temptime(end);
newprice = zeros(1,length(newtime));
21
22
k=1;
23
24
25
26
27
28
29
30
31
for j=1:length(newtime)
if abs(temptime(k)− newtime(j)) < 0.5*dt
newprice(j) = tempprice(k);
k = k+1;
else
newprice(j) = newprice(j−1);
end
end
Browninan motion generator
Gebruikt voor figuur 2.4
1
2
3
4
function [ output args ] = Brownian(start,mu,sigma,steps)
%Brownse beweging GENERATOR Deze functie plot enkele Brownse bewegings
%
Deze functie plot drie Brownse bewegingen voor een gegeven startwaarde, mu,
%
sigma en aantal stappen.
5
6
7
8
9
sigma = sigma / steps;
mu = 1 + mu / steps;
gbmeen=start;
value = start;
78
10
11
12
13
14
for i = 2:steps
gbmeen(end+1) = value*mu + value*sigma*normrnd(0,1);
value = gbmeen(end);
end
15
16
17
plot(gbmeen,'Color',[0 0 0]);
hold on;
18
19
20
gbmtwee = start;
value = start;
21
22
23
24
25
for i = 2:steps
gbmtwee(end+1) = value*mu + value*sigma*normrnd(0,1);
value = gbmtwee(end);
end
26
27
plot(gbmtwee,'Color',[0.75 0.75 0.75]);
28
29
30
gbmdrie = start;
value = start;
31
32
33
34
35
for i = 2:steps
gbmdrie(end+1) = value*mu + value*sigma*normrnd(0,1);
value = gbmdrie(end);
end
36
37
plot(gbmdrie,'Color',[0.5 0.5 0.5]);
38
39
40
legend('Simulatie 1','Simulatie 2','Simulatie 3')
legend('Location','SouthWest')
41
42
43
hold off;
end
VXX futures weight calculator
1
2
3
4
5
6
7
function [front,second] = stfweight(date)
%Short Term VIX Futures Total Return Index Weigth
%
Berekent het percentage van het AANTAL front en second month futures in de
%
index op een gegeven dag volgens de vorm 'dd−mm−yy'. Als deze leeg
%
wordt gelaten wordt de huidige dag gebruikt. Output arguments zijn
%
[front,second] in een decimale representatie. Werkt alleen na 16
%
januari 2013.
8
9
10
% Alle futures expirations voor 2013 en 2014
vxexpdates = datenum({'16−01−13', '13−02−13', '20−03−13', '17−04−13', '22−05−13', ...
'19−06−13', '17−07−13', '21−08−13', '18−09−13', '16−10−13', '20−11−13', ...
'18−12−13', '22−01−14', '19−02−14', '18−03−14', '16−04−14', '21−05−14', ...
'18−06−14', '16−07−14', '20−08−14', '17−09−14', '22−10−14', '19−11−14', ...
'17−12−14'},'dd−mm−yy');
11
12
13
14
15
16
17
18
% Controleer of er een speciale datum is gegeven, indien het geval, deze
% gebruiken, anders is de dag de huidige dag
if nargin < 1
vandaag = today();
else
vandaag = datenum(date,'dd−mm−yy');
end
19
20
21
% Bereken de volgende werkdag
morgen = busdate(vandaag, 1);
22
23
24
25
26
% Bereken de huidige experiatiedatum en vorige expiratiedatum
currexpdate = vxexpdates(1);
for i = 1:24
if vandaag > vxexpdates(i)
79
currexpdate = vxexpdates(i+1);
prevexpdate = vxexpdates(i);
27
28
end
29
30
end
31
32
33
% Bereken de laatste handelsdag in huidige periode
currlasttrade = currexpdate − 1;
34
35
36
% Bereken totaal aantal werkdagen in huidige roll periode
dt = length(busdays(prevexpdate,currlasttrade));
37
38
39
% Bereken het aantal werkdagen te gaan in huidige roll periode
dr = length(busdays(morgen,currlasttrade));
40
41
42
% Bereken het percentage contracten van de eerste maand
front = dr/dt;
43
44
45
% Berkene het percentage contracten van de tweede maand
second = 1 − front;
46
47
48
49
50
51
% Zet tweede maands contracten om in eerste maands contracten bij einde periode
if second == 1
front = 1;
second = 0;
end
52
53
54
display(front);
display(second);
55
56
end
Minimalisatie fout RTindex en IVindex
Gebruikt voor figuur 6.2
1
2
3
4
5
%MINERROR Vindt de optimale waarde voor de delay en hedge ratio
%
Vindt aan de hand van de rtindex en de Indicative Value index de
%
correcte hedge ratio door via een Monte Carlo simulatie de minimale
%
afwijking tussen de rtindex en de Indicative Value index vast te
%
stellen.
6
7
8
prompt = 'Geef minimale waarde voor hedge ratio: ';
mini = input(prompt);
9
10
11
prompt = 'Geef maximale waarde voor hedge ratio: ';
maxi = input(prompt);
12
13
14
prompt = 'Geef sample size (tussen 0.01 en 0.0001): ';
sample = input(prompt);
15
16
afwijking = [];
17
18
19
x = [mini:sample:maxi];
y = [0:60];
20
21
[L,P] = meshgrid(x,y);
22
23
24
25
26
27
28
29
30
for i=0:60
l = 23401 − i;
j=1;
for k=mini:sample:maxi
afwijking(i+1,j) = (sum(abs(avxxivprice((i+1):23401) − rtindex(1:l)*k)));
j = j + 1;
end
end
31
32
33
surfc(L,P,afwijking);
xlim([mini,maxi]);
80
34
view([50 90 20]);
35
36
[r,c]=find(afwijking==min(min(afwijking())));
37
38
39
delay = y(r);
hedge = x(c);
40
41
42
display(delay);
display(hedge);
43
44
45
46
ylabel('Delay');
xlabel('Hedgeratio');
zlabel('Cumulatieve afwijking RT Index t.o.v. IV Index');
47
48
clear x y r c;
49
50
title('');
Mean en std methode vergelijker voor het vinden van labda
Gebruikt voor figuur 7.1
1
%MEANvsSTD Vergelijkt de mean en std methode voor het vinden van labda
2
3
4
5
6
7
8
spreadvar1
spreadvar2
spreadvar3
spreadvar4
spreadvar5
spreadvar6
=
=
=
=
=
=
spread31mei;
spread24juni;
spread22juli;
spread10sept;
spread8okt;
spread4nov;
9
10
11
s = [];
hold off;
12
13
14
15
for m = −0.05:0.0001:0.05
s(end+1) = std(abs(spreadvar1 − m ));
end
16
17
18
19
m = −0.05:0.0001:0.05;
[minimum,mindex] = min(s);
mu = m(mindex);
20
21
22
23
mei = plot(m,s,'b');
hold on;
optr = plot(mu,minimum,'+r');
24
25
26
gem = mean(spreadvar1);
optg = plot(gem,minimum,'+g');
27
28
29
clear m spread;
s = [];
30
31
32
33
for m = −0.05:0.0001:0.05
s(end+1) = std(abs(spreadvar2 − m ));
end
34
35
36
37
m = −0.05:0.0001:0.05;
[minimum,mindex] = min(s);
mu = m(mindex);
38
39
40
juni = plot(m,s,'r');
plot(mu,minimum,'+r');
41
42
43
gem = mean(spreadvar2);
plot(gem,minimum,'+g');
44
45
46
clear m spread;
s = [];
81
47
48
49
50
for m = −0.05:0.0001:0.05
s(end+1) = std(abs(spreadvar3 − m ));
end
51
52
53
54
m = −0.05:0.0001:0.05;
[minimum,mindex] = min(s);
mu = m(mindex);
55
56
57
juli = plot(m,s,'b−.');
plot(mu,minimum,'+r');
58
59
60
gem = mean(spreadvar3);
plot(gem,minimum,'+g');
61
62
63
clear m spread;
s = [];
64
65
66
67
for m = −0.05:0.0001:0.05
s(end+1) = std(abs(spreadvar4 − m ));
end
68
69
70
71
m = −0.05:0.0001:0.05;
[minimum,mindex] = min(s);
mu = m(mindex);
72
73
74
sept = plot(m,s,'r−.');
plot(mu,minimum,'+r');
75
76
77
gem = mean(spreadvar4);
plot(gem,minimum,'+g');
78
79
80
clear m spread;
s = [];
81
82
83
84
for m = −0.05:0.0001:0.05
s(end+1) = std(abs(spreadvar5 − m ));
end
85
86
87
88
m = −0.05:0.0001:0.05;
[minimum,mindex] = min(s);
mu = m(mindex);
89
90
91
okt = plot(m,s,'b−−');
plot(mu,minimum,'+r');
92
93
94
gem = mean(spreadvar5);
plot(gem,minimum,'+g');
95
96
97
clear m spread;
s = [];
98
99
100
101
for m = −0.05:0.0001:0.05
s(end+1) = std(abs(spreadvar6 − m ));
end
102
103
104
105
m = −0.05:0.0001:0.05;
[minimum,mindex] = min(s);
mu = m(mindex);
106
107
108
nov = plot(m,s,'r−−');
plot(mu,minimum,'+r');
109
110
111
gem = mean(spreadvar6);
plot(gem,minimum,'+g');
112
113
114
115
xlabel('\lambda');
ylabel('\sigma');
legend([mei juni juli sept okt nov optr optg],'31 mei','24 juni','22 juli','10 ...
september','8 oktober','4 november','std methode \lambda','mean methode ...
82
\lambda','Location','SouthWest');
116
117
118
clear m spread s spreadvar1 spreadvar2 spreadvar3 spreadvar4 spreadvar5 ...
spreadvar6 minimum mindex gen mei juni juli sept okt nov optb optr optg;
hold off;
CASO (1 dimensionaal, afhankelijk van divergence target)
Gebruikt voor 7.2
1
2
3
4
5
6
function [target,maximum] = caso(c,m,s)
%CASO (Convergence Arbitrage Strategy Optimum) Berekent het optimale divergence ...
target
%
output: [target,maximum]
%
caso('commissiekosten per share','mu van distributie
%
divergences','sigma van distributie divergences')
%
Het model gaat uit van een normale distributie van de divergences.
7
8
9
10
11
format long;
f = @(x) 2.*(x−c).*(1−normcdf(x,m,s));
[maximum,target] = max(f(c:0.000001:0.8));
target = (target−1)*0.000001 + c;
12
13
ezplot(f,[c,0.08]);
14
15
16
xlabel('Divergence target ($)');
ylabel('Theoretische winst');
17
18
hold on;
19
20
21
plot(target,maximum,'r+');
text(target,maximum,sprintf('Maximale ...
winst'),'VerticalAlignment','bottom','HorizontalAlignment','left');
22
23
ylim([0 3e−3]);
24
25
26
27
hold off;
set(gca,'YTick',[]);
title('');
28
29
30
target
maximum
31
32
end
Strategie test bij vastliggende commissiekosten
Gebruikt voor figuur 8.1
1
2
3
4
5
6
function strategyprofit(spreadvar,commission)
%STRATEGYPROFIT Test winst van strategie op historische data
%
Simplele test om de winst van een strategie te testen aan de hand van
%
historische data bij een gegeven commissiekosten. Het divergence target
%
wordt hier als variabele gebruikt.
%
Instructies voor input: strategyprofit('variabele met spread ...
data','commissiekosten in $')
7
8
9
10
11
12
13
14
position = 0;
target = commission:0.0001:0.08;
close = 0.01;
profit = zeros(length(target),1);
spread = spreadvar;
maxi = [];
maxindex = [];
15
83
16
17
m = mean(spreadvar);
spread = spread − m;
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
for j = 1:length(target)
temptarget = target(j);
for i = 1:length(spread)
if position == 0
if abs(spread(i)) ≥ temptarget
openp = spread(i);
position = 1;
end
else
if abs(spread(i)) < close
tempprof = abs(openp − spread(i)) − commission;
position = 0;
profit(j) = profit(j) + tempprof;
end
end
end
end
36
37
plot(target,profit);
CASO vs historisch (multi dimensionaal, afhankelijk van commissiekosten)
Gebruikt voor figuur 8.2
1
2
3
4
5
function casovshist(spreadvar)
%CASOvsHIST Vergelijkt de historische data met het CASO model
%
Bij het vergelijken van de historische data met het CASo model wordt de
%
commissiekosten als variabele gebruikt.
%
Instructies voor input: casovshist('variabele met spread data')
6
7
8
9
10
11
12
13
14
15
16
hold off;
position = 0;
target = 0:0.0001:0.08;
close = 0.01;
profit = zeros(length(target),1);
spread = spreadvar;
maxi = [];
maxindex = [];
maximum = [];
maximumindex = [];
17
18
19
m = mean(spreadvar);
s = std(spreadvar);
20
21
spread = spread − m;
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
% Historisch
for c = 0:0.0001:0.08
for j = 1:length(target)
temptarget = target(j);
for i = 1:length(spread)
if position == 0
if abs(spread(i)) > temptarget
openp = spread(i);
position = 1;
end
else
if abs(spread(i)) < close
tempprof = abs(openp − spread(i)) − c;
position = 0;
profit(j) = profit(j) + tempprof;
38
39
end
84
end
40
end
41
end
[maxi(end+1),maxindex(end+1)] = max(profit);
profit = zeros(length(target),1);
42
43
44
45
end
46
47
48
49
50
51
52
53
54
55
% CASO
for c = 0:0.0001:0.08
winst = [];
for x = 0:0.0001:0.08
winst(end+1) = (x−c).*((1−normcdf(x,0,s))+normcdf(−x,0,s));
end
[maximum(end+1),maximumindex(end+1)] = max(winst);
clear profit;
end
56
57
58
59
commission = 0:0.0001:0.08;
maxindex = (maxindex − 1) .* 0.0001;
maxindex = maxindex;
60
61
62
63
64
maximumindex = (maximumindex − 1) .* 0.0001;
target = (target−1) .* 0.0001;
coeff = maxi(10)/maximum(10);
maximum = coeff * maximum;
65
66
67
68
69
70
71
72
73
% Linker plot
subplot(1,2,1);
plot(commission,maxi,'b');
hold on;
plot(commission,maximum,'r−−');
xlabel('Commissiekosten ($)');
ylabel('Maximale winst per pair per dag ($)');
legend('Historisch','CASO voorspeling','Location','NorthEast');
74
75
76
77
78
79
80
% Rechter plot
subplot(1,2,2);
plot(commission,maxindex,'b');
hold on;
plot(commission,maximumindex,'r−−');
plot(commission,commission,'g−−');
81
82
83
xlabel('Commissiekosten ($)');
ylabel('Optimale divergence target ($)');
84
85
legend('Historisch','CASO voorspeling','y = x','Location','NorthWest');
86
87
hold off;
88
89
end
Delay test
Gebruikt voor figuur 8.3
1
2
3
4
5
6
7
8
function delay2(spreadvar)
%DELAY2 Test de impact van een hypothetische delay op de winst
%
Zoals bij andere tests wordt aan de hand van het optimale target bij
%
iedere commissiekosten de msximale winst berekend. Nu wordt het
%
gesimuleerde handelen echter beinvloed door de aanwezigheid van een
%
vertraging (delay). Wanneer een target wordt waargenomen om te handelen
%
zal de prijs worden genomen van x seconden later.
%
Instructies voor input: casovshist('variabele met spread data')
9
10
11
12
13
position = 0;
target = 0.01:0.0001:0.08;
close = 0.01;
profit = zeros(length(target),1);
85
14
15
16
17
18
spread = spreadvar;
maxindex = [];
maxi = [];
maxi1 = [];
maxi2 = [];
19
20
21
m = mean(spreadvar);
spread = spread − m;
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
% Historische winst 0 seconden delay
for c = 0:0.0001:0.06
for j = 1:(length(target)−2)
temptarget = target(j);
for i = 1:length(spread)
if position == 0
if abs(spread(i)) > temptarget
openp = spread(i);
position = 1;
end
else
if abs(spread(i)) < close
tempprof = abs(openp − spread(i)) − c;
position = 0;
profit(j) = profit(j) + tempprof;
end
end
end
end
[maxi(end+1),maxindex(end+1)] = max(profit);
profit = zeros(length(target),1);
end
45
46
47
48
clear profit tempprof;
position = 0;
profit = zeros(length(target),1);
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
% Historisch winst 1 seconde delay
for c = 0:0.0001:0.06
temptarget = target(round(maxindex(round(1+(c.*10000)))));
for i = 1:(length(spread)−2)
if position == 0
if abs(spread(i)) > temptarget
openp = spread(i+1);
position = 1;
end
else
if abs(spread(i)) < close
tempprof = abs(openp − spread(i+1)) − c;
position = 0;
profit(j) = profit(j) + tempprof;
end
end
end
maxi1(end+1) = max(profit);
profit = zeros(length(target),1);
end
70
71
72
73
clear profit tempprof;
position = 0;
profit = zeros(length(target),1);
74
75
76
77
78
79
80
81
82
83
% Historisch winst 2 seconden delay
for c = 0:0.0001:0.06
temptarget = target(round(maxindex(round(1+(c.*10000)))));
for i = 1:(length(spread)−2)
if position == 0
if abs(spread(i)) > temptarget
openp = spread(i+2);
position = 1;
end
86
else
84
if abs(spread(i)) < close
tempprof = abs(openp − spread(i+2)) − c;
position = 0;
profit(j) = profit(j) + tempprof;
end
85
86
87
88
89
end
end
maxi2(end+1) = max(profit);
profit = zeros(length(target),1);
90
91
92
93
94
end
95
96
commission = 0:0.0001:0.06;
97
98
99
100
101
102
103
104
% Linker plot
subplot(1,2,1);
hold off;
plot(commission,maxi,'b');
hold on;
plot(commission,maxi1,'r');
plot(commission,maxi2,'g');
105
106
107
xlabel('Commissiekosten ($)');
ylabel('Maximale winst per pair per dag ($)');
108
109
legend('Delay 0 sec','Delay 1 sec','Delay 2 sec','Location','NorthEast');
110
111
112
113
114
115
116
% Rechter plot
subplot(1,2,2);
hold off;
plot(commission,((maxi1 − maxi)./maxi .*100),'b');
hold on;
plot(commission,((maxi2 − maxi)./maxi .*100),'r');
117
118
119
xlabel('Commissiekosten ($)');
ylabel('Procentuele winstdaling');
120
121
legend('Delay 1 sec','Delay 2 sec','Location','NorthEast');
122
123
hold off;
124
125
end
Monte Carlo bootstrap
Gebruikt voor de Monte Carlo bootstrapping test
1
2
3
4
5
6
7
%MONTECARLOBOOTSRAP Genereert de p−waarde voor de strategie winst
m = 20000;
qe = 5000;
qff = 4000;
qfs = 6000;
numtrades = 191*2;
targetprof = 13120;
8
9
profit = zeros(m,1);
10
11
for p = 1:m
12
13
14
15
16
17
18
19
20
21
position = 0;
randtime = sort(randperm(23401,numtrades));
j = 1;
for i = 1:length(vxxprice)
if i == randtime(j);
if j < numtrades
j = j + 1;
end
if position == 0
87
openvxx = vxxprice(i);
openvxg = vxgprice(i);
openvxh = vxhprice(i);
position = 1;
else
l = randi(2,1);
if l == 2
l = −1;
end;
22
23
24
25
26
27
28
29
30
31
tempprof = l*qe*(openvxx − vxxprice(i)) −l*qff*(openvxg − ...
vxgprice(i)) −l*qfs*(openvxh − vxhprice(i));
profit(p) = profit(p) + tempprof;
position = 0;
32
33
34
end
35
end
36
end
37
38
39
end;
40
41
42
43
histfit(profit,40);
prob = 100*(1− cdf('normal',targetprof,mean(profit),std(profit)));
disp(prob);
88
Bijlage D
Geschreven EasyLanguage code
voor TradeStation
VXXGV
Gebruikt om de VXX te verhandelen
1
Inputs:
DataSeries1(Close of Data1),
DataSeries2(Close of Data2),
DataSeries3(Close of Data3),
Length(500),
wf1(1),
wf2(1);
2
3
4
5
6
7
8
Vars:
SprdDiff(0),
futures(0),
hedgeratio(1),
Avg(0),
UpperBand(0),
LowerBand(0),
CRtn(0),
aantal(0);
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
futures = DataSeries2 * wf1 + DataSeries3 * wf2;
hedgeratio = AverageFC(DataSeries1,Length) / AverageFC(futures,Length);
SprdDiff = DataSeries1 − hedgeratio * futures ;
Avg = AverageFC( SprdDiff, Length );
UpperBand = BollingerBand(SprdDiff,Length,1.4);
LowerBand = BollingerBand(SprdDiff,Length,−1.4);
CRtn = GVSetNamedInt("vxxpos",marketposition);
aantal = 5000;
26
27
28
29
30
31
32
33
34
35
36
If pos(marketposition) > 0 then begin
If marketposition > 0 and (SprdDiff > Upperband) then
Sell aantal shares this bar on close;
If marketposition < 0 and (SprdDiff < Lowerband) then
Buy aantal shares this bar on close;
end
Else begin
If (SprdDiff > UpperBand) then begin
Sellshort aantal shares this bar on close;
end;
37
If (SprdDiff < LowerBand) then begin
Buy aantal shares this bar on close;
end;
38
39
40
41
end;
89
VXGV
Gebruikt om de VX Futures te verhandelen
1
inputs:
Length(500),
wf1(1),
wf2(1),
aantal(4);
2
3
4
5
6
Vars:
SprdDiff(0),
futures(0),
hedgeratio(1),
Avg(0),
UpperBand(0),
LowerBand(0),
vxxpos(0),
sprd(0);
7
8
9
10
11
12
13
14
15
16
17
18
19
Value1 = Ticks;
vxxpos = round(GVGetNamedInt("vxxpos",−999.9),0);
sprd = GVGetNamedFloat("spread",−999.9);
print(sprd);
20
21
22
23
24
25
26
27
28
29
If pos(marketposition) > 0 then begin
If marketposition < 0 and (vxxpos < 0) then
Buy aantal contracts this bar on close;
If marketposition > 0 and (vxxpos > 0) then
Sell aantal contracts this bar on close;
If marketposition < 0 and (vxxpos = 0) then
Buy this bar on close;
If marketposition > 0 and (vxxpos = 0) then
Sell this bar on close;
30
31
32
end
Else begin
If (vxxpos < 0) then begin
Buy this bar on close;
end;
If (vxxpos > 0) then begin
SellShort this bar on close;
end;
33
34
35
36
37
38
39
end;
90
Bijlage E
Ruwe data handelsdag
VXX
Tijd
16:34:49
16:35:55
16:36:43
16:38:06
16:40:43
16:43:04
16:43:17
16:43:26
16:43:58
16:44:02
16:44:12
16:44:26
16:44:35
16:44:44
16:44:46
16:45:23
16:46:32
16:47:13
16:47:52
16:48:16
16:48:26
16:49:06
16:49:20
16:52:59
16:58:02
17:00:15
17:02:18
17:02:51
17:04:35
17:06:23
VXX
P trade
$350.00
$0.00
$700.00
($400.00)
$950.00
$100.00
$450.00
$150.00
$200.00
($150.00)
$350.00
$0.00
$350.00
$250.00
$500.00
$100.00
($200.00)
($300.00)
($400.00)
$0.00
($50.00)
$500.00
$0.00
$250.00
$200.00
$200.00
($1,900.00)
$150.00
($50.00)
$0.00
($450.00)
$0.00
$400.00
($50.00)
($700.00)
$200.00
$0.00
$0.00
VXG14
Tijd
16:34:51
16:35:01
16:35:56
16:36:45
16:38:18
16:40:43
16:43:06
16:43:18
16:43:51
16:44:00
16:44:02
16:44:05
16:44:14
16:44:26
16:44:37
16:44:45
16:45:05
16:46:39
16:47:18
16:47:44
16:48:17
16:48:27
16:49:30
16:53:28
16:58:02
16:58:13
17:00:16
17:00:18
17:02:23
17:02:53
17:04:40
17:06:16
17:06:52
17:07:00
VXG14
P trade
($120.00)
$40.00
($200.00)
$120.00
($560.00)
$0.00
($400.00)
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
($160.00)
($320.00)
$200.00
$0.00
$0.00
$400.00
($120.00)
($120.00)
$0.00
$0.00
$0.00
$0.00
$600.00
($40.00)
($80.00)
$0.00
$0.00
$200.00
$0.00
$240.00
$240.00
($80.00)
$0.00
$0.00
VXH14
Tijd
16:34:59
16:35:01
16:36:03
16:36:58
16:38:18
16:40:46
16:43:11
16:43:25
16:43:54
16:44:00
16:44:02
16:44:09
16:44:15
16:44:27
16:44:42
16:44:45
16:45:05
16:45:20
16:45:31
16:46:34
16:47:18
16:47:44
16:48:00
16:48:16
16:48:27
16:49:47
16:53:26
16:57:58
16:58:09
17:00:16
17:00:21
17:02:49
17:02:52
17:04:40
17:06:16
17:06:47
17:07:00
91
VXH14
P trade
($60.00)
$0.00
$0.00
($60.00)
($180.00)
$240.00
($60.00)
$0.00
$0.00
$0.00
$0.00
($300.00)
($300.00)
$0.00
$0.00
$0.00
$0.00
$0.00
$300.00
$300.00
($120.00)
($120.00)
$120.00
$120.00
$0.00
$0.00
$720.00
$180.00
$0.00
($120.00)
$180.00
$180.00
($240.00)
$120.00
$300.00
($300.00)
$60.00
$60.00
TOTAAL
P trade
$170.00
$40.00
$500.00
($340.00)
$210.00
$340.00
($10.00)
$150.00
$200.00
($150.00)
$350.00
($300.00)
$50.00
$250.00
$340.00
($220.00)
$0.00
($300.00)
($100.00)
$700.00
($290.00)
$260.00
$120.00
$370.00
$200.00
$200.00
($580.00)
$290.00
($130.00)
($120.00)
($270.00)
$380.00
$160.00
$310.00
($160.00)
($180.00)
$60.00
$60.00
TOTAAL
P cumul
$0.00
$170.00
$210.00
$710.00
$370.00
$580.00
$920.00
$910.00
$1,060.00
$1,260.00
$1,110.00
$1,460.00
$1,160.00
$1,210.00
$1,460.00
$1,800.00
$1,580.00
$1,580.00
$1,280.00
$1,180.00
$1,880.00
$1,590.00
$1,850.00
$1,970.00
$2,340.00
$2,540.00
$2,740.00
$2,160.00
$2,450.00
$2,320.00
$2,200.00
$1,930.00
$2,310.00
$2,470.00
$2,780.00
$2,620.00
$2,440.00
$2,500.00
17:07:11
17:12:51
17:13:52
17:17:59
17:19:42
17:19:43
17:20:40
17:21:16
17:21:40
17:23:35
17:26:48
17:27:23
17:29:28
17:31:16
17:32:33
17:34:45
17:44:05
17:56:07
18:05:51
18:13:08
18:13:52
18:22:31
18:24:18
18:24:51
18:27:31
18:29:40
18:30:32
18:33:00
18:33:25
18:35:25
18:37:40
18:39:29
18:39:31
18:40:06
18:40:38
18:46:07
18:47:38
18:48:02
18:49:43
18:51:58
18:57:40
19:00:57
19:05:52
19:13:47
19:17:56
($550.00)
$150.00
$700.00
$0.00
$0.00
$0.00
($200.00)
$0.00
($100.00)
($100.00)
$300.00
$0.00
($50.00)
$200.00
($50.00)
$0.00
($650.00)
$450.00
$50.00
$200.00
$950.00
$2,050.00
$0.00
($550.00)
$0.00
$200.00
$1,500.00
$350.00
($150.00)
$450.00
$100.00
$150.00
$150.00
$50.00
($100.00)
($150.00)
($250.00)
($50.00)
$50.00
$50.00
($1,550.00)
$600.00
$0.00
($100.00)
$0.00
$750.00
$100.00
($50.00)
$0.00
$100.00
$150.00
$0.00
($450.00)
$1,700.00
$350.00
$0.00
17:07:18
17:13:02
17:13:51
17:18:06
17:18:18
17:19:50
17:20:35
17:20:45
17:21:30
17:21:42
17:23:19
17:24:00
17:26:50
17:27:31
17:28:53
17:29:31
17:31:21
17:32:50
17:34:46
17:44:15
17:56:08
17:56:10
18:05:54
18:12:25
18:13:17
18:14:09
18:22:50
18:24:28
18:25:36
18:28:32
18:30:37
18:33:50
18:35:43
18:38:18
18:39:30
18:39:41
18:40:25
18:41:06
18:46:07
18:46:17
18:47:38
18:47:41
18:48:16
18:51:28
18:52:35
18:54:36
18:57:51
19:01:03
19:03:40
19:06:19
19:14:17
19:19:04
$200.00
$80.00
($120.00)
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
($80.00)
($80.00)
($120.00)
$600.00
$0.00
($200.00)
($400.00)
($320.00)
$0.00
($400.00)
$200.00
$0.00
$0.00
($640.00)
$40.00
$80.00
$0.00
($160.00)
$0.00
$80.00
$0.00
$120.00
$240.00
($80.00)
($120.00)
$120.00
$0.00
$600.00
($80.00)
($280.00)
$0.00
($80.00)
($280.00)
($400.00)
$0.00
$40.00
($200.00)
($200.00)
$0.00
$320.00
($400.00)
$0.00
$0.00
17:07:18
17:13:04
17:13:51
17:13:54
17:18:08
17:18:10
17:19:50
17:20:35
17:20:45
17:21:36
17:21:42
17:23:19
17:24:27
17:26:51
17:27:27
17:28:53
17:29:57
17:31:21
17:32:50
17:34:46
17:44:08
17:56:08
17:56:39
18:06:28
18:12:17
18:13:17
18:14:09
18:22:48
18:24:21
18:25:36
18:27:50
18:30:33
18:33:17
18:35:35
18:37:53
18:39:30
18:39:36
18:40:11
18:40:40
18:46:06
18:46:11
18:47:46
18:48:16
18:50:02
18:52:35
18:54:31
18:58:17
19:01:12
19:04:04
19:06:19
19:14:46
19:17:57
92
$180.00
$0.00
($120.00)
($540.00)
$60.00
$0.00
$0.00
$0.00
$0.00
$0.00
($120.00)
$0.00
$120.00
$0.00
$0.00
($120.00)
$420.00
($180.00)
($60.00)
($300.00)
($480.00)
$0.00
($840.00)
$240.00
$0.00
$0.00
($420.00)
$0.00
$180.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
$0.00
($300.00)
($300.00)
$0.00
$240.00
$360.00
$60.00
($120.00)
$0.00
$0.00
($360.00)
($180.00)
($120.00)
($120.00)
($120.00)
$180.00
($120.00)
$360.00
($780.00)
$0.00
$0.00
($170.00)
$230.00
$460.00
($540.00)
$60.00
$0.00
($200.00)
$0.00
($100.00)
($100.00)
$180.00
$0.00
$70.00
$120.00
($130.00)
($240.00)
$370.00
$270.00
($210.00)
($500.00)
$150.00
$2,050.00
($1,240.00)
($110.00)
$0.00
$200.00
$440.00
$390.00
$110.00
$450.00
($60.00)
$150.00
$230.00
$50.00
$20.00
$90.00
($630.00)
($470.00)
$170.00
$290.00
($590.00)
$580.00
($400.00)
($100.00)
($80.00)
$110.00
($480.00)
($170.00)
($80.00)
($220.00)
$130.00
($120.00)
$230.00
$520.00
$350.00
$0.00
$2,560.00
$2,390.00
$2,620.00
$3,080.00
$2,540.00
$2,600.00
$2,600.00
$2,400.00
$2,400.00
$2,300.00
$2,200.00
$2,380.00
$2,380.00
$2,450.00
$2,570.00
$2,440.00
$2,200.00
$2,570.00
$2,840.00
$2,630.00
$2,130.00
$2,280.00
$4,330.00
$3,090.00
$2,980.00
$2,980.00
$3,180.00
$3,620.00
$4,010.00
$4,120.00
$4,570.00
$4,510.00
$4,660.00
$4,890.00
$4,940.00
$4,960.00
$5,050.00
$4,420.00
$3,950.00
$4,120.00
$4,410.00
$3,820.00
$4,400.00
$4,000.00
$3,900.00
$3,820.00
$3,930.00
$3,450.00
$3,280.00
$3,200.00
$2,980.00
$3,110.00
$2,990.00
$3,220.00
$3,740.00
$4,090.00
19:19:05
19:20:28
19:24:36
19:27:47
19:29:33
19:30:02
19:30:36
19:35:27
19:36:26
19:39:17
19:40:39
19:46:45
19:47:10
19:47:48
19:50:54
20:02:23
20:06:22
20:10:23
20:14:10
20:14:22
20:16:53
20:20:18
20:21:18
20:23:11
20:23:18
20:25:39
20:29:33
20:32:08
20:32:24
20:32:41
20:35:26
20:40:55
20:42:31
20:43:28
20:48:45
20:51:02
20:51:25
20:52:48
20:55:06
20:59:41
21:00:19
21:02:43
21:04:27
21:07:54
21:08:47
21:10:35
$0.00
$450.00
$250.00
$0.00
$1,000.00
$200.00
($200.00)
($200.00)
$650.00
$0.00
$150.00
$100.00
($200.00)
$0.00
($550.00)
($100.00)
$100.00
$0.00
$200.00
$250.00
$0.00
($450.00)
$350.00
($250.00)
$700.00
$0.00
($750.00)
$500.00
$100.00
$0.00
$300.00
($800.00)
$0.00
($550.00)
($200.00)
$250.00
$300.00
($200.00)
($400.00)
$400.00
$0.00
($1,250.00)
($50.00)
$0.00
$100.00
$0.00
$250.00
$700.00
$50.00
$350.00
$350.00
$600.00
($50.00)
($50.00)
($50.00)
($400.00)
19:19:20
19:21:06
19:24:33
19:24:40
19:27:53
19:29:35
19:30:49
19:35:39
19:36:36
19:39:30
19:41:03
19:47:04
19:47:14
19:47:53
19:49:56
19:50:58
20:02:17
20:02:27
20:06:46
20:11:00
20:14:12
20:14:22
20:14:24
20:16:57
20:21:04
20:21:22
20:23:05
20:23:13
20:23:19
20:25:37
20:25:42
20:29:39
20:32:20
20:32:25
20:32:49
20:35:37
20:41:11
20:42:53
20:43:32
20:48:50
20:50:17
20:51:06
20:51:23
20:51:30
20:52:58
20:55:12
20:59:53
21:00:25
21:02:53
21:04:40
21:07:55
21:08:54
21:10:40
$0.00
$0.00
$0.00
$0.00
($280.00)
($200.00)
($240.00)
($120.00)
$0.00
$0.00
$0.00
($80.00)
($80.00)
($320.00)
$0.00
$160.00
$0.00
$0.00
$40.00
$0.00
($120.00)
$200.00
($400.00)
$120.00
$0.00
($160.00)
$440.00
$160.00
$0.00
$0.00
$0.00
$280.00
$0.00
$200.00
$160.00
($80.00)
$0.00
$0.00
$200.00
$0.00
$120.00
$1,120.00
$0.00
$0.00
($160.00)
$0.00
$0.00
$0.00
$0.00
($400.00)
($120.00)
($480.00)
$0.00
$0.00
$80.00
$400.00
93
19:18:07
19:19:22
19:21:09
19:24:33
19:24:38
19:28:01
19:29:35
19:30:06
19:30:16
19:30:39
19:36:02
19:36:46
19:39:24
19:41:03
19:47:00
19:47:11
19:48:22
19:49:18
19:50:58
20:02:21
20:02:27
20:06:42
20:11:10
20:14:12
20:14:22
20:14:25
20:16:57
20:20:31
20:21:24
20:23:06
20:23:13
20:23:20
20:25:37
20:25:45
20:29:57
20:32:20
20:32:34
20:32:50
20:35:46
20:40:56
20:42:35
20:43:27
20:49:21
20:50:19
20:51:04
20:51:11
20:51:26
20:52:49
20:55:13
20:59:50
21:00:25
21:02:48
21:04:37
21:07:55
21:08:54
21:10:35
$0.00
$180.00
($180.00)
($60.00)
($480.00)
($120.00)
($60.00)
($60.00)
$60.00
($120.00)
$0.00
($60.00)
$0.00
$0.00
$120.00
$60.00
$0.00
$0.00
$0.00
($180.00)
($120.00)
$360.00
($120.00)
$120.00
$0.00
($180.00)
$60.00
($240.00)
$240.00
$0.00
$180.00
$480.00
$0.00
$180.00
$0.00
$60.00
$0.00
$600.00
$240.00
($300.00)
$300.00
$840.00
$120.00
$0.00
$0.00
$0.00
$60.00
($300.00)
$300.00
$180.00
$0.00
($300.00)
($180.00)
$60.00
$240.00
$300.00
$0.00
$630.00
$70.00
($60.00)
$240.00
($120.00)
($500.00)
($380.00)
$710.00
($120.00)
$150.00
($40.00)
($280.00)
($320.00)
($430.00)
$120.00
$100.00
$0.00
$240.00
$70.00
($240.00)
$110.00
($170.00)
($10.00)
$700.00
($340.00)
($250.00)
$420.00
$340.00
$0.00
$480.00
($40.00)
$0.00
($170.00)
($40.00)
$230.00
$300.00
$400.00
$40.00
$100.00
$420.00
$710.00
$70.00
$0.00
($60.00)
$0.00
$310.00
$400.00
$350.00
$130.00
$230.00
($180.00)
($230.00)
$10.00
$270.00
$300.00
$4,090.00
$4,090.00
$4,720.00
$4,790.00
$4,730.00
$4,970.00
$4,850.00
$4,350.00
$3,970.00
$4,680.00
$4,560.00
$4,710.00
$4,670.00
$4,390.00
$4,070.00
$3,640.00
$3,760.00
$3,860.00
$3,860.00
$4,100.00
$4,170.00
$3,930.00
$4,040.00
$3,870.00
$3,860.00
$4,560.00
$4,220.00
$3,970.00
$4,390.00
$4,730.00
$4,730.00
$5,210.00
$5,170.00
$5,170.00
$5,000.00
$4,960.00
$5,190.00
$5,490.00
$5,890.00
$5,930.00
$6,030.00
$6,450.00
$7,160.00
$7,230.00
$7,230.00
$7,170.00
$7,170.00
$7,480.00
$7,880.00
$8,230.00
$8,360.00
$8,590.00
$8,410.00
$8,180.00
$8,190.00
$8,460.00
21:12:19
21:13:08
21:13:30
21:14:14
21:14:35
21:15:31
21:15:58
21:16:59
21:17:55
21:23:00
21:23:11
21:25:15
21:27:56
21:28:46
21:35:19
21:35:54
21:36:33
21:38:26
21:38:55
21:41:57
21:42:11
21:46:45
21:47:06
21:50:22
21:51:46
21:51:51
21:52:31
21:52:53
21:54:47
21:55:10
21:56:13
21:56:35
21:56:49
($50.00)
$0.00
$550.00
$550.00
$0.00
($100.00)
$50.00
$0.00
$0.00
$550.00
$200.00
($150.00)
$50.00
$150.00
$200.00
($350.00)
($350.00)
$0.00
($300.00)
$50.00
$100.00
$0.00
$450.00
$500.00
($100.00)
$650.00
$250.00
$0.00
($400.00)
($550.00)
$0.00
($50.00)
$200.00
$0.00
$300.00
($50.00)
$0.00
($100.00)
$0.00
$600.00
($50.00)
21:12:24
21:12:35
21:13:13
21:13:43
21:13:56
21:14:14
21:14:38
21:15:02
21:15:40
21:16:14
21:17:31
21:17:59
21:23:10
21:28:18
21:28:46
21:28:48
21:35:23
21:35:50
21:36:47
21:37:56
21:38:31
21:39:19
21:42:02
21:42:15
21:46:49
21:47:02
21:47:09
21:50:25
21:51:43
21:51:50
21:52:07
21:52:22
21:52:43
21:52:56
21:55:03
21:55:23
21:55:52
21:56:15
21:56:37
21:56:49
$0.00
$0.00
($120.00)
$40.00
$40.00
$0.00
$0.00
$0.00
$120.00
($120.00)
$0.00
$80.00
($240.00)
$0.00
$0.00
$80.00
$0.00
$280.00
$200.00
$80.00
$120.00
$0.00
($40.00)
($240.00)
$120.00
($240.00)
($40.00)
($40.00)
$80.00
$280.00
$200.00
($40.00)
($120.00)
$0.00
$80.00
$0.00
$0.00
$120.00
$0.00
($120.00)
$160.00
21:12:24
21:12:39
21:13:10
21:13:41
21:13:56
21:14:14
21:14:43
21:14:57
21:15:43
21:16:14
21:17:07
21:18:19
21:23:03
21:23:48
21:25:44
21:28:20
21:28:46
21:28:48
21:35:23
21:36:01
21:36:41
21:37:56
21:38:31
21:39:08
21:42:03
21:42:15
21:46:49
21:47:02
21:47:09
21:50:23
21:51:43
21:51:50
21:52:07
21:52:22
21:52:36
21:52:56
21:54:55
21:55:23
21:55:52
21:56:15
21:56:37
21:56:49
94
($60.00)
$0.00
($180.00)
($120.00)
$0.00
$120.00
($120.00)
($120.00)
$0.00
($120.00)
$0.00
$300.00
$240.00
$120.00
$120.00
$240.00
$0.00
$240.00
$120.00
$60.00
$120.00
$120.00
($120.00)
($300.00)
$60.00
($180.00)
$0.00
$0.00
$300.00
$180.00
$60.00
$120.00
($120.00)
$0.00
$0.00
($240.00)
($180.00)
$240.00
$0.00
($60.00)
$0.00
($110.00)
$0.00
$250.00
$470.00
$40.00
$20.00
($70.00)
($120.00)
$120.00
$310.00
$200.00
$230.00
$50.00
$270.00
$320.00
($30.00)
($350.00)
$520.00
$20.00
$190.00
$340.00
$120.00
$290.00
($40.00)
$80.00
$230.00
$210.00
($40.00)
($20.00)
($90.00)
$260.00
$30.00
($40.00)
$0.00
$380.00
($290.00)
($180.00)
$260.00
$0.00
$420.00
$110.00
$8,760.00
$8,650.00
$8,650.00
$8,900.00
$9,370.00
$9,410.00
$9,430.00
$9,360.00
$9,240.00
$9,360.00
$9,670.00
$9,870.00
$10,100.00
$10,150.00
$10,420.00
$10,740.00
$10,710.00
$10,360.00
$10,880.00
$10,900.00
$11,090.00
$11,430.00
$11,550.00
$11,840.00
$11,800.00
$11,880.00
$12,110.00
$12,320.00
$12,280.00
$12,260.00
$12,170.00
$12,430.00
$12,460.00
$12,420.00
$12,420.00
$12,800.00
$12,510.00
$12,330.00
$12,590.00
$12,590.00
$13,010.00
$13,120.00