%  the code of mypaper
%  the DSGE model structed in this paper is referenced form the Dib(2008) and wangguojing(2015)
%  the code written by Xiaoli Xu  2016_7_23

% define 34 endogenous variables
var y ys yn c cg cc m ls h r zs zn ws wn pi q xi fn fs ns nn k ks kn x kg i ig g a t ui uc y_s; 

% define 4 exogenous variables(from 4 shocks)
varexo e_a e_x e_gi e_gc;

% define parameters
parameters beta sigma_c sigma_l sigma_m alpha_s alpha_n alpha_g delta_i delta_gi phi psi_n
psi_s psi_gi psi_gc sgi sgc alpha_gc vs vn kns knn chi rho_r rho_y rho_pi rho_a rho_x rho_gc rho_gi
ss sn theta lsss lnss se_a se_x se_gc se_gi omega 
% 稳态解参数
yss ysss ynss css cgss ccss mss rss zsss znss wsss wnss piss qss xiss fnss fsss 
nsss nnss kss ksss knss xss kgss iss igss gss ass tss uiss ucss;

% parameter calibration
beta=0.9928;
sigma_c=0.87;
sigma_l=1;
sigma_m=1.5;
alpha_s=0.55;
alpha_n=0.35;
alpha_g=0.1;
delta_i=0.025;
delta_gi=0.1;
phi=0.7418;
psi_n=0.05;
psi_s=0.0137;
psi_gi=0.3999;
psi_gc=0.6005;
sgi=0.023283471;
sgc=0.119071112;
alpha_gc=-0.4193;
vs=0.948;
vn=0.9376;
kns=1.3;
knn=1.17;
chi=0.5882;
rho_r=0.98;
rho_y=0.78;
rho_pi=1.31;
rho_a=0.7625;
rho_x=0.6562;
rho_gc=0.9282;
rho_gi=0.9493;
ss=1.0036;
sn=1.0079;
theta=6;
lsss=1;
lnss=4.50;
se_a=0.0096;
se_x=0.0331;
se_gc=0.0919;
se_gi=0.1299;
omega=0.27;

% the steady-state equilibrium using for the log-linearizzed equations
qss=1;
ass=1;
uiss=1;
ucss=1;
xss=1;
xiss=(theta-1)/theta;
piss=1.0079;
rss=piss/beta;
fsss=ss*rss/piss;
fnss=sn*rss/piss;
zsss=ss*rss/piss-1+delta_i;
znss=sn*rss/piss-1+delta_i;
ysss=((sgi/(delta_i*omega))^(alpha_g/(1-alpha_s-alpha_g)))*((alpha_s*xiss/zsss)^(alpha_s/(1-alpha_s-alpha_g)))*(lsss^((1-alpha_s)/(1-alpha_s-alpha_g)));
ynss=((sgi/delta_i*(1-omega))^(alpha_g/(1-alpha_n-alpha_g)))*((alpha_n*xiss/znss)^(alpha_n/(1-alpha_n-alpha_g)))*(lnss^((1-alpha_n)/(1-alpha_n-alpha_g)));
yss=ysss+ynss;
igss=sgi*yss;
cgss=sgc*yss;
ksss=ysss*alpha_s*xiss/zsss;
knss=ynss*alpha_n*xiss/znss;
kss=ksss+knss;
iss=delta_i*kss;
ccss=yss-igss-cgss-iss;
css=ccss+alpha_gc*cgss;
mss=(1/((1-beta)*(css^(-sigma_c))))^(-1/sigma_m);
wsss=(1-alpha_s)*xiss*ysss/lsss;
wnss=(1-alpha_n)*xiss*ynss/lnss;
%lamdass=((lsss+lnss)^sigma_c)/wsss;
nsss=ksss/kns;
nnss=knss/knn;
gss=igss+cgss;
tss=gss;
kgss=igss/delta_gi;

