% Toolbox options SIMU_RESOLVE=0;SIMU_INTERP=1; % Parameters parameters beta1 beta2 sigma1 sigma2 shock_trans1 shock_trans2 Tg TP TO ql qh pl ph m eO; beta1 = 0.95; beta2 = 0.95; sigma1 = 1.5; sigma2 = 1.5; m = 0.1; var_shock d e1 e2 g; shock_num = 4; d = [0.20 0.20 0.15 0.15]; g = [0.9904 1.0470 0.9904 1.0470]; eO = 0.5; e1 = eO*ones(1,4); %[0.5 0.5 0.5 0.5]; e2 = (1-eO)*ones(1,4); %[0.5 0.5 0.5 0.5]; % bounds for asset price ql = 1e-10*min(d)*min(beta1/(1-beta1),beta2/(1-beta2)); qh = max(d)*max(beta1/(1-beta1),beta2/(1-beta2)); pl = 1e-10*min(beta1,beta2); ph = 10*max(beta1,beta2); % States var_state W; WPts = 1000; WMin=0; WMax=1; W=linspace(WMin,WMax,WPts); Tg =[0.5885 0.4115;0.4115 0.5885]; TP = [0.5 0.5;0.5 0.5]; TO = [0.8 0.2;0.8 0.2]; shock_trans = kron(TP,Tg); shock_trans1 = kron(TO,Tg); shock_trans2 = shock_trans; % Tensor variables var_tensor budget1 budget2 etotal; budget1 = e1+d.*W; budget2 = e2+d.*(1-W); etotal = e1+e2+d; %etotal = 1 % Endogenous variables, bounds, and initial values var_policy p q c1 c2 lambda1 lambda2 mu1 mu2 kp1 a1 a2 Wp[4]; inbound p pl ph adaptive(2); inbound q ql qh adaptive(2); inbound c1 1e-10 etotal; inbound c2 1e-10 etotal; inbound kp1 0 1; inbound lambda1 0 1; inbound lambda2 0 1; inbound mu1 0 1; inbound mu2 0 1; inbound a1 0 1; inbound a2 0 1; inbound Wp 0.0 1.0; var_aux bp1 bp2 Rq[4] equity_premium_1 equity_premium_2; var_output q p Wp; var_interp c1Future c2Future qFuture; c1Future = c1; c2Future = c2; qFuture = q; initial c1Future budget1; initial c2Future budget2; initial qFuture 0; model; qp' = qFuture'(Wp')+d'; qCC = GDSGE_MIN{qp'*g'}; c1p' = c1Future'(Wp'); c2p' = c2Future'(Wp'); % Transform of variable bp1 = m*qCC*a1 - m*qCC*kp1; bp2 = m*qCC*a2 - m*qCC*(1-kp1); % Equations in text eq1 = -1 + lambda1 + mu1*m*qCC*p/q+ beta1*GDSGE_EXPECT{qp'*((g')^(1-sigma1))*((c1p')^(-sigma1))| shock_trans1}/(q*(c1^(-sigma1))); eq2 = -1 + mu1 + beta1*GDSGE_EXPECT{((g')^(-sigma1))*((c1p')^(-sigma1))| shock_trans1}/(p*(c1^(-sigma1))); eq3 = lambda1*kp1; eq4 = mu1*a1; eq5 = -1 + lambda2 + mu2*m*qCC*p/q+beta2*GDSGE_EXPECT{qp'*((g')^(1-sigma2))*((c2p')^(-sigma2))| shock_trans2}/(q*(c2^(-sigma2))); eq6 = -1 + mu2 + beta2*GDSGE_EXPECT{((g')^(-sigma2))*((c2p')^(-sigma2))| shock_trans2}/(p*(c2^(-sigma2))); eq7 = lambda2*(1-kp1); eq8 = mu2*a2; % market clear mc = 1-a1-a2; equity_premium_1 = GDSGE_EXPECT{(qp')/q*g' | shock_trans1} - 1/p; equity_premium_2 = GDSGE_EXPECT{(qp')/q*g' | shock_trans2} - 1/p; % Consistency consis' = (qp'*kp1+bp1/g') / qp' - Wp'; Rq' = qp'*g'/q; equations; 1 - ((q+d)*W + e1 - q*kp1 - p*bp1)/c1; 1 - ((q+d)*(1-W) + e2 - q*(1-kp1) - p*bp2)/c2; eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8; mc; consis'; end; end; simulate; num_samples = 100; num_periods = 10000; initial W 0.5 initial shock 1; var_simu q p; W'= Wp'; end;