Læringsmål:
- Betingelser
- For-løkker
- PlotRepetisjon
Pensum:
- 3.5 Scripts to Produce and Customize Simple Plots
- 3.7 User-Defined Functions That Return a Single Value
- 4.1 The if statement
- 4.2 The if-else statement
- 5.1 The for loopKap 6
Denne oppgaven er ment som en øvelse i å løse et litt stort og abstrakt problem. Det som er viktig å tenke på da er hva som i oppgaveteksten som er relevant for akkurat den deloppgaven man skal løse. Man må også passe på å dele problemer opp i mindre og løsbare problemer, og løse kun ett og ett om gangen. Disse delproblemene tilsvarer veldig ofte enten funksjoner eller kontrollstrukturer som if-else, for- eller while-løkker.
Når man skal investere penger i aksjer finnes det mange forskjellige investeringsstrategier. I denne oppgaven skal det implementeres inntil tre to forskjellige strategier.
Vi forenkler børsmarkedet og sier at en aksje har en fast pris per dag og kan enten kjøpes eller selges kl 12:00. Det tillates også å investere i brøkdeler av en aksje. Det vil si at om man har 53,17 kr kan man investere i 53,17 % av en aksje som koster 100 kr.
Aksjeprisene er gitt som en vektor av tall, hvor pris i tilsvarer prisen kl 12.00 på dag i n. For eksempel:
Dag | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
Pris | 100 | 101 | 102 | 100 | 102 | 104 | 103 | 98 | 96 | 101 |
...
Code Block | ||
---|---|---|
| ||
isGoingUp([0, 1], 2, 2) % Returnerer 1
isGoingUp([0,-1], 2, 2) % Returnerer 0
isGoingUp([-1, 0, 1], 3, 2) % Returnerer 1
isGoingUp([1, 0, 1], 3, 3) % Returnerer 1 |
f)
Den første strategien som skal implementeres heter keepRising
. Den baserer seg på at hvis en aksje er i ferd med å gå opp, så vil den fortsette å gå oppover. Det vil si kjøp aksjer som har hatt positiv eller 0 daglig gevinst de siste n dagene og selg aksjer som ikke har det.
Funksjonshodet for denne funksjonen skal se slik ut:function returns = momentum( startAmount, n, closingPrices )
Implementer etter pseudokoden:
Code Block | ||
---|---|---|
| ||
dagligGevinstKalkuler = kalkuler daglig gevinstdaglige gevinster cash = startAmount investert = 0 for dag fra n til lengde av closing_prices Kalkuler kurs og oppdater%Oppdater investerte penger. investert = investert * (dagen pris / gårsdagens pris) hvis prisen har steget de siste n dagene invester all cash i aksjen ellers ta ut alle pengene fra aksjen slutt hvis slutt for-løkke svar = cash + investert |
...