# The Dynare Reference Manual, version 6.5

Currently the development team of Dynare is composed of:

- Stéphane Adjemian (Le Mans Université, Gains)

- Michel Juillard (Banque de France)

- Sumudu Kankanamge (Le Mans Université and CEPREMAP)

- Frédéric Karamé (Le Mans Université, Gains and CEPREMAP)

- Junior Maih (Norges Bank)

- Willi Mutschler (University of Tübingen)

- Johannes Pfeifer (University of the Bundeswehr Munich)

- Marco Ratto (European Commission, Joint Research Centre - JRC)

- Normann Rion (CEPREMAP)

- Sébastien Villemot (CEPREMAP)

The following people used to be members of the team:

- Houtan Bastani

- Abdeljabar Benzougar

- Alejandro Buesa

- Fabrice Collard

- Assia Ezzeroug

- Dóra Kocsis

- Stéphane Lhuissier

- Ferhat Mihoubi

- George Perendia

Copyright © 1996-2025, Dynare Team.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license can be found at https://www.gnu.org/licenses/fdl.txt.

- 1. Introduction
  - 1.1. What is Dynare?
  - 1.2. Documentation sources
  - 1.3. Citing Dynare in your research
- 2. Installation and configuration
  - 2.1. Software requirements
  - 2.2. Installation of Dynare
    - 2.2.1. On Windows
    - 2.2.2. On GNU/Linux
    - 2.2.3. On macOS
      - 2.2.3.1. With MATLAB
      - 2.2.3.2. With Octave
    - 2.2.4. On FreeBSD
    - 2.2.5. For other systems
  - 2.3. Compiler installation
    - 2.3.1. Prerequisites on Windows
    - 2.3.2. Prerequisites on GNU/Linux
    - 2.3.3. Prerequisites on macOS
      - 2.3.3.1. With MATLAB
      - 2.3.3.2. With Octave
  - 2.4. Configuration
    - 2.4.1. For MATLAB
    - 2.4.2. For Octave
    - 2.4.3. Some words of warning
- 3. Running Dynare
  - 3.1. Dynare invocation
  - 3.2. Dynare hooks
  - 3.3. Understanding Preprocessor Error Messages
- 4. The model file
  - 4.1. Conventions
  - 4.2. Variable declarations
    - 4.2.1. On-the-fly Model Variable Declaration
  - 4.3. Expressions
    - 4.3.1. Parameters and variables
      - 4.3.1.1. Inside the model
      - 4.3.1.2. Outside the model
    - 4.3.2. Operators
    - 4.3.3. Functions
      - 4.3.3.1. Built-in functions
      - 4.3.3.2. External functions
    - 4.3.4. A few words of warning in stochastic context
  - 4.4. Parameter initialization
  - 4.5. Model declaration
  - 4.6. Auxiliary variables
  - 4.7. Initial and terminal conditions
  - 4.8. Shocks on exogenous variables
  - 4.9. Other general declarations
  - 4.10. Steady state
    - 4.10.1. Finding the steady state with Dynare nonlinear solver
    - 4.10.2. Providing the steady state to Dynare
    - 4.10.3. Replace some equations during steady state computations
  - 4.11. Getting information about the model
  - 4.12. Deterministic simulation
    - 4.12.1. Perfect foresight
    - 4.12.2. Perfect foresight with expectation errors
  - 4.13. Stochastic solution and simulation
    - 4.13.1. Computing the stochastic solution
    - 4.13.2. Typology and ordering of variables
    - 4.13.3. First-order approximation
    - 4.13.4. Second-order approximation
    - 4.13.5. Third-order approximation
    - 4.13.6. Higher-order approximation
  - 4.14. Occasionally binding constraints (OCCBIN)
  - 4.15. Estimation based on likelihood
    - 4.15.1. Non-linear filter options
  - 4.16. Estimation based on moments
    - 4.16.1. Method of moments specific blocks
    - 4.16.2. method_of_moments command
      - 4.16.2.1. Necessary Options
      - 4.16.2.2. Common Options
      - 4.16.2.3. SMM specific options
      - 4.16.2.4. GMM specific options
      - 4.16.2.5. IRF matching specific options
      - 4.16.2.6. General options
      - 4.16.2.7. Data options
      - 4.16.2.8. Optimization options
      - 4.16.2.9. Bayesian estimation options
      - 4.16.2.10. Numerical algorithms options
    - 4.16.3. Method of moments specific outputs
  - 4.17. Model Comparison
  - 4.18. Shock Decomposition
  - 4.19. Calibrated Smoother
  - 4.20. Forecasting
  - 4.21. Optimal policy
    - 4.21.1. Optimal policy under commitment (Ramsey)
    - 4.21.2. Optimal policy under discretion
    - 4.21.3. Optimal Simple Rules (OSR)
  - 4.22. Sensitivity and identification analysis
    - 4.22.1. Performing sensitivity analysis
    - 4.22.2. IRF/Moment calibration
    - 4.22.3. Performing identification analysis
    - 4.22.4. Types of analysis and output files
      - 4.22.4.1. Sampling
      - 4.22.4.2. Stability Mapping
      - 4.22.4.3. IRF/Moment restrictions
      - 4.22.4.4. Reduced Form Mapping
      - 4.22.4.5. RMSE
      - 4.22.4.6. Screening Analysis
      - 4.22.4.7. Identification Analysis
  - 4.23. Markov-switching SBVAR
  - 4.24. Epilogue Variables
  - 4.25. Semi-structural models
    - 4.25.1. Auxiliary models
    - 4.25.2. VAR expectations
    - 4.25.3. PAC equation
    - 4.25.4. Estimation of a PAC equation
  - 4.26. Displaying and saving results
  - 4.27. Macro processing language
    - 4.27.1. Macro expressions
    - 4.27.2. Macro directives
    - 4.27.3. Typical usages
      - 4.27.3.1. Modularization
      - 4.27.3.2. Indexed sums of products
      - 4.27.3.3. Multi-country models
      - 4.27.3.4. Endogeneizing parameters
    - 4.27.4. MATLAB/Octave loops versus macro processor loops
  - 4.28. Verbatim inclusion
  - 4.29. Misc commands
- 5. The configuration file
  - 5.1. Dynare Configuration
  - 5.2. Parallel Configuration
  - 5.3. Windows Step-by-Step Guide
- 6. Time Series
  - 6.1. Dates
    - 6.1.1. Dates in a mod file
    - 6.1.2. The dates class
  - 6.2. The dseries class
  - 6.3. X-13 ARIMA-SEATS interface
  - 6.4. Miscellaneous
    - 6.4.1. Time aggregation
    - 6.4.2. Create time series with a univariate model
- 7. Reporting
- 8. Examples
- 9. Dynare misc commands
- 10. Bibliography

# Indices and tables

- Index