a)
Code Block |
---|
closingPrices = [100 101 102 100 102 104 103 98 96 101]; |
b)
Code Block |
---|
plot(1:10, closingPrices); |
c)
Code Block |
---|
function dailyReturn = dailyReturns ( closingPrices ) n = size(closingPrices , 2); dailyReturn = zeros(n, 1); for i = 2:n dailyReturn(i)= closingPrices(i)-closingPrices(i-1); end end |
d)
Code Block |
---|
plot(1:10,dailyReturns(closingPrices); |
e)
Code Block |
---|
function res = isGoingUp ( n, i, dailyReturn ) res = true ; for j = i: -1: max (1, i-n +1) if ( dailyReturn (j) < 0) res = false ; return ; end end end |
f)
Code Block |
---|
function returns = momentum ( startAmount , n, closingPrices ) dailyReturn = dailyReturns ( closingPrices ); cash = startAmount ; invested = 0; for i = n: size ( closingPrices , 2) invested = invested * closingPrices (i) / closingPrices (i -1) ; if ( is_going_up (n, i, dailyReturn )) % Buy invested = invested + cash ; cash = 0; else % Sell cash = cash + invested ; invested = 0; end end returns = cash + invested ; end |
g)
Code Block |
---|
function res = isGoingDown ( n, i, dailyReturn ) res = true ; for j = i: -1: max (1, i-n +1) if ( dailyReturn (j) > 0) res = false ; return ; end end end |
h)
Code Block |
---|
function res = isGoingDown ( n, i, dailyReturn ) res = true ; for j = i: -1: max (1, i-n +1) if ( dailyReturn (j) > 0) res = false ; return ; end end end |
Code Block |
---|
function returns = contrarian ( startAmount , n, closingPrice ) dailyReturn = dailyReturns ( closingPrice ); cash = startAmount ; invested = 0; for i = n: size ( closingPrice , 2); invested = invested * closingPrice (i) / closingPrice (i -1) ; if ( is_going_down (n, i, dailyReturn )) % Buy invested = invested + cash ; cash = 0; else % Sell cash = cash + invested ; invested = 0; end end returns = cash + invested ; end |