% Attempt 6/16/10

load savedParameters;
load InitialValues;


%%
%% preamble
%%

var  A, M, C, w, L, xi, Pd, Ps, P, V, N, Ld, Ls, lambda, Div, RE;

varexo eps, kappa;

parameters epsilon,exponent,delta,deltad,alpha,chi,sigma,eta,phi,beta,R,rho,thetac,thetaf,gamma,A0,kappa0,M0,sig2eps,sig2kappa,D;

%%
%% Assignment of Parameter Values
%%
% savedParameters=[epsilon exponent delta deltad alpha chi sigma eta phi beta R rho thetac thetaf gamma A0 kappa0 M0 sig2eps sig2kappa D];

epsilon=savedParameters(1);
exponent=savedParameters(2);
delta=savedParameters(3);
deltad=savedParameters(4);
alpha=savedParameters(5);
chi=savedParameters(6);
sigma=savedParameters(7);
eta=savedParameters(8);
phi=savedParameters(9);
beta=savedParameters(10);
R=savedParameters(11);
rho=savedParameters(12);
thetac=savedParameters(13);
thetaf=savedParameters(14);
gamma=savedParameters(15);
A0=savedParameters(16);
kappa0=savedParameters(17);
M0=savedParameters(18);
sig2eps=savedParameters(19);
sig2kappa=savedParameters(20);
D=savedParameters(21);



%%
%% Equilibrium Conditions
%%
model;


log(A)=rho*log(A(-1))+eps;

P^(1-sigma)=D*Pd^(1-sigma)+(1-D)*Ps^(1-sigma);
L=D*Ld+(1-D)*Ls;
V=P*C-w*L;

RE=(1-deltad)*(RE(-1)+V);
Div=deltad*(RE(-1)+V);
M=M(-1)+w*L-P*C+Div;

C^(-gamma)=P*xi;
xi=kappa/M+beta*xi(+1);
eta*chi*L^(1+phi)/w+xi*L*(1-eta)-thetac*(w-w(-1))+beta*thetac*(w(+1)-w)=0;

w/P=A*lambda*alpha*Ld^(alpha-1);
lambda=epsilon*N^exponent/R+(1-delta)/R*lambda(+1);
0=(1-sigma)*C*P^(sigma-1)*Pd^(-sigma)+(1-delta)*lambda*sigma*C*P^(sigma)*Pd^(-sigma-1)-thetaf*(Pd-Pd(-1))+1/R*thetaf*(Pd(+1)-Pd);
N=(1-delta)*(N(-1)+A*Ld^alpha-C*(Pd/P)^(-sigma));

0=(1-sigma)*C*P^(sigma-1)*Ps^(-sigma)+sigma/alpha*w*A^(-1/alpha)*C^(1/alpha)*P^(sigma/alpha-1)*Ps^(-sigma/alpha-1)-thetaf*(Ps-Ps(-1))+thetaf/R*(Ps(+1)-Ps);
A*Ls^alpha=C*(Ps/P)^(-sigma);

end;



%%
%% Steady State
%%
% InitialValues=[P lambda M xi C N Pd Pn Ln w Ld L V RE Div];

initval;
kappa=kappa0;
A=A0;
M=InitialValues(3);
C=InitialValues(5);
w=InitialValues(10);
L=InitialValues(12);
xi=InitialValues(4);
Pd=InitialValues(7);
Ps=InitialValues(8);
P=InitialValues(1);
V=InitialValues(13);
N=InitialValues(6);
Ld=InitialValues(11);
Ls=InitialValues(9);
lambda=InitialValues(2);
Div=InitialValues(15);
RE=InitialValues(14);
end;

resid(1)
maxit_=1000000;
steady;






%% 
%% Specify Innovations
%%
shocks;
var eps=sig2eps;
var kappa=sig2kappa;
end;


%%
%% Solve the Model
%%
stoch_simul(Order=1, IRF=0);
