Rank condition not verified: no stable equilibrium

I repost my question here because I think the topic is more appropriate.

Hello, I’m trying to implement into a simple closed-economy DSGE model a digital currency. I have decided to assume non-separability in the utility function between this digital currency and cash, defining a liquidity function that enters the utility function in the form 1/(1-b) * Liq ^ (1-b). Liquidity is defined as follows:

Li = (am*(mm^(1-s)) + adc*(mdc^(1-s)))^(1/(1-s))

I have defined cash as “mm” and the digital currency as “mdc”. Gammam and Gammadc are two equations that I defined during the derivation of the first order conditions in order to synthesize the equations for the demand of cash and of the digital currency. idc is the interest rate on the digital currency that follows a Taylor rule. mu is the shock to the interest rate on the digital currency. In order to maintain the equality Y = C I assumed that mm + mdc = xim*mm(-1)/PI + Rdc(-1)*mdc(-1)/PI, so that the terms would cancel out in the budget constraint when defining the resource constraint (xim is a constant cost for holding cash and Rdc is the return on the digital currency). I substitute this constraint into the model equations, after having derived the optimality conditions.

My problem now is that, when I run the model (for which I have manually set some steady states), I get the message that the Blanchard-Kahn conditions aren’t verified and I don’t understand why. If I try to lag the variables I get weird IRFs and, moreover, depending on the variables that I lag, the shock to the interest rate of the digital currency has an effect only on some variables rather than all of them.

Here I attach my .mod file
Try4.mod (4.2 KB)

I hope someone can help me, than you very much.

This is hard to debug, given that the model is non-standard. As is, there is instability. The question is whether there is a timing error (there is one unique correct timing structure) or whether the parameterization causes the model to explode.

1 Like

Thank you Professor Pfeifer, so you think that the error could be given only by timing or by the parameter values?
The baseline model is a standard DSGE model with price stickiness, with no capital nor investment, to which I added the two monetary assets in a non-separable form. Would it be useful if I posted the utility function and the budget constraint from which I derived the first order conditions?

That may be possible. Did you check i) whether your setup works before introducing the second asset, ii) if it works with separability?