Opdracht 3: How To Gamble If You Must Deadline woensdag 12

Download Report

Transcript Opdracht 3: How To Gamble If You Must Deadline woensdag 12

Opdracht 3: How To Gamble If You Must
Deadline woensdag 12 oktober 2016, 24:00 uur.
Deze opdracht bestaat uit vier onderdelen; voor elk onderdeel schrijf je een Python script.
Alle bestanden bestanden stuur je naar [email protected].
Introductie
Veronderstel dat je deelneemt aan een investeringsplan. Het plan heeft een looptijd van
n = 60 maanden; aan het begin van elke maand leg je een bedrag in, zeg xk in maand
k. De beheerder van dit investeringsplan is een gewiekste belegger die het lukt om aan
het eind van de maand (voordat je de volgende inleg doet) jou met kans p = 0.36 het
ingelegde bedrag in drievoud terug uit te keren, maar met kans q = 1 − p = 0.64 ben je
helaas je inleg kwijt. De p en q kansen zijn in elke maand hetzelfde, en daarnaast zijn de
maandelijkse handelingen van de beheerder onafhankelijk van van eerdere uitkomsten. Dit
plan is inderdaad gunstig want bij een inleg van één euro in een maand is het verwachte
nettoresultaat −1 + 0.36 × 3 = 0.08. Dat is, je verwacht een rendement van 8% per maand.
Veronderstel dat je instapt in dit plan met een vermogen van V0 = 1000 euro. De
vraag is, hoeveel ga je per maand inleggen om aan het eind van het plan aan een bepaalde
criterium te voldoen. Noteer Vk voor je vermogen aan het eind van maand k, vlak na een
eventuele uitkering en nog voor je de volgende inleg doet. De inleg xk+1 in de volgende
maand (maand k + 1) is natuurlijk hoogstens je vermogen: xk+1 ≤ Vk . Er geldt:
{
Vk + 2xk+1 ,
met kans p;
Vk+1 =
(1)
Vk − xk+1 ,
met kans q.
Definieer de groeifactors G1 , G2 , . . . door
Gk =
)
1 (
ln Vk /V0
k
⇔
Vk = V0 ekGk .
Criteria voor je inlegstrategie kunnen zijn:
E[Vn]: maximaal verwacht vermogen aan het eind van de looptijd.
min Var[Vk ]: minimale volatiliteit van het vermogen gedurende de looptijd.
max P(Vn > γ): maximale kans om een streefbedrag te bereiken, bv γ = 5000 euro.
min P(Vk < δ): minimaal risico (te weinig vermogen) gedurende de looptijd, bv
(a.) max
(b.)
(c.)
(d.)
δ = 100 euro.
(e.) max
E[Gn]: maximale groeifactor.
In de volgende onderdelen ga je door middel van simulatie een aantal van deze criteria
onderzoeken, onder de volgende aanname
De inleg xk is een constante fractie α van het huidige vermogen Vk−1 .
Je zult simulatie doen en daarvoor random getallen nodig hebben; een en ander staat
beschreven in sectie 8 van
http://personal.vu.nl/a.a.n.ridder/numprog/python/scp.pdf
1
Opdracht (a)
Simuleer een realisatie van het vermogen Vk , k = 0, 1, . . . , n volgens de relaties (1). Doe dit
achtereenvolgens voor α = 0.05, 0.2, 0.5, gebruik makend van common random numbers;
dat wil zeggen, voor alle α’s gebruik je dezelfde seed van de RNG. Schrijf een Pythonprogramma om in één figuur de grafieken van deze drie realisaties te plotten. Geef de drie
realisaties verschillende kleuren en voeg legenda toe.
Schrijf je Pythonprogramma in een scriptfile genaamd achternaam opdr3a.py (vervang achternaam door één van jullie twee achternamen). Gebruik alleen kleine letters.
Opdracht (b)
Simuleer 10000 realisaties van de vermogens Vk , k = 0, 1, . . . , n volgens de relates (1),
(i)
en sla alleen alle 10000 eindvermogens Vn , i = 1, . . . , 10000 op in een array. Doe dit
achtereenvolgens voor α = 0.05 en α = 0.2. Maak een histogram van beide data arrays
in één figuur. Gebruik als domein van de histogrammen het interval [0, 7000] en neem de
binbreedte 500.
Schrijf je pythonprogramma in een scriptfile genaamd achternaam opdr3b.py (vervang
achternaam door één van jullie twee achternamen). Gebruik alleen kleine letters.
Onderdeel (c)
Voor
√ α ∈ [0.01, 0.1], schat het verwachte eindvermogen E[Vn ], en de standaardafwijking
Var(Vn) gebaseerd op 10000 gesimuleerde eindvermogens. Noem de twee schattingen
µ
b(α) en σ
b(α). Schrijf een Pythonprogramma om in één figuur de grafieken van deze µ
b(α)
en σ
b(α) te plotten als functie van α. Geef de grafieken verschillende kleuren en voeg
legenda toe.
NB: bij opdeling van het α-interval [0.01, 0.1] in 50 deelintervallen via np.linspace
voor het plotten, kan de totale simulatie tussen de 1 en 2 minuten duren. Experimenteer
daarom eerst met minder deelintervallen, en met minder dan 10000 eindvermogens (per
α!), bv maar 1000. Als het programma werkt kun je de full blown waarden gebruiken.
Schrijf je Pytonprogramma in een scriptfile genaamd achternaam opdr3c.py (vervang
achternaam door één van jullie twee achternamen). Gebruik alleen kleine letters.
Onderdeel (d)
Voor α ∈ [0.01, 0.1], schat de kans dat minstens één keer Vk < 100 wordt bereikt, ook
weer gebaseerd op 10000 gesimuleerde realisaties. Tevens, schat de verwachte groeifactor
E[Gn]. Noem de schattingen πb(α) en γb(α). Schrijf een Pythonprogramma om de grafieken
van π
b(α) en γ
b(α) te plotten als functie van α. Elke grafiek komt in een afzonderlijk figuur
(zet plt.figure() voorafgaand aan elke plt.plot opdracht).
Schrijf je Pythonprogramma in een scriptfile genaamd achternaam opdr3d.py (vervang achternaam door één van jullie twee achternamen). Gebruik alleen kleine letters.
Conclusie
Probeer nu voor jezelf te beredeneren wat een goede fractie α van je vermogen is om elke
maand te beleggen.
2