' Compute CAI

' Default directory
cd p:\requests\cai
' cd c:\Desktop

' ********************************************************************
' Set parameters
%start = "1986M1"
%end = "2015M3"
%start_actdat = "2006"
%end_actdat = "2015"
%start_caicomp = "2014M3"
%end_caicomp = "2015M3"
%wfname = "cai"
%excelname = "cai_data.xlsx"
'%countries = "US EZ JP UK CH CAN SWE NOR BRZ KOR TUR ISL MX CL CO POL HUN IDN MYS SGP"
%countries = "US EZ"

mode quiet

wfcreate(wf={%wfname}, page="summary_m") m %start %end
pagecreate(wf={%wfname}, page="summary_q") q %start %end
pagecreate(wf={%wfname}, page="figures_m") m %start %end
pagecreate(wf={%wfname}, page="figures_q") q %start %end
' ********************************************************************

' Loop over countries
' Monthly

for %x {%countries}

	' create country page & copy over parameters
	pagecreate(wf={%wfname}, page={%x}_m) m %start %end
	copy summary_m\* {%x}_m\*

	import(type=excelxml) {%excelname} range={%x}_eviews @freq m %start
	delete series01

	' Transform data
	if %x = "MYS" then

	genr dtot=(tot-tot(-3))/tot(-3)
	genr demp=(emp-emp(-3))/emp(-3)
	genr dip=(ip-ip(-3))/ip(-3)
	genr dex=(ex-ex(-3))/ex(-3)

	genr dtotstd=(dtot-@mean(dtot))/@stdev(dtot)
	genr dempstd=(demp-@mean(demp))/@stdev(demp)
	genr dipstd=(dip-@mean(dip))/@stdev(dip)
	genr dexstd=(dex-@mean(dex))/@stdev(dex)
	genr pmistd=(pmi-@mean(pmi))/@stdev(pmi)
	
	' Compute CAI series
	group caicomp_{%x} dempstd dipstd dexstd 'CHANGE THIS WHEN I GET MYS DATA
	genr cai_{%x}=@rmean(caicomp_{%x})

	' Quarterly sheet
	pagecreate(wf={%wfname}, page={%x}_q) q %start %end
	copy summary_q\* {%x}_q\*

	' Get GDP data
	%range = %x+"_eviews"+"!i1"
	import(type=excelxml) {%excelname} range=%range @freq q %start
	delete series01

	' Copy monthly CAI to quarterly sheet
	copy(c=a) {%x}_m\cai_{%x} {%x}_q\cai_{%x}

	else
	
	genr dtot=(tot-tot(-3))/tot(-3)
	genr demp=(emp-emp(-3))/emp(-3)
	genr dretsales=(retsales-retsales(-3))/retsales(-3)
	genr dip=(ip-ip(-3))/ip(-3)
	genr dex=(ex-ex(-3))/ex(-3)
	' series pmi1=@val(pmi)

	genr dtotstd=(dtot-@mean(dtot))/@stdev(dtot)
	genr dempstd=(demp-@mean(demp))/@stdev(demp)
	genr dretsalesstd=(dretsales-@mean(dretsales))/@stdev(dretsales)
	genr dipstd=(dip-@mean(dip))/@stdev(dip)
	genr dexstd=(dex-@mean(dex))/@stdev(dex)
	genr consconfstd=(consconf-@mean(consconf))/@stdev(consconf)
	genr pmistd=(pmi-@mean(pmi))/@stdev(pmi)
	
	' Compute CAI series
	group caicomp_{%x} dempstd dretsalesstd dipstd consconfstd dexstd pmistd
	genr cai_{%x}=@rmean(caicomp_{%x})

	' Quarterly sheet
	pagecreate(wf={%wfname}, page={%x}_q) q %start %end
	copy summary_q\* {%x}_q\*

	' Get GDP data
	%range = %x+"_eviews"+"!i1"
	import(type=excelxml) {%excelname} range=%range @freq q %start
	delete series01

	' Copy monthly CAI to quarterly sheet
	copy(c=a) {%x}_m\cai_{%x} {%x}_q\cai_{%x}

	endif

	' Fit CAI to qoq GDP growth
	if %x = "POL" then

		genr dgdp_{%x}=4*(gdp-100)
		equation eq_{%x}
		eq_{%x}.ls dgdp_{%x} c cai_{%x}
		coef bhat_{%x} = eq_{%x}.@coefs

	else

		genr dgdp_{%x}=400*(gdp/gdp(-1)-1)
		equation eq_{%x}
		eq_{%x}.ls dgdp_{%x} c cai_{%x}
		coef bhat_{%x} = eq_{%x}.@coefs

	endif

	' Compute fitted CAI at quarterly freq.
	genr caihat_{%x} = bhat_{%x}(1)+bhat_{%x}(2)*cai_{%x}
	
	smpl %start_actdat %end_actdat
	group actdatq_{%x} caihat_{%x} dgdp_{%x}

	graph actdatqfig1_{%x}.line actdatq_{%x} 
	actdatqfig1_{%x}.setelem(1) lwidth(2)
	actdatqfig1_{%x}.setelem(2) lwidth(2)
	freeze(actdatqfig_{%x}) actdatqfig1_{%x}

	copy {%x}_q\actdatqfig_{%x} figures_q\actdatqfig_{%x}
	' show fig_{%x}
	' delete caihat_{%x}

	' Compute fitted CAI at monthly freq.
	copy {%x}_q\bhat_{%x} {%x}_m\bhat_{%x}
	copy(c=f) {%x}_q\dgdp_{%x} {%x}_m\dgdp_{%x}

	pageselect {%x}_m
	genr caihat_{%x} = bhat_{%x}(1)+bhat_{%x}(2)*cai_{%x}

	smpl %start_actdat %end_actdat
	group actdatm_{%x} caihat_{%x} dgdp_{%x}

	graph actdatmfig1_{%x}.line actdatm_{%x} 
	actdatmfig1_{%x}.setelem(1) lwidth(2)
	actdatmfig1_{%x}.setelem(2) lwidth(2)
	freeze(actdatmfig_{%x}) actdatmfig1_{%x}
	
