// Based on Luca Marchiori/Olivier Pierrard(2012) LOLA 2.0: Luxembourg // OverLapping generation model for policy Analysis /* Snippet common to several test files. Macro-variables that can be defined to tune the computations: - block - mfs */ load lola_data.mat % ==================================================== % declarations var -- varexo -- para % ==================================================== @#define nbr_work_generations=9 @#define nbr_early_generations=2 @#define nbr_generations=16 parameters length_period age_early; length_period=5; age_early=55; @#define wt=[1] @#define wg=0:nbr_work_generations-1 @#define ag=0:nbr_generations-1 @#define fwg=0:nbr_work_generations-nbr_early_generations-1 @#define nbwg=1:nbr_work_generations-1 @#define nbg=1:nbr_generations-1 @#define rg=nbr_work_generations:nbr_generations-1 @#define erg=nbr_work_generations-nbr_early_generations:nbr_work_generations-1 @#define endg=[nbr_generations-1] @#define endw=[nbr_work_generations-1] @#for i in wg var n@{i} u@{i} Omega@{i} w@{i} dWHN@{i} dWFN@{i} n@{i}_f u@{i}_f Omega@{i}_f w@{i}_f dWFN@{i}_f i@{i} lambda@{i} i@{i}_f lambda@{i}_f eta@{i}; parameters Du@{i} Dn@{i} h@{i} h@{i}_f chi@{i} eta@{i}b; varexo eps_eta@{i}; @#endfor @#for i in ag var c@{i} s@{i} P@{i} P@{i}_f; varexo beta@{i} beta@{i}_f PD@{i}; @#endfor @#for i in erg var WE@{i} De_@{i}; parameters De_@{i}b; varexo eps_De_@{i}; @#endfor var wb wb_f Omega Omega_f Omega_hf V M qq p N N_f Q RR H K Y gdp nx FH pi ct st wshare rr gamma mc phii D DH DF X bs bsY P00_f rhou rhoe rhol tauw tauc tauf tauk g TFP gh rrb theta tau1 om1 om2 om2s Ds phijs DepRatio DepRatio_n DepRatio_d ZARA Ptot Ptot_f sleep du de dl inA inB in NBR NBRY NBR2 tauw2 tauf2 tauc2 PensCorr_L PensCorr_F; parameters rho phi delta alpha beta ann fc nu aa rhoub rhoeb rholb tauwb taucb taufb taukb gb TFPb ghb rrbb thetab tau1b om1b om2b om2sb Dsb phijsb NBRYb bsY_iss; varexo P00 P00_foP00 eps_rhol eps_tauw eps_tauf eps_tauc eps_tauk eps_rhoe eps_rhou eps_TFP eps_gh eps_theta eps_g eps_Ds eps_phijs eps_PensCorr_L eps_PensCorr_F; % ============================================================ % initialization % ============================================================ @#for i in wg set_param_value('Du@{i}',Du@{i}); set_param_value('Dn@{i}',Dn@{i}); set_param_value('h@{i}',h@{i}); set_param_value('h@{i}_f',h@{i}_f); set_param_value('chi@{i}',chi@{i}); set_param_value('eta@{i}b',eta@{i}b); @#endfor @#for i in erg set_param_value('De_@{i}b',De_@{i}b); @#endfor set_param_value('rho',rho); set_param_value('phi',phi); set_param_value('delta',delta); set_param_value('alpha',alpha); set_param_value('beta',beta); set_param_value('ann',ann); set_param_value('fc',fc); set_param_value('nu',nu); set_param_value('aa',aa); set_param_value('rhoub',rhoub); set_param_value('rhoeb',rhoeb); set_param_value('rholb',rholb); set_param_value('tauwb',tauwb); set_param_value('taucb',taucb); set_param_value('taufb',taufb); set_param_value('taukb',taukb); set_param_value('gb',gb); set_param_value('TFPb',TFPb); set_param_value('ghb',ghb); set_param_value('rrbb',rrbb); set_param_value('thetab',thetab); set_param_value('tau1b',tau1b); set_param_value('om1b',om1b); set_param_value('om2b',om2b); set_param_value('om2sb',om2sb); set_param_value('Dsb',Dsb); set_param_value('phijsb',phijsb); set_param_value('bsY_iss',bsY_iss); NBRYb=NBR_iss/(phii_iss*gdp_iss); @#if block model(block, mfs=@{mfs}, static_mfs=@{mfs}); @#else model; @#endif % Labor Market Variables in the home country % ------------------------------------------ @#for i in fwg 0=lambda@{i}; @#endfor @#for i in wg 1=n@{i}+u@{i}+i@{i}; @#endfor i0=lambda0; @#for i in nbwg i@{i}=lambda@{i-1}(-1)+lambda@{i}*(1-lambda@{i-1}(-1)); @#endfor P0=beta0*P00+PD0; @#for i in nbg P@{i}=beta@{i}*P@{i-1}(-1)+PD@{i}; @#endfor Omega0=P0; @#for i in nbwg Omega@{i}=(1-lambda@{i})*( 1-lambda@{i-1}(-1)-(1-chi@{i})*n@{i-1}(-1))*P@{i}; @#endfor n0=p; @#for i in nbwg n@{i}=(1-lambda@{i})*((1-p)*(1-chi@{i})*n@{i-1}(-1)+p*(1-lambda@{i-1}(-1))); @#endfor N= @#for i in wg +n@{i}*P@{i} @#endfor ; % Labor Market Variables in the foreign country % --------------------------------------------- @#for i in wg 1=n@{i}_f+u@{i}_f+i@{i}_f; @#endfor i0_f=lambda0_f; @#for i in nbwg i@{i}_f=lambda@{i-1}_f(-1)+lambda@{i}_f*(1-lambda@{i-1}_f(-1)); @#endfor % ----------- reproduction cross-border -------------------- P00_f=P00_foP00*P00; P0_f=beta0_f*P00_f; @#for i in nbg P@{i}_f=beta@{i}_f*P@{i-1}_f(-1); @#endfor Omega0_f=P0_f; @#for i in nbwg Omega@{i}_f=(1-lambda@{i}_f)*(1-lambda@{i-1}_f(-1)-(1-chi@{i})*n@{i-1}_f(-1))*P@{i}_f; @#endfor n0_f=p; @#for i in nbwg n@{i}_f=(1-lambda@{i}_f)*((1-p)*(1-chi@{i})*n@{i-1}_f(-1)+p*(1-lambda@{i-1}_f(-1))); @#endfor N_f= @#for i in wg +n@{i}_f*P@{i}_f @#endfor ; % Matching % ---------- Omega= @#for i in wg +Omega@{i} @#endfor ; Omega_f= @#for i in wg +Omega@{i}_f @#endfor ; Omega_hf=Omega+Omega_f; M=V*Omega_hf/(V^nu+Omega_hf^nu)^(1/nu); qq=M/V; p=M/Omega_hf; % Flow Budget Constraints (no bequests) % -------------------------------------- rhou*w0*u0+ (1-tauw)*w0*n0 = (1+tauc)*c0+s0; @#for i in nbwg (1+rr*(1-tauk))/(beta@{i})^ann*s@{i-1}(-1)/(1+gh)+rhou*w@{i}*u@{i}+rhoe*w@{i}*i@{i}+(1-tauw)*w@{i}*n@{i}=(1+tauc)*c@{i}+s@{i}; @#endfor @#for i in rg (1+rr*(1-tauk))/(beta@{i})^ann*s@{i-1}(-1)/(1+gh)+rhol*wb=(1+tauc)*c@{i}+s@{i}; @#endfor @#for i in endg s@{i}=0; @#endfor wb= @#for i in wg +w@{i}/@{nbr_work_generations} @#endfor ; % Euler Conditions % ------------------ @#for i in nbg 1/(1+tauc)/c@{i-1}=beta*(1+rr(+1)*(1-tauk(+1)))/(1+tauc(+1))/c@{i}(+1)*(beta@{i})^(1-ann)/(1+gh); @#endfor % Optimal Participation Rates (Early Retirement) % ---------------------------------------------- @#for i in erg WE@{i} = 0; @#endfor @#for i in erg @#if i in endw WE@{i} = ((De_@{i}b*i@{i}^(phi-1))+Du@{i}+(rhoe-rhou)*w@{i}/(1+tauc)/c@{i})*(1-i@{i})-((1-tauw-rhou)*w@{i}/(1+tauc)/c@{i}-(Dn@{i}-Du@{i}))*n@{i}; @#else WE@{i} = ((De_@{i}b*i@{i}^(phi-1))+Du@{i}+(rhoe-rhou)*w@{i}/(1+tauc)/c@{i})*(1-i@{i})-((1-tauw-rhou)*w@{i}/(1+tauc)/c@{i}-(Dn@{i}-Du@{i}))*n@{i}+ beta*beta@{i+1}*WE@{i+1}; @#endif @#endfor % Household Surplus % ------------------- @#for i in wg @#if i in endw dWHN@{i} = w@{i}*(1-tauw-rhou)/(1+tauc)-(Dn@{i}-Du@{i})*c@{i}; @#else dWHN@{i} = w@{i}*(1-tauw-rhou)/(1+tauc)-(Dn@{i}-Du@{i})*c@{i} + beta*beta@{i+1}*c@{i}/c@{i+1}(+1)*dWHN@{i+1}(+1)*(1-p(+1))*(1-chi@{i+1})*(1-lambda@{i+1}(+1)); @#endif @#endfor % Foreign household % ------------------------ % participation and wages % ........................ @#for i in wg lambda@{i}=lambda@{i}_f; w@{i}_f=w@{i}; @#endfor wb_f= @#for i in wg +w@{i}_f/@{nbr_work_generations} @#endfor ; % Firm's Behavior % ------------------- H= @#for i in wg +h@{i}*n@{i}*P@{i}+h@{i}_f*n@{i}_f*P@{i}_f @#endfor ; wshare=(1+tauf)*( @#for i in wg +w@{i}*n@{i}*P@{i}+w@{i}_f*n@{i}_f*P@{i}_f @#endfor )/(phii*gdp); Y=TFP*H^(1-alpha)*(K)^alpha; gdp= TFP*H^(1-alpha)*(K)^alpha-aa*V/phii-fc/phii; pi = phii*gdp - wshare*phii*gdp - (rr+delta)*K(-1)/(1+gh); (rr(+1)+delta)/(1+rr(+1)*(1-tauk(+1))) = mc*TFP*alpha*(H/(K))^(1-alpha); FH=TFP*(1-alpha)*((K)/H)^alpha; RR=1+rr*(1-tauk); rr=rrb+tau1*(exp(bsY_iss-bsY)-1); % Firm's Surplus % --------------------- @#for i in wg @#if i in endw dWFN@{i} = h@{i}*mc*FH-(1+tauf)*w@{i}; dWFN@{i}_f = h@{i}_f*mc*FH-(1+tauf)*w@{i}_f; @#else dWFN@{i} = h@{i}*mc*FH-(1+tauf)*w@{i} + beta@{i+1}/RR(+1)*dWFN@{i+1}(+1)*(1-chi@{i+1})*(1-lambda@{i+1}(+1))*(1+gh); dWFN@{i}_f = h@{i}_f*mc*FH-(1+tauf)*w@{i}_f + beta@{i+1}_f/RR(+1)*dWFN@{i+1}_f(+1)*(1-chi@{i+1})*(1-lambda@{i+1}_f(+1))*(1+gh); @#endif @#endfor % Free Entry Condition % --------------------- aa=qq/Omega_hf*( @#for i in wg +Omega@{i}*dWFN@{i}+Omega@{i}_f*dWFN@{i}_f @#endfor ); % Wage Determination (Rent Sharing) % ----------------------------------- @#for i in wg (1-eta@{i})*dWHN@{i} = eta@{i}*((1-tauw)/(1+tauf)/(1+tauc))*dWFN@{i}; @#endfor % Equilibrium Conditions % ---------------------- ct= @#for i in ag +c@{i}*P@{i} @#endfor ; st= @#for i in ag +s@{i}*P@{i} @#endfor ; % Non-Arbitrage condition (physical capital-shares) % ......................... Q(+1)+pi(+1)=(1+rr(+1))*Q/(1+gh); % New Open Economy Macroeconomics (NOEM) % --------------------------------------- phii=mc/theta; D= ct + K-(1-delta)*K(-1)/(1+gh) + g*gdp*phii + fc+aa*V; DH=(1/om1*phii)^(1/(rho-1))*D; X=(1/om2s*phii/gamma)^(1/(rho-1))*Ds; DF=(1/om2*gamma*phijs)^(1/(rho-1))*D; nx=phii*X-phijs*gamma*DF; bsY=bs/(phii*gdp); Y=DH+X; phii*gdp=ct + K-(1-delta)*K(-1)/(1+gh) + g*gdp*phii+nx; st=K+Q +bs ; % Policies % ---------- rhou=rhoub*eps_rhou; rhoe=rhoeb*eps_rhoe; rhol=rholb*eps_rhol; g=gb*eps_g; @#for i in erg De_@{i}=De_@{i}b*eps_De_@{i}; @#endfor TFP=TFPb*eps_TFP; gh=ghb*eps_gh; @#for i in wg eta@{i}=eta@{i}b*eps_eta@{i}; @#endfor rrb=rrbb; theta=thetab*eps_theta; tau1=tau1b; om1=om1b; om2=om2b; om2s=om2sb; Ds=Dsb*eps_Ds; phijs=phijsb*eps_phijs; % ----------- RefDR scenario DepRatio_n= @#for i in rg +P@{i} @#endfor ; DepRatio_d= @#for i in wg +P@{i} @#endfor ; DepRatio=DepRatio_n/DepRatio_d; ZARA=age_early+length_period*( @#for i in erg +1-i@{i} @#endfor ); % ----------- WGEM Ptot= @#for i in ag +P@{i} @#endfor ; Ptot_f= @#for i in ag +P@{i}_f @#endfor ; sleep=(1+rr)*( @#for i in nbg +1/beta@{i}*(1-1/beta@{i}^(ann-1))*s@{i-1}(-1)*P@{i} @#endfor )/(1+gh); du=rhou*( @#for i in wg +w@{i}*u@{i}*P@{i} @#endfor ); de=rhoe*( @#for i in erg +w@{i}*i@{i}*P@{i}+w@{i}_f*i@{i}_f*P@{i}_f @#endfor ); dl= @#for i in rg +rhol*wb*PensCorr_L*P@{i}+rhol*wb_f*(N_f/(N+N_f))*PensCorr_F*P@{i}_f @#endfor ; PensCorr_L=eps_PensCorr_L; PensCorr_F=eps_PensCorr_F; inA=(tauw+tauf)*( @#for i in wg +n@{i}*w@{i}*P@{i}+n@{i}_f*w@{i}_f*P@{i}_f @#endfor ); inB=tauk*rr*( @#for i in nbg +1/beta@{i}^ann*s@{i-1}(-1)*P@{i} @#endfor )/(1+gh); in=tauc*ct+inA+inB+sleep; NBR=g*phii*gdp+(du+de+dl)-(in); NBRY=NBR/(phii*gdp); % ----------- WGEM Adjustment variable --------------- tauf2=tauf; tauw2=tauw; NBR2=NBR; tauc2=tauc; tauf=taufb*eps_tauf; %----- WGEM: adjustment through tauc tauc=taucb*eps_tauc; %----- WGEM: adjustment through tauk tauk=taukb*eps_tauk; %----- WGEM: adjustment through tauw tauw=tauwb*eps_tauw; end; %================================== initval; %================================== @#for i in wg n@{i}=n@{i}_iss; n@{i}_f=n@{i}_f_iss; u@{i}=u@{i}_iss; u@{i}_f=u@{i}_f_iss; Omega@{i}=Omega@{i}_iss; Omega@{i}_f=Omega@{i}_f_iss; w@{i}=w@{i}_iss; w@{i}_f=w@{i}_f_iss; dWHN@{i}=dWHN@{i}_iss; dWFN@{i}=dWFN@{i}_iss; dWFN@{i}_f=dWFN@{i}_f_iss; eps_eta@{i}=eps_eta@{i}_iss; eta@{i}=eta@{i}b*eps_eta@{i}; @#endfor @#for i in erg i@{i}=i@{i}_iss; lambda@{i}=lambda@{i}_iss; i@{i}_f=i@{i}_f_iss; lambda@{i}_f=lambda@{i}_f_iss; WE@{i}=0; eps_De_@{i}=eps_De_@{i}_iss; De_@{i}=De_@{i}b*eps_De_@{i}_iss; @#endfor @#for i in fwg i@{i}=0; lambda@{i}=0; i@{i}_f=0; lambda@{i}_f=0; @#endfor @#for i in ag @#if i in endg s@{i}=0; @#else s@{i}=s@{i}_iss; @#endif @#endfor @#for i in ag beta@{i}=beta@{i}_iss; beta@{i}_f=beta@{i}_f_iss; PD@{i}=PD@{i}_iss; c@{i}=c@{i}_iss; P@{i}=P@{i}_iss; P@{i}_f=P@{i}_f_iss; @#endfor wb = wb_iss; wb_f = wb_f_iss; Omega = Omega_iss; Omega_f = Omega_f_iss; Omega_hf = Omega_hf_iss; V = V_iss ; M = M_iss ; qq = qq_iss ; p = p_iss ; N = N_iss ; N_f = N_f_iss ; Q = Q_iss ; RR = RR_iss ; H = H_iss ; K = K_iss ; Y = Y_iss ; gdp = gdp_iss ; nx = nx_iss ; FH = FH_iss ; pi = pi_iss ; ct = ct_iss ; st = st_iss ; wshare = wshare_iss ; rr = rr_iss ; gamma = gamma_iss ; mc = mc_iss ; phii = phii_iss ; D = D_iss ; DH = DH_iss ; DF = DF_iss ; X = X_iss ; bs = bs_iss ; bsY = bsY_iss ; P00_f = P00_f_iss; eps_rhol=eps_rhol_iss; eps_rhoe=eps_rhoe_iss; eps_rhou=eps_rhou_iss; rhou=rhoub*eps_rhou_iss; rhoe=rhoeb*eps_rhoe_iss; rhol=rholb*eps_rhol_iss; eps_tauc=eps_tauc_iss; eps_tauk=eps_tauk_iss; eps_tauw=eps_tauw_iss; eps_tauf=eps_tauf_iss; tauw=tauwb*eps_tauw; tauc=taucb*eps_tauc; tauf=taufb*eps_tauf; tauk=taukb*eps_tauk; eps_theta=eps_theta_iss; eps_gh=eps_gh_iss; eps_TFP=eps_TFP_iss; eps_g=eps_g_iss; g=gb*eps_g_iss; TFP=TFPb*eps_TFP_iss; gh=ghb*eps_gh_iss; theta=thetab*eps_theta_iss; rrb=rrbb; tau1=tau1b; om1=om1b; om2=om2b; om2s=om2sb; eps_Ds=1; eps_phijs=1; Ds=Dsb*eps_Ds; phijs=phijsb*eps_phijs; eps_PensCorr_F=eps_PensCorr_F_iss; eps_PensCorr_L=eps_PensCorr_L_iss; PensCorr_F=eps_PensCorr_F_iss; PensCorr_L=eps_PensCorr_L_iss; P00 = P00_iss ; P00_foP00 = P00_foP00_iss ; DepRatio_n= @#for i in rg +P@{i} @#endfor ; DepRatio_d= @#for i in wg +P@{i} @#endfor ; DepRatio=DepRatio_n/DepRatio_d; ZARA=age_early+length_period*( @#for i in erg +1-i@{i} @#endfor ); Ptot=Ptot_iss; Ptot_f=Ptot_f_iss; sleep=sleep_iss; du=du_iss; de=de_iss; dl=dl_iss; inA=inA_iss;%(tauw+tauf)*( %@#for i in wg %+n@{i}*w@{i}*P@{i}+n@{i}_f*w@{i}_f*P@{i}_f %@#endfor %); inB=inB_iss;%tauk*rr*( %@#for i in nbg %+1/beta@{i}^ann*s@{i-1}*P@{i} %@#endfor %)/(1+gh); in=in_iss;%tauc*ct+inA+inB+sleep; NBR=NBR_iss;%g*phii*gdp+(du+de+dl)-(in); NBRY=NBR/(phii*gdp); NBR2=NBR; tauf2=tauf; tauw2=tauw; tauc2=tauc; end; %============================== % compute initial steady state %============================== resid; steady(solve_algo=3); endval; @#for i in wg n@{i}=n@{i}_fss; n@{i}_f=n@{i}_f_fss; u@{i}=u@{i}_fss; u@{i}_f=u@{i}_f_fss; Omega@{i}=Omega@{i}_fss; Omega@{i}_f=Omega@{i}_f_fss; w@{i}=w@{i}_fss; w@{i}_f=w@{i}_f_fss; dWHN@{i}=dWHN@{i}_fss; dWFN@{i}=dWFN@{i}_fss; dWFN@{i}_f=dWFN@{i}_f_fss; eps_eta@{i}=eps_eta@{i}_fss; eta@{i}=eta@{i}b*eps_eta@{i}; @#endfor @#for i in erg i@{i}=i@{i}_fss; lambda@{i}=lambda@{i}_fss; i@{i}_f=i@{i}_f_fss; lambda@{i}_f=lambda@{i}_f_fss; WE@{i}=0; eps_De_@{i}=eps_De_@{i}_fss; De_@{i}=De_@{i}b*eps_De_@{i}_fss; @#endfor @#for i in fwg i@{i}=0; lambda@{i}=0; i@{i}_f=0; lambda@{i}_f=0; @#endfor @#for i in ag @#if i in endg s@{i}=0; @#else s@{i}=s@{i}_fss; @#endif @#endfor @#for i in ag beta@{i}=beta@{i}_fss; beta@{i}_f=beta@{i}_f_fss; PD@{i}=PD@{i}_fss; c@{i}=c@{i}_fss; P@{i}=P@{i}_fss; P@{i}_f=P@{i}_f_fss; @#endfor wb = wb_fss; wb_f = wb_f_fss; Omega = Omega_fss; Omega_f = Omega_f_fss; Omega_hf = Omega_hf_fss; V = V_fss ; M = M_fss ; qq = qq_fss ; p = p_fss ; N = N_fss ; N_f = N_f_fss ; Q = Q_fss ; RR = RR_fss ; H = H_fss ; K = K_fss ; Y = Y_fss ; gdp = gdp_fss ; nx = nx_fss ; FH = FH_fss ; pi = pi_fss ; ct = ct_fss ; st = st_fss ; wshare = wshare_fss ; rr = rr_fss ; gamma = gamma_fss ; mc = mc_fss ; phii = phii_fss ; D = D_fss ; DH = DH_fss ; DF = DF_fss ; X = X_fss ; bs = bs_fss ; bsY = bsY_fss ; P00_f = P00_f_fss; eps_rhol=eps_rhol_fss; eps_rhoe=eps_rhoe_fss; eps_rhou=eps_rhou_fss; rhou=rhoub*eps_rhou_fss; rhoe=rhoeb*eps_rhoe_fss; rhol=rholb*eps_rhol_fss; eps_tauc=eps_tauc_fss; eps_tauk=eps_tauk_fss; eps_tauw=eps_tauw_fss; eps_tauf=eps_tauf_fss; tauw=tauwb*eps_tauw; tauc=taucb*eps_tauc; tauf=taufb*eps_tauf; tauk=taukb*eps_tauk; eps_theta=eps_theta_fss; eps_gh=eps_gh_fss; eps_TFP=eps_TFP_fss; eps_g=eps_g_fss; g=gb*eps_g_fss; TFP=TFPb*eps_TFP_fss; gh=ghb*eps_gh_fss; theta=thetab*eps_theta_fss; rrb=rrbb; tau1=tau1b; om1=om1b; om2=om2b; om2s=om2sb; eps_Ds=1; eps_phijs=1; Ds=Dsb*eps_Ds; phijs=phijsb*eps_phijs; eps_PensCorr_F=eps_PensCorr_F_fss; eps_PensCorr_L=eps_PensCorr_L_fss; PensCorr_F=eps_PensCorr_F_fss; PensCorr_L=eps_PensCorr_L_fss; P00 = P00_fss ; P00_foP00 = P00_foP00_fss ; DepRatio_n= @#for i in rg +P@{i} @#endfor ; DepRatio_d= @#for i in wg +P@{i} @#endfor ; DepRatio=DepRatio_n/DepRatio_d; ZARA=age_early+length_period*( @#for i in erg +1-i@{i} @#endfor ); Ptot= @#for i in ag +P@{i} @#endfor ; Ptot_f= @#for i in ag +P@{i}_f @#endfor ; sleep=(1+rr)*( @#for i in nbg +1/beta@{i}*(1-1/beta@{i}^(ann-1))*s@{i-1}*P@{i} @#endfor )/(1+gh); du=rhou*( @#for i in wg +w@{i}*u@{i}*P@{i} @#endfor ); de=rhoe*( @#for i in erg +w@{i}*i@{i}*P@{i}+w@{i}_f*i@{i}_f*P@{i}_f @#endfor ); dl= @#for i in rg +rhol*wb*PensCorr_L*P@{i}+rhol*wb_f*(N_f/(N+N_f))*PensCorr_F*P@{i}_f @#endfor ; inA=(tauw+tauf)*( @#for i in wg +n@{i}*w@{i}*P@{i}+n@{i}_f*w@{i}_f*P@{i}_f @#endfor ); inB=tauk*rr*( @#for i in nbg +1/beta@{i}^ann*s@{i-1}*P@{i} @#endfor )/(1+gh); in=tauc*ct+inA+inB+sleep; NBR=g*phii*gdp+(du+de+dl)-(in); NBRY=NBR/(phii*gdp); NBR2=NBR; tauf2=tauf; tauw2=tauw; tauc2=tauc; end; %============================ % compute final steady state %============================ resid; steady(solve_algo=3); shocks; var P00; periods 1:99; values (se_P00); @#for i in nbg var beta@{i}; periods 1:99; values (se_beta@{i}); var beta@{i}_f; periods 1:99; values (se_beta@{i}_f); var PD@{i}; periods 1:99; values (se_PD@{i}); @#endfor var P00_foP00; periods 1:99; values (se_P00_foP00); var eps_g; periods 1:99; values (se_eps_g); var eps_PensCorr_F; periods 1:99; values (se_eps_PensCorr_F); var eps_PensCorr_L; periods 1:99; values (se_eps_PensCorr_L); end; % ******************************************* % Numerical Simulation, Control Parameters % ******************************************* perfect_foresight_setup(periods=125); perfect_foresight_solver(maxit=100); if ~oo_.deterministic_simulation.status error('Perfect foresight simulation failed') end