%--------------------------------------------------
% 
% WELCOME, TO DYNARE
% This version includes the nx static equation. No further calibration. Domestic stochastic shock removed for simplicity.
%--------------------------------------------------

%--------------------------------------------------
% 
% Variables
%
%--------------------------------------------------

var 		c cH            // home economy consumption for entrepreneurs (c) and HH (cH)
            c_for cH_for    // foreign economy consumption for entrepreneurs (c_for) and HH (cH_for)
            h h_for         // home economy entrep real estate (h) and foreign economy entrep real estate (h_for)
            k k_for         // home economy entrep capital stock (k) and foreign economy entrep capital stock (k_for)
            y y_for         //home economy output (y) and foreign economy output (y_for)
            b               //HH borrowing between home and foreign HHs
            bH_dom bH_for   //domestic entrpreneurs borrowing from home economy (dom) and from foreign economy (for)
            bF_dom bF_for   //foreign entrepreneurs borrowing from home economy (dom and from foreign economy (for)
            R               //Real interest rate
            alpha alpha_for //share of domestic real estate collateral for home firm (alpha) and foreign firm (alpha_for)
			sigma sigma_for //share of domestic capital collateral for home firm (sigma) and foreign firm (sigma_for)
			q q_for         //value of real estate in home economy (q) and foreign economy (q_for)
            i i_for         //investment inhome economy (i) and foreign economy (i_for)
            A A_for;        //technology shocks in home economy (A) and foreign economy (A_f)
            
           //nx; // nx_f     //Net exports - check this out still!

varexo  epsilon_f           //foreign technology shock
        epsilon;            //home technology shock
parameters 	mu nu beta 
			eta gamma 
			delta psi
			m_h m_f 
			z_h z_f 
			omega omega_hat 
			j
			alpha_ss alpha_for_ss 
			sigma_ss sigma_for_ss 
			k_ss k_for_ss 
			q_ss q_for_ss 
			h_ss h_for_ss 
			R_ss 
			bH_dom_ss bH_for_ss
			bF_dom_ss bF_for_ss
			b_ss			
			cH_ss cH_for_ss 
			c_ss c_for_ss
            i_ss i_for_ss
			y_ss y_for_ss;  
            //nx_ss;

%--------------------------------------------------
% 
% Calibration
%
%--------------------------------------------------

			mu = 0.25;    	  //Capital share for output
			nu = 0.1;     	  //Asset share of output (i.e. Real Estate)
			beta = 0.99;  	  //Household discount factor  
			eta = 21;      	  //Labor elasticity factor for HH
			gamma = 0.98; 	  //Firms discount factor
			delta = 0.03; 	  //depreciation rate
			m_h = 0.9;    	  //LTV ratio:domestic borrowing on assets
			m_f = 0.8;    	  //LTV ratio:foreign borrowing on assets
			psi = 0.001;  	  // portfolio adjustment cost parameter for HH
			z_h = 0.9;    	  //LTV ratio:domestic borrowing on capital
			z_f = 0.8;    	  //LTV ratio:foreign borrowing on capital
			j = 0.1;       	  //asset weight in HH utility function
			omega = 0.9; 	  //coefficient for technology process - found paper stating move between 0.65 - 0.85 past decade cite: technology persistence and monetary policy 2012
			omega_hat = 0.009;  //coefficient for technology spillover
			alpha_ss = 0.75;   //share of real estate borrowing from home economy (steady state)
            alpha_for_ss = 0.75;
			sigma_ss = 0.75;   //share of capital borrowing from home economy (steady state)
            sigma_for_ss = 0.75;
			k_ss = 6;  	  //capital share of output in SS
			k_for_ss = 6;
            i_ss = 0.18;  //steady state investment: just replace depreciated capital i.e. keep capital stock constant
            i_for_ss = 0.18;
			q_ss = 16;	  //value of real estate in SS
			q_for_ss = 16;
			h_ss = 0.5;		  //quantity of real estate in SS
			h_for_ss = 0.5;
			R_ss = 1.01; 	  //Interest rate in SS (1/beta)
			bH_dom_ss = 2.5;	  //SS share of domestic borrowing in output
			bF_dom_ss = 0.8;
			bH_for_ss = 2.5;  //SS share of foreign borrowing in output
			bF_for_ss = 0.8;
			cH_ss = 0.78; 	  //HHs consumption share of output in SS
			cH_for_ss = 0.78;
			c_ss = 0.04; 	  //Entreps consumption share of output in SS
			c_for_ss = 0.04;
			b_ss = 0.0001; 	  //Between HHs borrowing in SS *check this cos not sure about value
			y_ss = 1; 		  //SS output
			y_for_ss = 1;
            //nx_ss = 0;
