Qustion about the Dynare routine for optimal simple rule

Hi, recently, I became to know that there is a namely a dynare routine for optimal simple rule
which is used to make the results in Devereux and Yetman (2014, JIMF), “Globalisation, pass-through and the optimal policy response to exchange rates”.

More precisely, according to the paper, all results are obtained by the solution using the “optimal simple rules” routine in Dynare, and using the “Ramsey policy” routine.

In my understanding, the first routine solves with an linear quadratic objective function
that especially takes a form of the sum of variances of inflation, output growth and exchange rate changes (for small open economy).
And the second one solves with a specific welfare function, such as a welfare function.

Since the paper I mentioned above provides log linearized approximation conditions of the model in the appendix,
I decided to reproduce some results of the paper, especially results from using optimal simple routine.

However, unfortunately, the paper does not provides the form of quadratic objective function,
I simply takes the following objective function.

lambda1 * var(pi_t) + lambda2var(dy_t) + lambda3var(de_t)
where dy_t is output growth (dy_t = y_t - y_t-1) and de_t is exchange rate changes (de_t = e_t - e_t-1).

Also, following the parameterization of the paper, I coded to optimize three policy objectives, xii, xii_s, gammaa and chii.
where xi : coefficients on inflation in domestic country’s Taylor rule
xii_s : coefficients on inflation in foreign country’s Taylor rule
gammaa : coefficients on exchange rate changes in domestic country’s Taylor rule.
chii : coefficients on exchange rate changes in domestic country’s sterilization policy rule.

Therefore, the program is as follows.

// Version 4 : Risk Premium + Portfolio Adjustment Cost


// Endogenous Variables
var 
y_t     // % (1)
c_t     // % (2)
c_st    // % (3)
tau_t   // % (4)
d_t     // % (5)
y_st    // % (6)
fr_t    // % (7)
pih_t   // % (8)
u_st    // % (9)  
a_t     // % (10)
u_t     // % (11)
pih_st  // % (12)
a_st    // % (13)
pif_t   // % (14)
pif_st  // % (15)
pif_tt  // % (16)
pih_stt // % (17)
s_t     // % (18)
ds_t    // % (19)
pi_t    // % (20)
dy_t    // % (21)
;




// Exogenous variables
varexo 
eps_a   % technology shock
eps_as  % monetary policy shock
eps_u   % foreign inflation shock
eps_us  % foreign interest shock
; 





// Parameters
parameters 
sigmaa
nuu
deltaa
lambdaa
chii
betaa
kappa
phii
xii
xii_s
gammaa
;

sigmaa = 2.0 ;
nuu = 1.5 ;
deltaa = 0.5 ;
lambdaa = 0 ; 
betaa = 0.99 ;
kappa = 0.075 ;
phii = 1.0 ;









model(linear);
// (1)
y_t  = (nuu/2)*c_t + (1-nuu/2)*c_st + nuu*(1 - nuu/2)*(tau_t + (1-deltaa)*d_t) ;

// (2) 
y_st = (nuu/2)*c_st + (1-nuu/2)*c_t - nuu*(1 - nuu/2)*(tau_t + (1-deltaa)*d_t) ;

// (3)
lambdaa*(sigmaa*(c_t - c_st) - deltaa*d_t - (nuu - 1)*(tau_t + (1-deltaa)*d_t)) + (1-lambdaa)*(c_t + (1-nuu/2)*(tau_t + (1 - 2*deltaa)*d_t) - y_t + (fr_t - fr_t(-1))) = 0 ;

// (4)
pih_t = kappa*(sigmaa*c_t + phii*(y_t - a_t) - a_t + u_t + (1-nuu/2)*(tau_t + (1-deltaa)*d_t)) + u_t + betaa*pih_t(+1) ; 

// (5)
pih_st = kappa*(sigmaa*c_t + phii*(y_t - a_t) - a_t + u_t + (1-nuu/2)*(tau_t + (1-deltaa)*d_t) - d_t) + u_t + betaa*pih_st(+1) ;

// (6)
pif_st = kappa*(sigmaa*c_st + phii*(y_st - a_st) - a_st + u_st - (1-nuu/2)*(tau_t + (1-deltaa)*d_t)) + u_st + betaa*pif_st(+1) ;

// (7)
pif_t = kappa*(sigmaa*c_st + phii*(y_st - a_st) - a_st + u_st - (1-nuu/2)*(tau_t + (1-deltaa)*d_t) + d_t) + u_st + betaa*pif_t(+1) ;

// (8)
pif_tt = pih_t + (tau_t - tau_t(-1) + (1-deltaa)*(d_t - d_t(-1))) ;

// (9)
pih_stt = pif_st - (tau_t - tau_t(-1) + (1-deltaa)*(d_t - d_t(-1))) ;

// (10)
gammaa*(d_t - d_t(-1) - (pif_st - pif_t)) + xii*((nuu/2)*pih_t + (1-nuu/2)*pif_tt) = ((nuu/2)*pih_t(+1) + (1-(nuu/2))*pif_tt(+1)) + sigmaa*(c_t(+1) - c_t) ;

// (11)
xii_s*((nuu/2)*pif_st + (1-nuu/2)*pih_stt) = (nuu/2)*pif_st(+1) + (1-nuu/2)*pih_stt(+1) + sigmaa*(c_st(+1) - c_st) ;

// (12)
tau_t - tau_t(-1) = kappa*(phii*(y_st - y_t) + sigmaa*(c_st - c_t) + (nuu-1)*(tau_t + (1-deltaa)*d_t) + deltaa*d_t - tau_t + (1+phii)*(a_t - a_st)) + betaa*(tau_t(+1) - tau_t) ; 

// (13) 
d_t - d_t(-1) - (pif_st - pif_t) = s_t - s_t(-1) ;

// (14)
fr_t - fr_t(-1) = chii*(s_t(-1) - s_t) ;

// (15)
ds_t = s_t - s_t(-1) ;

// (16)
pi_t = (nuu/2)*pih_t + (1- nuu/2)*pif_tt ;

// (17)
dy_t = y_t - y_t(-1) ;

// (18, 19 20, 21)
a_t = 0.9*a_t(-1) + eps_a ;
a_st = 0.9*a_st(-1) + eps_as ;
u_t = 0.9*u_t(-1) + eps_u ;
u_st = 0.9*u_st(-1) + eps_us ;

end;



shocks ;
var eps_a = 1^2 ;% monetary policy shock
//var eps_as = 1^2 ;% foreign inflation shock
//var eps_u = 1^2 ;% foreign interest shock
//var eps_us = 1^2 ;% foreign output shock
end ;

lambda1 = 1.5 ;
lambda2 = 1.5 ;
lambda3 = 1.5 ;

optim_weights;
pi_t lambda1;
dy_t lambda2 ;
ds_t lambda3;
end;


xii = 1.5 ;
xii_s = 1.5 ;
gammaa = 0.1 ;
chii = 0.1 ;

osr_params xii xii_s gammaa chii;

osr;

However, the resulting optimal value of the parameters are strange. They are too huge.

  • Dynare results
    ==================================================
    OPTIMAL VALUE OF THE PARAMETERS:

       xii             -3.77674
    
       xii_s            99.0734
    
       gammaa          -51.4306
    
       chii            -26.4466
    

Objective function : 0.169062

In addition, these optimal values differs depending on initial values of lambdas and parameters to be optimized.

**
Is there any problem in my code ? I also attached the mode file.
**

I would like to reproduce the IRFS in the Graph 7 in Devereux and Yetman (2014).

Thank you for spending your time.
cjh_dy_opt3.mod (3.08 KB)

Isn’t the welfare function provided by equation (43) in their paper?

Your’re right. But I think the dynare routine of optimal simple rule does not require a specific functional form of objective function.
In my understanding, the welfare function provided by equation (43) can be used when using the routine of Ramsey policy.

I would like to first to conduct IRFS through optimal simple rule in Graph 7 in the paper.

You need to look at this differently. The objective function (43) is in squares of percentage deviations from steady state. Those objects are simply variances. Therefore, this is the objective function for OSR as well, with the coefficients given by the prefactors of theses variance terms. Ramsey policy uses the same welfare function, but a different set of instruments.