a)
closingPrices = [100 101 102 100 102 104 103 98 96 101];
b)
plot(1:10, closingPrices);
c)
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)
plot(1:10,dailyReturns(closingPrices);
e)
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)
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)
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)
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
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