%--------------------------------------------------
% 
% The model
%
%--------------------------------------------------
//write_latex_dynamic_model;
model(linear);

           
%-----------DOMESTIC ECONOMY----------------------------------%

					
			alpha = ((1 - alpha_ss)/(alpha_ss))*(q(+1) + h); //1.15 
			
			sigma = ((1 - sigma_ss)/(sigma_ss))*k; //log linearized derivation of choice of sigma

            i_ss*i = k_ss*k + delta*k_ss*k(-1);  //capital accumulation equation

			cH_ss*cH + bH_dom_ss*bH_dom + bH_for_ss*bH_for + b_ss*b = R_ss*(bH_dom_ss + bH_for_ss + b_ss)*R(-1) + R_ss*b(-1) + R_ss*bH_dom_ss*bH_dom(-1) + R_ss*bH_for_ss*bH_for(-1) + (1-nu-mu)*y + q_ss*h_ss*(h - h(-1)) - R_ss*bH_dom_ss*psi*b(-1) + R_ss*bH_for_ss*psi*b(-1); //5.1
			
			(mu + nu)*y + bH_dom_ss*bH_dom + bH_for_ss*bH_for = R_ss*(bH_dom_ss + bH_for_ss)*R(-1) + R_ss*bH_dom_ss*bH_dom(-1) + R_ss*bH_for_ss*bH_for(-1) + q_ss*h_ss*(h - h(-1)) + c_ss*c + k_ss*(k - (1-delta)*k(-1)) - R_ss*bH_dom_ss*psi*b(-1) - R_ss*bH_for_ss*psi*b(-1);       //5.2
			
			cH(+1) = cH + R - psi*b; //5.3
			
			q = beta*q(+1) + (((1-beta)*h_ss)/(1-h_ss))*h + cH - beta*cH(+1); //6.4
			
			(1 - ((1-nu-mu)/eta))*y = A + nu*h(-1) + mu*k(-1) - ((1-nu-mu)/eta)*cH; //6.5
			
			R + bH_dom - psi*b = (1/alpha_ss)*((m_h*q_ss*h_ss)/(m_h*q_ss*h_ss + z_h*k_ss))*(q(+1) + h) + (1/sigma_ss)*((z_h*k_ss)/(m_h*q_ss*h_ss + z_h*k_ss))*k; //5.6
			
			R + bH_for - psi*b = 0; //5.7
			
			q - (gamma + m_h*(beta - gamma))*q(+1) = (1 - beta*m_h)*(c - c(+1)) + (1 - gamma + m_h*(beta - gamma))*(y(+1) - h) - m_h*beta*R + m_h*beta*psi*b; //5.8
			
			0 = (1 - beta*z_h)*(c - c(+1)) + (1 - gamma*(1-delta) - z_h*(beta-gamma))*(y(+1) - k) - beta*z_h*R + beta*z_h*psi*b; //5.9
			
			

%-----------FOREIGN ECONOMY----------------------------------%	

		
			alpha_for = ((1 - alpha_for_ss)/(alpha_for_ss))*(q_for(+1) + h_for); //log linearization of domestic real estate collateral choice for foreign economy
			
			sigma_for = ((1 - sigma_for_ss)/(sigma_for_ss))*(k_for); //log linearization of domestic capital collateral choice for foreign economy
			
			i_for_ss*i_for = k_for_ss*k_for + delta*k_for_ss*k_for(-1);  //capital accumulation equation

            cH_for_ss*cH_for + bF_dom_ss*bF_dom + bF_for_ss*bF_for - b_ss*b = R_ss*(bF_dom_ss + bF_for_ss - b_ss)*R(-1) - R_ss*b(-1) + R_ss*bF_dom_ss*bF_dom(-1) + R_ss*bF_for_ss*bF_for(-1) + (1-nu-mu)*y_for + q_for_ss*h_for_ss*(h_for - h_for(-1)) + R_ss*bF_dom_ss*psi*b(-1) - R_ss*bF_for_ss*psi*b(-1); //5.10
			
			(mu + nu)*y_for + bF_dom_ss*bF_dom + bF_for_ss*bF_for = R_ss*(bF_dom_ss + bF_for_ss)*R(-1) + R_ss*bF_dom_ss*bF_dom(-1) + R_ss*bF_for_ss*bF_for(-1) + q_for_ss*h_for_ss*(h_for - h_for(-1)) + c_for_ss*c_for + k_for_ss*(k_for - (1-delta)*k_for(-1)) + R_ss*bF_dom_ss*psi*b(-1) + R_ss*bF_for_ss*psi*b(-1); //5.11
			
			cH_for(+1) = cH_for + R + psi*b; //5.12
			
			q_for = beta*q_for(+1) + (((1-beta)*h_for_ss)/(1-h_for_ss))*h_for + cH_for - beta*cH_for(+1); //6.13
			
			(1 - ((1-nu-mu)/eta))*y_for = A_for + nu*h_for(-1) + mu*k_for(-1) - ((1-nu-mu)/eta)*cH_for; //6.14
			
			R + bF_dom + psi*b = (1/alpha_for_ss)*((m_h*q_for_ss*h_for_ss)/(m_h*q_for_ss*h_for_ss + z_h*k_for_ss))*(q_for(+1) + h_for) + (1/sigma_for_ss)*((z_h*k_for_ss)/(m_h*q_for_ss*h_for_ss + z_h*k_for_ss))*k_for; //5.15 
			
			R + bF_for + psi*b = 0; //5.16 
			
			q_for - (gamma + m_h*(beta - gamma))*q_for(+1) = (1 -beta*m_h)*(c_for - c_for(+1)) + (1 - gamma + m_h*(beta - gamma))*(y_for(+1) - h_for) - m_h*beta*R - m_h*beta*psi*b; //5.17 
			
			0 = (1 - beta*z_h)*(c_for - c_for(+1)) + (1 - gamma*(1 - delta) - z_h*(beta - gamma))*(y_for(+1) - k_for) - beta*z_h*R - beta*z_h*psi*b; //5.18
			
%-----------SHOCK(S)-----------------------------%

			A = (omega*A(-1)) + (omega_hat*A_for(-1)) + epsilon;
			
			A_for = (omega*A_for(-1)) + (omega_hat*A(-1)) + epsilon_f;


        
end;
%--------------------------------------------------
% 
% Checks
%
%--------------------------------------------------

steady;

check;

%--------------------------------------------------
% 
% Shocks
%
%--------------------------------------------------
shocks;

var epsilon; stderr (0.852); 
var epsilon_f; stderr (0.852); //changed shock intensity from 0.9 to 0.6
corr epsilon, epsilon_f = 0.187;
end;

%--------------------------------------------------
% 
% Simulation
%
%--------------------------------------------------

stoch_simul(irf=60);
