' LS2007 replication, taken from Dynare model

wfcreate ls2007mod u 1 30
'set lag for anticipated shock
!lag = 10
'axis label graph
!x0 = !lag + 1

' var y, pi, r, delq, delexch, A, pistar, ystar

'endogenous series
series y = 0
series pi = 0
series r = 0
series delq = 0
series delexch = 0
series A = 0
series pistar = 0
series ystar = 0


' varexo er, eq, eystar, epistar, ez

'exogenous shocks
series er=0
series eq=0
series eystar=0
series epistar=0
series ez=0


' parameters beta, tau, kappa, alpha, rhor, rhoq, rhoystar, rhopistar, rhoz, rhoa, psi1, psi2, psi3


scalar beta=0.96
scalar tau=0.5
scalar kappa=0.5
scalar alpha=0.10
scalar rhor=0.5
scalar rhoq=0.4
scalar rhoystar=0.9
scalar rhopistar=0.8
scalar rhoz=0.2
scalar rhoa=1.0
scalar psi1=1.5
scalar psi2=0.25
scalar psi3=0.25

' model(linear)
model ls2007

' // New Keynesian IS curve (LS2007, equation 1)
ls2007.append y=y(+1)-(tau+alpha*(2-alpha)*(1-tau))*(r-pi(+1))-rhoz*(A-A(-1))-alpha*(tau+alpha*(2-alpha)*(1-tau))*delq(+1)+alpha*(2-alpha)*((1-tau)/tau)*(ystar(+1)-ystar)

' // New Keynesian Open Economy Phillips Curve (LS2007, equation 2)
ls2007.append pi=beta*pi(+1)+alpha*beta*delq(+1)-alpha*delq+(kappa/(tau+alpha*(2-alpha)*(1-tau)))*(y+alpha*(2-alpha)*((1-tau)/tau)*ystar)

' // Nominal exchange rate (LS2007, equation 3)
ls2007.append delexch=pi-(1-alpha)*delq-pistar

' // Monetary Policy Rule (LS2007, equation 4)
ls2007.append r=rhor*r(-1)+(1-rhor)*(psi1*pi+psi2*y+psi3*delexch)+er

' // Change in ToT (LS2007, equation 5)
ls2007.append delq=rhoq*delq(-1)+eq

' // Productivity growth (LS2007) - here assumed to be random around zero mean
ls2007.append A=rhoa*A(-1)+ez

' // AR(1) model for pistar (LS2007)
ls2007.append pistar=rhopistar*pistar(-1)+epistar

' // AR(1) model for ystar (LS2007)
ls2007.append ystar=rhoystar*ystar(-1)+eystar

'case (1): unanticipated temporary shock to r
er = 0
smpl @first+1 @first+1
er = 1
smpl @all
ls2007.solve
'plot response
series pi_1 = pi_0
pi_1.displayname Unanticipated temporary shock 
graph graph1.line pi_1
show graph1