% the log-linearized equilibrium system
model(linear);
% the household sector
sigma_l*(lsss/(lsss+lnss))*ls+sigma_l*(lnss/(lsss+lnss))*h=-sigma_c*c+ws;%(1)
sigma_l*(lsss/(lsss+lnss))*ls+sigma_l*(lnss/(lsss+lnss))*h=-sigma_c*c+wn;%(2)
-sigma_c*c=-sigma_c*c(+1)-pi(+1)+r;%(3)
sigma_m*m=(1/(1-beta))*sigma_c*c-beta*(1/(1-beta))*(sigma_c*c(+1)+pi(+1))/piss;%-sigma_m*m=(1/(1-beta))*(-sigma_c*c)-(beta/((1-beta)*pi))*(-sigma_c*c(+1)-pi(+1));%(4)
%lamda=lamda(+1)+r;%(5)
c=ccss*cc/css+alpha_gc*cgss*cg/css;%(6)

% the production sector_from the state-owned sector
zs=xi+ys-ks;%(7)
ws=xi+ys-ls;%(8)
ys=alpha_g*kg+alpha_s*ks+(1-alpha_s)*a+(1-alpha_s)*ls;%(9)

% the production sector_from the non-state-owned sector
zn=xi+yn-kn;%(10)
wn=xi+yn-h;%(11)
yn=alpha_g*kg+alpha_n*kn+(1-alpha_n)*a+(1-alpha_n)*h;%(12)
y=ysss*ys/yss+ynss*yn/yss;%y=omega*ys+(1-omega)*yn;%y=ysss*ys/yss+ynss*yn/yss;%(13)

% the price adjustment equation
pi=beta*pi(+1)+(1-beta*phi)*(1-phi)*xi/phi;%(14)

% the bank sector_to the state-owned sector
fn(+1)=psi_n*(q+kn-nn)+r-pi(+1);%(15)   % fn means the external financing costs to the non-state-owned sector
fn=znss*zn/fnss+(1-delta_i)*q/fnss-q(-1);%(16)
nn/(vn*fnss)=knn*fn-(knn-1)*(r(-1)-pi)-psi_n*(knn-1)*(kn(-1)+q(-1))+(psi_n*(knn-1)+1)*nn(-1);%(17)

% the bank sector _to the non-state-owned sector
fs(+1)=psi_s*(q+ks-ns)+r-pi(+1);%(18)  fs means the external financing costs to the state-owned sector
fs=zsss*zs/fsss+(1-delta_i)*q/fsss-q(-1);%(19)
ns/(vs*fsss)=kns*fs-(kns-1)*(r(-1)-pi)-psi_s*(kns-1)*(ks(-1)+q(-1))+(psi_s*(kns-1)+1)*ns(-1);%(20)

% Capital goods manufacturers
k=ksss*ks/kss+knss*kn/kss;%k=ksss*ks/kss+knss*kn/kss;%(21)   % total capital=capital from the two sectors
k=delta_i*(x+i)+(1-delta_i)*k(-1);%(22)   Capital evolution equation  
q=chi*delta_i*(i-k(-1))-x;%q=chi*delta_i*(i-k)-x;%(23)

% government sector
kg=delta_gi*ig+(1-delta_gi)*kg(-1);%(24)  % the government capital evolution equation
t=g;%(25)                                     % the total tax=total government expenditure
g=cgss*cg/gss+igss*ig/gss;%(26)               % total goverment expenditure= government consume expenditure+government investment expenditure

% monetary rules and fiscal rules
r=rho_r*r(-1)+rho_y*y+rho_pi*pi;%(27)
ig=-psi_gi*y+ui;%(28)
cg=-psi_gc*y+uc;%(29)

% The proportion of state-owned output
y_s=ys-y;

% shock process
a=rho_a*a(-1)+e_a;%(30)
x=rho_x*x(-1)+e_x;%(31)
ui=rho_gi*ui(-1)+e_gi;%(32)
uc=rho_gc*uc(-1)+e_gc;%(33)

% market clearing
yss*y=ccss*cc+cgss*cg+iss*i+igss*ig;%(34)

end;

//initval;
//end;

resid;
steady;
check;

shocks;
var e_a;
stderr se_a;
var e_x;
stderr se_x;
var e_gi;
stderr se_gi;
var e_gc;
stderr se_gc;
end;

stoch_simul(order=1,irf=100) y ys yn y_s c cc k ks kn ls h i r;







