tic
clear,clc
load dijiagu;
%%计算持仓
zhouqi1=20;
zhouqi2=10;
length1=length(dijiagu);
cc(:,1)=dijiagu(:,2);
chicang=zeros(length1,1);
for i=zhouqi1:length1
if cc(i,1)==max(cc(i-zhouqi1+1:i,1)) && chicang(i-1)==0
chicang(i,1)=1;
elseif cc(i,1)==min(cc(i-zhouqi2+1:i,1)) && chicang(i-1)==1
chicang(i,1)=0;
else chicang(i,1)= chicang(i-1,1);
end
end
% 计算交易
benjin=100;
profit=zeros(length1,1);
k=0;
for i=4:length1
% 多头
if chicang(i-2,1)==0 && chicang(i-1,1)==1
k=k+1;
buyprice=cc(i-1,1)+0.2;
profit(i,1)=(cc(i,1)-buyprice);
end
if chicang(i-2,1)==1 && chicang(i-1,1)==1
profit(i,1)=(cc(i,1)-cc(i-1,1));
end
end
%计算收益
benjin=100;
shouyilv1=zeros(length1,1);
hcb=zeros(length1,1);
for i=1:length1
shouyilv1(i,1)=sum(profit(1:i,1))+benjin;
hcb(i,1)=(max(shouyilv1(1:i,1))-shouyilv1(i,1))/benjin;
end
subplot(2,1,1);
plot(dijiagu(1:length1,1),shouyilv1(1:length1,1));
datetick('x','yyyymmdd');
subplot(2,1,2);
plot(dijiagu(1:length1,1),hcb(1:length1,1));
datetick('x','yyyymmdd');
toc
评论1