📄 qihuo.m
字号:
nih=B_DSHY2'*[db_zhsh',obv1_gp']';
nihez_DSHY2(1)=gp(2,1);
for i=2:gp_length
nihez_DSHY2(i)=exp(nih(i)+log(gp(2,i-1)));
end
R_DSHY2=nihez_DSHY2-gp(2,:);
%-------计算D。W值
S=0; S1=R_DSHY2(1)^2;
for i=2:gp_length
S=S+R_DSHY2(i)*R_DSHY2(i-1);
S1=S1+R_DSHY2(i)^2;
end
STATS_DSHY2(4)=2*(1-S/S1);
%-------计算对数似然值
sigma2=std(R_DSHY2);
L=-(gp_length)*(1+log(2*pi)+log(R_DSHY2*R_DSHY2'/gp_length))/2;
STATS_DSHY2(5)=L;
%-------计算AIC值
STATS_DSHY2(6)=2*(-L+2)/gp_length;
%-------计算SC值
STATS_DSHY2(7)=2*(-L+2*log(gp_length))/gp_length;
%------------计算相对误差
xr_DSHY2=100*R_DSHY2'./gp(2,:)';
xr_min=min(xr_DSHY2);%最小值
xr_max=max(xr_DSHY2);%最大值
STATS_DSHY2(8)=xr_min;
STATS_DSHY2(9)=xr_max;
nu=mean(gp(2,:));
STATS_DSHY2(10)=dot(gp(2,:)-nihez_DSHY2,gp(2,:)-nihez_DSHY2)/dot(gp(2,:)-nu,gp(2,:)-nu);
switch states(3)
case 0
msgbox(' 请选择数据查看方式')
case 1
figure
plot(gp(2,:),'-+');
hold on
plot(nihez_DSHY2,'r.');
legend('股价真实值','拟合股价');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY2(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY2(2)),'(Vp(t)*hp(t))'];
txt1=['训练样本开始时间:',num2str(zhsh(1,ll+1)),';结束时间:',num2str(zhsh(1,d+ll)),'。共',num2str(d),'天数据'];
txt2=['样本决定系数(R^2):',num2str(STATS_DSHY2(1)),';AIC值:',num2str(STATS_DSHY2(4)) ,';股票和指数相关系数:',num2str(cor(1,2))];
g_max=max(ylim);
g_min=min(ylim);
text(10,g_min+(g_max-g_min)*0.975,txt1);
text(10,g_min+(g_max-g_min)*0.925,txt2);
disp('考虑单支成交量的对数收益率指数模型为:'); disp(txt);
hold on
plot(ll+d,gp(2,ll+d),'ko','Markersize',20)
plot(ll,gp(2,ll),'ko','Markersize',20)
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
figure
plot(xr_DSHY2);
legend('相对误差','相对误差=100*(拟合值-真实值)/真实值');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY2(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY2(2)),'(Vp(t)*hp(t))'];
hold on
plot(ll+d,xr_DSHY2(ll+d),'k.','Markersize',20)
plot(ll,xr_DSHY2(ll),'k.','Markersize',20)
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
figure
normplot(R_DSHY2);
legend('误差对于正态分布的Q-Q图');
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
case 2
gp1=gp(:,ll:end);
nihez1_DSHY2=nihez_DSHY2(ll:end);
xr1_DSHY2=xr_DSHY2(ll:end);
figure
plot(gp1(2,:),'-+');
hold on
plot(nihez1_DSHY2,'r.');
legend('股价真实值','拟合股价');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY2(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY2(2)),'(Vp(t)*hp(t))'];
txt1=['训练样本开始时间:',num2str(zhsh(1,ll+1)),';结束时间:',num2str(zhsh(1,d+ll)),'。共',num2str(d),'天数据'];
txt2=['样本决定系数(R^2):',num2str(STATS_DSHY2(1)),';AIC值:',num2str(STATS_DSHY2(4)) ,';股票和指数相关系数:',num2str(cor(1,2))];
g_max=max(ylim);
g_min=min(ylim);
text(10,g_min+(g_max-g_min)*0.975,txt1);
text(10,g_min+(g_max-g_min)*0.925,txt2);
disp('考虑单支成交量的对数收益率指数模型为:'); disp(txt);
hold on
plot(1+d,gp(2,ll+d),'ko','Markersize',20)
plot(1,gp(2,ll),'ko','Markersize',20)
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
figure
plot(xr1_DSHY2);
legend('相对误差','相对误差=100*(拟合值-真实值)/真实值');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY2(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY2(2)),'(Vp(t)*hp(t))'];
hold on
plot(1+d,xr_DSHY2(ll+d),'k.','Markersize',20)
plot(1,xr_DSHY2(ll),'k.','Markersize',20)
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
figure
normplot(R_DSHY2);
legend('误差对于正态分布的Q-Q图');
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
case 3
gp2=gp(:,lll:end);
nihez2_DSHY2=nihez_DSHY2(lll:end);
xr2_DSHY2=xr_DSHY2(lll:end);
figure
plot(gp2(2,:),'-+');
hold on
plot(nihez2_DSHY2,'r.');
legend('股价真实值','拟合股价');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY2(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY2(2)),'(Vp(t)*hp(t))'];
txt1=['训练样本开始时间:',num2str(zhsh(1,ll+1)),';结束时间:',num2str(zhsh(1,d+ll)),'。共',num2str(d),'天数据'];
txt2=['样本决定系数(R^2):',num2str(STATS_DSHY2(1)),';AIC值:',num2str(STATS_DSHY2(4)) ,';股票和指数相关系数:',num2str(cor(1,2))];
g_max=max(ylim);
g_min=min(ylim);
text(5,g_min+(g_max-g_min)*0.975,txt1);
text(5,g_min+(g_max-g_min)*0.925,txt2);
disp('考虑单支成交量的对数收益率指数模型为:'); disp(txt);
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
figure
plot(xr2_DSHY2);
legend('相对误差','相对误差=100*(拟合值-真实值)/真实值');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY2(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY2(2)),'(Vp(t)*hp(t))'];
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
figure
normplot(R_DSHY2);
legend('误差对于正态分布的Q-Q图');
title('考虑单支成交量的对数收益率指数模型')
xlabel(txt);
end
end
M_DSHY=get(handles.radiobutton5,'Value');
C_GP3=get(handles.radiobutton2,'Value');
if M_DSHY&C_GP3
%---9.对数收益率指数模型3:(P(t)-P(t-1))/P(t-1)=a1(H(t)-H(t-1))/H(t-1)+a2(Vp(t)*(1-exp(P(t-1)-P(t)))/(1+exp(H(t-1)-H(t)))+a3(Vh(t)*(1-exp(H(t-1)-H(t)))/(1+exp(H(t-1)-H(t)))
[B_DSHY3,BINT_DSHY3,R_DSHY3,RINT_DSHY3,STATS_DSHY3]=regress(db_gp(ll+1:ll+d)',[db_zhsh(ll+1:ll+d)',obv1_gp(ll+1:ll+d)',obv1_zhsh(ll+1:ll+d)'],alpha);
nih=B_DSHY3'*[db_zhsh',obv1_gp',obv1_zhsh']';
nihez_DSHY3(1)=gp(2,1);
for i=2:gp_length
nihez_DSHY3(i)=exp(nih(i)+log(gp(2,i-1)));;
end
R_DSHY3=nihez_DSHY3-gp(2,:);
%-------计算D。W值
S=0; S1=R_DSHY3(1)^2;
for i=2:gp_length
S=S+R_DSHY3(i)*R_DSHY3(i-1);
S1=S1+R_DSHY3(i)^2;
end
STATS_DSHY3(4)=2*(1-S/S1);
%-------计算对数似然值
L=-(gp_length)*(1+log(2*pi)+log(R_DSHY3*R_DSHY3'/gp_length))/2;
STATS_DSHY3(5)=L;
%-------计算AIC值
STATS_DSHY3(6)=2*(-L+3)/gp_length;
%-------计算SC值
STATS_DSHY3(7)=2*(-L+3*log(gp_length))/gp_length;
%------------计算相对误差
xr_DSHY3=100*R_DSHY3'./gp(2,:)';
xr_min=min(xr_DSHY3);%最小值
xr_max=max(xr_DSHY3);%最大值
STATS_DSHY3(8)=xr_min;
STATS_DSHY3(9)=xr_max;
nu=mean(gp(2,:));
STATS_DSHY3(10)=dot(gp(2,:)-nihez_DSHY3,gp(2,:)-nihez_DSHY3)/dot(gp(2,:)-nu,gp(2,:)-nu);
switch states(3)
case 0
msgbox(' 请选择数据查看方式')
case 1
figure
plot(gp(2,:),'-+');
hold on
plot(nihez_DSHY3,'r.');
legend('股价真实值','拟合股价');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY3(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY3(2)),'(Vp(t)*hp(t))+',num2str(B_DSHY3(3)),'(VH(t)*h(t))'];
txt1=['训练样本开始时间:',num2str(kd),';结束时间:',num2str(ld),'。共',num2str(d),'天数据'];
txt2=['样本决定系数(R^2):',num2str(STATS_DSHY3(1)),';AIC值:',num2str(STATS_DSHY3(4))];
txt3=['股票和指数相关系数:',num2str(cor(1,2))];
g_max=max(ylim);
g_min=min(ylim);
text(5,g_min+(g_max-g_min)*0.975,txt1);
text(5,g_min+(g_max-g_min)*0.925,txt2);
text(5,g_min+(g_max-g_min)*0.875,txt3);
disp('考虑成交量的对数收益率指数模型:');
disp(txt);
hold on
plot(ll+d,gp(2,ll+d),'ko','Markersize',20)
plot(ll,gp(2,ll),'ko','Markersize',20)
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
figure
plot(xr_DSHY3);
legend('相对误差','相对误差=100*(拟合值-真实值)/真实值');
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
hold on
plot(ll+d,xr_DSHY3(ll+d),'k.','Markersize',20)
plot(ll,xr_DSHY3(ll),'k.','Markersize',20)
figure
normplot(R_DSHY3);
legend('误差对于正态分布的Q-Q图');
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
case 2
gp1=gp(:,ll:end);
nihez1_DSHY3=nihez_DSHY3(ll:end);
xr1_DSHY3=xr_DSHY3(ll:end);
figure
plot(gp1(2,:),'-+');
hold on
plot(nihez1_DSHY3,'r.');
legend('股价真实值','拟合股价');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY3(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY3(2)),'(Vp(t)*hp(t))+',num2str(B_DSHY3(3)),'(VH(t)*h(t))'];
txt1=['训练样本开始时间:',num2str(kd),';结束时间:',num2str(ld),'。共',num2str(d),'天数据'];
txt2=['样本决定系数(R^2):',num2str(STATS_DSHY3(1)),';AIC值:',num2str(STATS_DSHY3(4))];
txt3=['股票和指数相关系数:',num2str(cor(1,2))];
g_max=max(ylim);
g_min=min(ylim);
text(5,g_min+(g_max-g_min)*0.975,txt1);
text(5,g_min+(g_max-g_min)*0.925,txt2);
text(5,g_min+(g_max-g_min)*0.875,txt3);
disp('考虑成交量的对数收益率指数模型:');
disp(txt);
hold on
plot(1+d,gp(2,ll+d),'ko','Markersize',20)
plot(1,gp(2,ll),'ko','Markersize',20)
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
figure
plot(xr1_DSHY3);
legend('相对误差','相对误差=100*(拟合值-真实值)/真实值');
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
hold on
plot(1+d,xr_DSHY3(ll+d),'k.','Markersize',20)
plot(1,xr_DSHY3(ll),'k.','Markersize',20)
figure
normplot(R_DSHY3);
legend('误差对于正态分布的Q-Q图');
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
case 3
gp2=gp(:,lll:end);
nihez2_DSHY3=nihez_DSHY3(lll:end);
xr2_DSHY3=xr_DSHY3(lll:end);
figure
plot(gp2(2,:),'-+');
hold on
plot(nihez2_DSHY3,'r.');
legend('股价真实值','拟合股价');
txt=['ln(P(t)-P(t-1))=',num2str(B_DSHY3(1)),'*ln(H(t)-H(t-1))',num2str(B_DSHY3(2)),'(Vp(t)*hp(t))+',num2str(B_DSHY3(3)),'(VH(t)*h(t))'];
txt1=['训练样本开始时间:',num2str(kd),';结束时间:',num2str(ld),'。共',num2str(d),'天数据'];
txt2=['样本决定系数(R^2):',num2str(STATS_DSHY3(1)),';AIC值:',num2str(STATS_DSHY3(4)),';股票和指数相关系数:',num2str(cor(1,2))];
g_max=max(ylim);
g_min=min(ylim);
text(5,g_min+(g_max-g_min)*0.975,txt1);
text(5,g_min+(g_max-g_min)*0.925,txt2);
disp('考虑成交量的对数收益率指数模型:');
disp(txt);
hold on
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
figure
plot(xr2_DSHY3);
legend('相对误差','相对误差=100*(拟合值-真实值)/真实值');
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
figure
normplot(R_DSHY3);
legend('误差对于正态分布的Q-Q图');
title('考虑成交量的对数收益率指数模型')
xlabel(txt)
end
end
% --- Executes on button press in pushbutton3.% --- Executes on button press in radiobutton7.function radiobutton7_Callback(hObject, eventdata, handles)% hObject handle to radiobutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)C_A=get(hObject,'Value');
if C_A==1
set(handles.radiobutton1,'Value',1);
set(handles.radiobutton2,'Value',1);
set(handles.checkbox1,'Value',1);
else
set(handles.radiobutton1,'Value',0);
set(handles.radiobutton2,'Value',0);
set(handles.checkbox1,'Value',0);
end% Hint: get(hObject,'Value') returns toggle state of radiobutton7% --- Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global ll
global lll
global d
global states
global gp_length
global gp
global zhsh
switch states(2)
case 0
msgbox('请选择训练方式');
case 1
s=get(handles.edit1,'string');
kd =str2num(s);
if kd==0
kd=zhsh(1,1);
ll=0;
else
is_ll=0;
for i=1:gp_length
if gp(1,i)==kd
is_ll=1; ll=i;
end
end
end
if is_ll==0
msgbox('起始日期错误,请重新输入,0为从第一个数据开始');
end
case 2
s=get(handles.edit1,'string');
kd =str2num(s);
if kd==0
kd=zhsh(1,1);
ll=0;
else
is_ll=0;
for i=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -