From 0668025f32a6619e322f9128aee542f5d2719fac Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer <jpfeifer@gmx.de> Date: Fri, 27 Dec 2024 15:19:48 +0100 Subject: [PATCH] :bug: discretionary_policy: account for case without lags --- .../discretionary_policy_1.m | 2 ++ meson.build | 1 + .../NK_discretion_forward.mod | 27 +++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 tests/discretionary_policy/NK_discretion_forward.mod diff --git a/matlab/discretionary_policy/discretionary_policy_1.m b/matlab/discretionary_policy/discretionary_policy_1.m index d75dd9718d..ec1be205bf 100644 --- a/matlab/discretionary_policy/discretionary_policy_1.m +++ b/matlab/discretionary_policy/discretionary_policy_1.m @@ -113,5 +113,7 @@ T=H(dr.order_var,dr.order_var); dr.ghu=G(dr.order_var,:); if M_.maximum_endo_lag Selection=M_.lead_lag_incidence(1,dr.order_var)>0;%select state variables +else + Selection=[]; end dr.ghx=T(:,Selection); diff --git a/meson.build b/meson.build index 13e0c01d97..474bb060fc 100644 --- a/meson.build +++ b/meson.build @@ -1069,6 +1069,7 @@ mod_and_m_tests = [ 'discretionary_policy/dennis_1_estim.mod', 'discretionary_policy/dennis_1_estim_MoM.mod' ] }, { 'test' : [ 'discretionary_policy/Gali_discretion.mod' ] }, + { 'test' : [ 'discretionary_policy/NK_discretion_forward.mod' ] }, { 'test' : [ 'discretionary_policy/Gali_2015_chapter_3.mod', 'discretionary_policy/Gali_2015_chapter_3_nonlinear.mod' ] }, { 'test' : [ 'histval_initval_file/ramst_data_generate.mod', diff --git a/tests/discretionary_policy/NK_discretion_forward.mod b/tests/discretionary_policy/NK_discretion_forward.mod new file mode 100644 index 0000000000..c5d36dec48 --- /dev/null +++ b/tests/discretionary_policy/NK_discretion_forward.mod @@ -0,0 +1,27 @@ +var pi x R; + +varexo epsilon; + +parameters beta kappa lambdax lambdaR sigma; + +sigma = 1; +beta = 0.99; +kappa = 0.102; +lambdax = 0.1; + +model(linear); +pi = beta*pi(+1)+kappa*x+epsilon; +x = x(+1)-(1/sigma)*(R-pi(+1)); +end; + +shocks; +var epsilon; stderr 0.01; +end; + +planner_objective (pi^2 +lambdax*x^2); + +discretionary_policy(instruments=(R),irf=20,planner_discount= beta); + + + + -- GitLab