我正试图在dynare(Matlab的一个包)中处理DSGE模型中的Zero Lower Bound。我发现了一篇论文,在ZLB上开发了一种随机模拟算法,我找到了一些作者的代码,但我无法解释部分代码。我到处寻找答案。这就是代码的样子:
@#define TShadow = 30
@#define TIRF = 15
@#define TSimul = 300
@#define TDrop = 100
@#if TShadow > TIRF
@#define TInitIRF = TShadow
@#else
@#define TInitIRF = TIRF
@#endif
var pi, y, i, shock_pi, shock_nu, shock_i;
varexo epsilon_pi, epsilon_nu, epsilon_i;
使用@#是如此神秘,我找不到它的单一用法。我已经运行了代码并且它可以运行。
答案 0 :(得分:2)
这与Macro-processing language语法有关。此链接讨论表达式,指令,典型用法,并比较MATLAB / Octave循环与宏处理器循环。请参阅此pdf中有关Dynare宏处理器语法和典型用法的更多信息。
答案 1 :(得分:0)
您可以使用Dynare的savemacro
命令行选项运行代码,例如
dynare mymodel.mod savemacro=final_mod_file.txt onlymacro nolinemacro
这将编写预处理器在将宏语言命令解析为final_mod_file.txt
文件后创建的常规可读Dynare模型代码。有关命令行选项的更多详细信息,请参阅Dynare手册。