You are on page 1of 1

%%% INPUT DATA CLOSED PRICE

[FileName,PathName]=uigetfile('*.xls;*.xlsx;*.csv','Insert Data
Stock'); %--Calling data stock
PathFile=[PathName,FileName]; %--PathFile data stock
[Data,DataTxt,RawData]=xlsread(PathFile); %--Reading excel format
from PathFile
[RowData,ColData]=size(Data) %--Measuring size matrix Data

%%% HITUNG RATE OF RETURN
for i=1:RowData-1
for j=1:ColData
Return(i,j)=(Data(i,j)-Data(i+1,j))/Data(i+1,j);
end
end

%%% HITUNG AVERAGE RETURN
AverageReturn=mean(Return)
%%% INISIALISASI BOBOT SAHAM
InitialWeight=(1/ColData)
w0=-[ones(ColData,1)*(InitialWeight)]'

%%% PENDEFINISIAN FUNGSI OBJEKTIF
Myfun1=@(w)(Return(:,1)*w(1)+Return(:,2)*w(2)+Return(:,3)*w(3)+Return
(:,4)*w(4)+Return(:,5)*w(5)+Return(:,6)*w(6)+Return(:,7)*w(7)+Return(
:,8)*w(8)+Return(:,9)*w(9)+Return(:,10)*w(10)+Return(:,11)*w(11))
41

%%% PENDEFINISIAN FUNGSI KENDALA
A=[-eye(ColData,ColData);eye(ColData,ColData);AverageReturn;Return]
G=-0.15 %DIASUMSIKAN
Mp=-(Return*w0')
b=[ones(ColData,1);-zeros(ColData,1);G;Mp]
Aeq=ones(1,ColData)
beq=-ones(1,1)
ub=zeros(ColData,1)
lb=-ones(ColData,1)

%%% OPTIMASI DENGAN FMINIMAX
opsi=optimset('LargeScale','Off','Display','On','GradConstr','On');
[x,fval,maxfval,exitflag]=fminimax(Myfun1,[w0],A,b,Aeq,beq,lb,ub)
format long
wOptim=-x

You might also like