You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Læringsmål:

  • PLACEHOLDER

Pensum:

  • PLACEHOLDER

 

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 nnes det mange forskjellige investeringsstrategier. I denne oppgaven det implementeres inntil tre 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. For eksempel:

Dag12345678910
Pris1001011021001021041039896101

Hvis det investeres 50 kr i denne aksjen på dag 1 og selger den på dag nummer 2 så tjenes 50 * (101 / 100) = 0.50 kr.

a)

Lag en vektor closingPrices med prisene over.

b)

Plott aksjeprisene i en figur. 
Resultatet skal se slik ut:
 

c)

Lag funksjonen daily_returns(closing_prices) hvor closing_prices er aksjeprisene for et selskap i en gitt periode. Funksjonen skal returnere en vektor som viser dag for dag hvor mye en aksje har gått opp eller ned. Dvs.

dailyReturnsi = closingPricei - closingPricei􀀀-1

Daglig gevinst for dag nummer 1 skal være 0. Gitt prisene over skal funksjonen returnere følgende vektor: [0, 1, 1, -2, 2, 2, -1, -5, -2, 5]


d)

 

Plott daglige gevinster (daily returns) for aksjen over i en figur. Resultatet skal se slik ut:

For å lage den første strategien ma det lages en funksjon som sjekker om prisen har gått opp de siste n dagene.

e)

lag funksjonen isGoingUp(dailyReturn, i, n) som sjekker om alle elementene fra i og ned til i-n+1 i dailyReturn er positive eller lik null. Funksjonen skal returnere true om dette er tilfelle og false ellers. 

 

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


 
 
 

 

 

  • No labels