'	freeze(actdatmfig_{%x}) actdatm_{%x}.line(b)
	copy {%x}_m\actdatmfig_{%x} figures_m\actdatmfig_{%x}
	smpl %start_caicomp %end_caicomp

	graph caicompfig1_{%x}.line caicomp_{%x}
	caicompfig1_{%x}.setelem(1) lwidth(2)
	caicompfig1_{%x}.setelem(2) lwidth(2)
	caicompfig1_{%x}.setelem(3) lwidth(2)
	caicompfig1_{%x}.setelem(4) lwidth(2)
	caicompfig1_{%x}.setelem(5) lwidth(2)
	caicompfig1_{%x}.setelem(6) lwidth(2)
	caicompfig1_{%x}.setelem(7) lwidth(2)

	freeze(caicompfig_{%x})  caicompfig1_{%x}
	copy {%x}_m\caicompfig_{%x} figures_m\caicompfig_{%x}
	smpl @all
	
next

pageselect figures_m
spool fig_m_spool

for %x {%countries}
	graph fig_{%x}.merge actdatmfig_{%x} caicompfig_{%x}
	fig_m_spool.append fig_{%x}
next

fig_m_spool.save(t=pdf,mode=f) "p:\requests\cai\cai_m_figs"
fig_m_spool.save(t=pdf,mode=f) "S:\Market Analytics\cai_m_figs"

pageselect figures_q
spool fig_q_spool

for %x {%countries}
	fig_q_spool.append actdatqfig_{%x}
next

fig_q_spool.save(t=pdf,mode=f) "p:\requests\cai\cai_q_figs"
fig_q_spool.save(t=pdf,mode=f) "S:\Market Analytics\cai_q_figs"

wfsave(wf=wf%name,2) {%wfname}


'
'
'	wfsave(type=excelxml,mode=update) "p:\requests\cai\cai.xlsm" range=%range @smpl %start %end @keep caioutput_{%x}
'
'
'
'
'	' Export data to Excel
'	group caioutput_{%x} delta_{%x} acc_{%x} cai_{%x} std_cyc_lconsconf std_cyc_lretsales std_cyc_ltot std_cyc_lip std_cyc_linvunrate
'	%range = %x+"!a1"
'	wfsave(type=excelxml,mode=update) "p:\requests\cai\cai.xlsm" range=%range @smpl %start %end @keep caioutput_{%x}
'
'next
'
'' close {%wfname}
'


