' Compute CLI

' Default directory
cd p:\requests\cli
' cd c:\Desktop

' ********************************************************************
' Set parameters
%start = "1988M1"
%end = "2015M12"
%wfname = "cli"
%excelname = "cli_comp.xlsx"
%countries = "BRZ KOR"

mode quiet

' close {%wfname}
wfcreate(wf={%wfname}, page="summary") m %start %end

' scalar pi=3.14159265358979
' scalar tau1=120
' scalar l_1=(4*(1-@cos(2*pi/tau1))^2)^(-1)
' scalar tau2=12
' scalar l_2=(4*(1-@cos(2*pi/tau2))^2)^(-1)
' ********************************************************************

' Loop over countries

for %x {%countries}

	' create country page & copy over parameters
	pagecreate(wf={%wfname}, page={%x}) m %start %end
	copy summary\* {%x}\*

	' Import data
	import(type=excelxml) {%excelname} range={%x}_eviews @freq m %start
	delete series01

	' Transform data
	genr ltot=log(xp/mp)
	genr linvunrate=-log(unrate)
	genr lconsconf=log(consconf)
	genr lretsales=log(retsales)
	genr lpmi=log(pmi)
	genr lip=log(ip)

	' Double filter components
	' lambda values obtained from lambda = (4*(1-cos(w0))^2)^(-1)
	' w0=2*pi/tau
	' tau: period for completion of full cycle of cos(w0) (e.g., 12 or 120 months for 1 	' or 10 years)

	%list = @wlookup("l*", "series")
	' 1. Extract cyclical components
		for %i {%list}
			hpf(lambda=133107.94) {%i} trnd_{%i} @cyc_{%i}
		next

	' 2. Extract trend components from cyclical components
	%list = @wlookup("cyc_*", "series")
		for %i {%list}
			hpf(lambda=13.93) {%i} dblsm_{%i}
			genr std_{%i}=(dblsm_{%i}-@mean(dblsm_{%i}))/@stdev(dblsm_{%i})
		next

	group std_cyc_data

	genr dblsm_tempcli=(std_cyc_lconsconf+std_cyc_lretsales+std_cyc_lpmi+std_cyc_ltot+std_cyc_linvunrate)*(1/5)

	genr dtrnd_cli=@stdev(dblsm_cyc_lip)*dblsm_tempcli/@stdev(dblsm_tempcli)

	' genr checksum=@sum(@stdev(dtrnd_cli) - @stdev(dblsm_cyc_lip))

	genr cli_trnd=exp(dtrnd_cli+trnd_lip)
	genr cli_{%x}=exp(dtrnd_cli)

	genr delta_{%x}=@movav(100*(cli_trnd/cli_trnd(-1)-1),3)
	genr acc_{%x}=delta_{%x}-delta_{%x}(-1)

	wfsave(wf=wf%name,2) {%wfname}

	' Export data to Excel
	group clioutput_{%x} cli_{%x} delta_{%x} acc_{%x}
	%range = %x+"!a1"
	wfsave(type=excelxml,mode=update) "p:\requests\cli\cli.xlsx" range=%range @smpl %start %end @keep clioutput_{%x}

next

genr test=@mean(clioutput_KOR)

' wfsave(type=excelxml,mode=update) "p:\requests\cli\cli.xlsx" range="KOR!A1" @smpl %start %end @keep clioutput_KOR


