Static Portfolio Choice


Can dynare handle a static portfolio choices ?

For instance, I want to calculate the following two:

E(B_{t+1} R_{t+1}^(1-\gamma)(r1-r2))=0
B_t = [1+beta^alpha* [E(B_{t+1}*(R_{t+1})^{1-\gamma})]^{mu}]^{1/mu}

Where the first equation is a standard first order condition for portfolio choice, R are the gross returns, and r1 and r2 are the interest rates from a risk-free and risky asset respectively, the asset share is implicit in the Gross return function. Say, theta is the asset share for the risky asset. Then someone from the first equation must solve for theta, and plug this theta to the second equation and make the recursion to find the fixed point for B_{t}.

Second, because I am using Epstein/Zin preferences the expectations operator is risen to some power. As far As I know in the dynare code someone does not write the expectations operator. So how dynare will understand whether the expectations itself is risen to some power ?

many thanks

I haven’t worked with this type of problems myself, so I am not sure. The typical problem with portfolio choice models is that standard Dynare cannot find the portfolio allocations because it approximates around a deterministic steady state where the portfolio are indeterminate. See the work by Devereux and Sutherland on this.

Regarding Epstein-Zin, see [Expected value of a power). The Caldara et al. (2011) mod-file on my homepage is one example of this.

Thank you for the reply and link. I will have a look.

if you remember I also had a post ([Idiosyncratic and Aggregate shock)) about a model with idiosyncratic and aggregate shocks that looked like volatility shock. In my model, the existance of this idiosyncratic shock, is what makes the portfolio not to be indetermined. My only concern then, is whether dynare can handle this type of steady state. To make it more specific, in the steady state, there is still an expectations operator involved (due to the idiosyncratic shock) even if when I shut down the aggregate shock. In this case I guess, dynare cannot handle this I am correct ?

So let’s assume then, that i find my steady state value myself. Can somehow dynare ``call" those values and so compute the transitionary dynmics and do the rest that it does?


Dynare always uses the determinstic steady state based on the shocks defined in var_exo. If your idiosyncratic shock is known to Dynare, it will deterministically be set to 0. You cannot tell Dynare which shocks to selectively shut off. Because of this, Dynare cannot endogenously solve for portfolio allocations. There simply are infinitely many steady states when all assets have the same deterministic return. This does not mean that you cannot tell Dynare which of the steady states to pick (providing it exogenously as opposed to endogenously computing it). Any steady state provided in initval will be accepted by Dynare. You only need the nocheck option of steady if you do not want Dynare to check whether the provided values actually are a steady state .

It seems to me that in order to make your model viable, you need to “hide” the additional expectations operator by defining the “expectations operator over the idiosyncratic shock” as a separate variable, similar to the trick you use in order to get rid of integrals in New Keynesian models by defining them as separate variables.

Thank you for the answer.

Can you please sent or suggest a sample of the code, where I can define my values for the steady state exogeneously ?
For example say that I want to set, the following steady state values exogeneously (to dynare).


the code should look like this

[code]% preamble
% model


%shocks and simulations [/code]

is it possible for dynare to call a matlab function for either calculating itself the steady state in the way I will program in that file, or at least to ``read" a file from Matlab with the values I want ?

Second, I am not sure I completely understood your second point about “hiding the expectations”. I never in my life simulated any NK model to be honest.

It would be

initval; y=1; c=0.3; end; steady(nocheck);

But given that the asset allocation would be a true steady state, you should not use the nocheck option. Checking the steady state should find that your initval for the allocations is a correct steady state. Regarding steady state files, see the NK_baseline.mod in the Dynare examples folder.

I am saying that Dynare cannot take non-rational expectations as it uses the mathematical expectations operator. This is similar to the infinite sums or integrals over price dispersion showing up in New Keynesian models. Dynare also cannot deal with those (you cannot even enter them), but often this can be circumvented by writing the sum recursively of defining the whole integral as a recursive variable. That way, Dynare only knows the variable (aka the whole integral) and its recursive definition. It will then solve for the policy function for this variable. You might be able to do the same. Define an auxiliary variable that captures the biased expectations and then work with this auxiliary variable.