clc;clear;close all;
[fn,pt] = uigetfile({'*.htm','HTM'},'Select file');
if(fn==0)
return;
end
ffn = fullfile(pt,fn);
if(exist('tmpPic','dir')~=7)
mkdir('tmpPic');
end
DT = importdata(ffn);
L = length(DT);
line = 1;
dtTable = cell(1,10);
for m=1:L
A = DT{m};
B = strfind(A,'Type');
line = line+1;
if(not(isempty(B)))
c = ismember(A,'<');
d = 2*ismember(A,'>');
e = c+d;
p = length(e);
idx = false;
for n=1:p
if(e(n)==1)
idx = true;
end
if(e(n)==2)
idx = false;
end
if(idx)
e(n) = 1;
end
end
f = e==1;
g = A;
g(f) = [];
h = regexp(g,'>','split');
p = length(h);
k = 1;
for n=1:p
if(not(isempty(h{n})))
dtTable{1,k} = h{n};
k = k+1;
end
end
break;
end
end
rw = 2;
for m=line:L
A = DT{m};
B = strfind(A,'s/l');
C = strfind(A,'t/p');
D = strfind(A,'close');
if(not(isempty(B)) || not(isempty(C)) || not(isempty(D)))
c = ismember(A,'<');
d = 2*ismember(A,'>');
e = c+d;
p = length(e);
idx = false;
for n=1:p
if(e(n)==1)
idx = true;
end
if(e(n)==2)
idx = false;
end
if(idx)
e(n) = 1;
end
end
f = e==1;
g = A;
g(f) = [];
h = regexp(g,'>','split');
p = length(h);
k = 1;
for n=1:p
if(not(isempty(h{n})))
dtTable{rw,k} = h{n};
k = k+1;
end
end
rw = rw+1;
end
end
tmp = dtTable{2,2};
Y1 = str2double(tmp(1:4));
tmp = dtTable{end,2};
Y2 = str2double(tmp(1:4));
ny = 1;
QUS = cell(1);
for my=Y1:Y2
QUS{ny} = num2str(my);
L = size(dtTable,1);
YR = zeros(1);
for m=2:L
A = dtTable{m,2};
YR(m,1) = str2double(A(1:4));
end
id = YR==my;
calDT = dtTable(id,:);
BL = str2double(calDT{1,10})-str2double(calDT{1,9});
L = size(calDT,1);
MNT = zeros(1);
for m=1:L
tmp = calDT{m,2};
MNT(m,1) = str2double(tmp(6:7));
end
result = zeros(1,12);
try
for m=1:12
a = MNT==m;
b = calDT(a,:);
c = str2double(b{end,10});
PFd = c-BL;
result(m) = 100*PFd/BL;
BL = c;
end
catch
end
Mname = {'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'};
figure('position',[200 200 1000 500],'menubar','none','numbertitle','off')
set(gcf,'Color',[1 1 1]);
bar(result,'g');
set(gca,'XTickLabel',Mname)
ylabel('Profit (%)')
xlabel(QUS{ny})
title('Monthly Gain(%)','fontsize',16)
set(gca,'ylim',[min(result)-3 max(result)+5])
for m=1:12
v = result(m);
y = 0.5;
if(v<0)
y = -0.5;
end
s = sprintf('%4.2f%%',v);
text(m-0.5,v+y,s);
end
fwr = ['tmpPic\' QUS{ny} '.png'];
frm = getframe(gcf);
pic = frm.cdata;
imwrite(pic,fwr);
ny = ny+1;
pause(0.1);
end