loc s UVI_1

//**************** (1) Passive Long ******************
set more off 
version 13.0
set more off
cd C:\Users\Toby\Desktop\PhD\Study1\strategy

use step1_`s', clear
gen m=mofd(date)
format m %tm
sort id m
collapse(mean) `s'*, by(id m)
ren m date
order id date

xtset id date

gen ret1 = s.`s' / l.`s'
collapse(mean) ret1, by(date)

sort date
rename ret1 Passive
save PassiveLong_`s'.dta, replace

//**************** (2) Conventional Momentum ******************
set more off 
version 13.0
set more off
cd C:\Users\Toby\Desktop\PhD\Study1\strategy

use step1_`s', clear
gen m=mofd(date)
format m %tm
sort id m
collapse(mean) `s'*, by(id m)
ren m date

xtset id date

gen ret12 = (`s'/l12.`s')-1
gen ret1 = (`s'/l.`s')-1

egen portfolio = xtile(ret12), nquantiles(3) by(date)
collapse(mean) F1.ret1, by(date portfolio)

drop if portfolio ==. | Fret1 ==.

sort date
reshape wide Fret1, i(date) j(portfolio)

loc 1 CS_L
loc 2 CS_2
loc 3 CS_W

forvalue i =1/3 {
		ren Fret1`i' ``i''
		}	
		
generate CS_Mom = CS_W - CS_L

tsset date, monthly 
replace date = F.date
replace date = tm(1960m8)+_n-1
drop if date==.
format date %tm 

save CS_Momentum_`s'.dta, replace

//**************** (3) Time Series Momentum ******************

set more off 
version 13.0
set more off
cd C:\Users\Toby\Desktop\PhD\Study1\strategy

use step1_`s', clear
gen m=mofd(date)
format m %tm
sort id m
collapse(mean) `s'*, by(id m)
ren m date

xtset id date

gen ret1 = (`s'/l.`s')-1
gen ret12 = (`s'/l12.`s')-1

gen portfolio =.
replace portfolio = 3 if ret12 >=0
replace portfolio = 1 if ret12 <=0

sort id date portfolio
drop if portfolio ==. | ret12 ==.

collapse(mean) F1.ret1, by(date portfolio)

ren Fret1 PortRet
reshape wide PortRet, i(date) j(portfolio)

ren PortRet1 TS_L
ren PortRet3 TS_W
		
gen TS_Mom = TS_W - TS_L
replace TS_Mom=TS_W if TS_L==.
replace TS_Mom=TS_L if TS_W==.
		
tsset date, monthly
replace date = F.date
replace date = tm(1960m8)+_n-1                                         
drop if date==.
save TS_Momentum_`s'.dta, replace

//**************** (4) 52 High Momentum ******************

set more off 
version 13.0
set more off
cd C:\Users\Toby\Desktop\PhD\Study1\strategy

use step1_`s', clear
gen m=mofd(date)
format m %tm
sort id m
collapse(mean) `s'*, by(id m)
ren m date

xtset id date

mvsumm `s', generate(H52) stat(max) window(12) 
gen nearness = `s' / l.H52 if H52!=. 
gen ret1 = (`s'/l.`s')-1
replace ret1 =. if nearness ==.

egen portfolio = xtile(nearness), nquantiles(3) by(date)
collapse(mean) F1.ret1, by(date portfolio)
drop if portfolio ==. | Fret1 ==.

rename Fret1 PortRet
reshape wide PortRet, i(date) j(portfolio)

loc 1 H52_L
loc 2 H52_2
loc 3 H52_W

forvalue i =1/3 {
		ren PortRet`i' ``i''
		}
gen H52_Mom = H52_W - H52_L
replace H52_Mom=H52_W if H52_L==.
replace H52_Mom=H52_L if H52_W==.
tsset date, monthly 
replace date = F.date     
replace date=tm(1960m8)+_n-1
format date %tm
drop if date==.

save H52_`s'.dta, replace

//**************** (5) 52 Low Momentum ******************
set more off 
version 13.0
set more off
cd C:\Users\Toby\Desktop\PhD\Study1\strategy

use step1_`s', clear
gen m=mofd(date)
format m %tm
sort id m
collapse(mean) `s'*, by(id m)
ren m date

xtset id date

mvsumm `s', generate(L52) stat(min) window(12) 
gen nearness = `s'/l.L52 if L52!=. 

gen ret1 = (`s'/l.`s')-1
replace ret1 =. if nearness ==.

egen portfolio = xtile(nearness), nquantiles(3) by(date)

collapse(mean) F1.ret1, by(date portfolio)

drop if portfolio ==. | Fret1 ==.

rename Fret1 PortRet
reshape wide PortRet, i(date) j(portfolio)

loc 1 L52_L
loc 2 L52_2
loc 3 L52_W

forvalue i =1/3 {
		ren PortRet`i' ``i''
		}
gen L52_Mom = L52_W - L52_L
replace L52_Mom=L52_W if L52_L==.
replace L52_Mom=L52_L if L52_W==.
		
tsset date, monthly 
replace date = F.date     
replace date =tm(1960m8)+_n-1
format date %tm
drop if date==.

save L52_`s'.dta, replace
****************** Summary Output ******************
clear
cd C:\Users\Toby\Desktop\PhD\Study1\strategy
loc var 

use PassiveLong_UVI_1.dta, clear
sort date
save PassiveLong_UVI_1.dta, replace

use CS_Momentum_UVI_1.dta, clear
sort date
save CS_Momentum_UVI_1.dta, replace

use TS_Momentum_UVI_1.dta, clear
sort date
save TS_Momentum_UVI_1.dta, replace

use H52_UVI_1.dta, clear
sort date
save H52_UVI_1.dta, replace

use L52_UVI_1.dta, clear
sort date
save L52_UVI_1.dta, replace

merge date using PassiveLong_UVI_1 CS_Momentum_UVI_1 TS_Momentum_UVI_1 H52_UVI_1 L52_UVI_1 
drop _merge*
drop if date > tm(2017m12)
order date Passive

save strategy_UVI_1, replace
