The first step of my analysis involves replicating the Jagadeesh Titman results, To do so I have taken the returns of stocks on NYSE and AMEX from CRSP (Monthly frequency),
However, my results are still slightly off the original Jagadeesh Titman results. Can you spot any obvious errors in my code? Much of it has been built by looking at previous forum articles on similar topics but I am using "returns" rather than prices.
. generate date2 = string(date, "%td")
. generate date3 = date(date2,"DMY")
. format %td date3
. gen dm = mofd(date3)
. format dm %tm
. sort permno dm
. tsset permno dm
. gen ret1 = ret + 1
. gen ln_ret = ln(ret1)
. gen comp_ret = l5.ln_ret + l4.ln_ret + l3.ln_ret + l2.ln_ret + l1.ln_ret + ln_ret
. replace comp_ret = exp(comp_ret)
. gen form_ret= comp_ret-1
. drop ewretd ret ln_ret comp_ret
. generate hold_ret = f6.form_ret
. egen portfolio = xtile(form_ret), nquantiles(10) by(dm)
. collapse (mean) hold_ret, by(dm portfolio)
. generate monthly = (1+(hold_ret))^(1/6)-1
Your help is much appreciated,
Paul
However, my results are still slightly off the original Jagadeesh Titman results. Can you spot any obvious errors in my code? Much of it has been built by looking at previous forum articles on similar topics but I am using "returns" rather than prices.
. generate date2 = string(date, "%td")
. generate date3 = date(date2,"DMY")
. format %td date3
. gen dm = mofd(date3)
. format dm %tm
. sort permno dm
. tsset permno dm
. gen ret1 = ret + 1
. gen ln_ret = ln(ret1)
. gen comp_ret = l5.ln_ret + l4.ln_ret + l3.ln_ret + l2.ln_ret + l1.ln_ret + ln_ret
. replace comp_ret = exp(comp_ret)
. gen form_ret= comp_ret-1
. drop ewretd ret ln_ret comp_ret
. generate hold_ret = f6.form_ret
. egen portfolio = xtile(form_ret), nquantiles(10) by(dm)
. collapse (mean) hold_ret, by(dm portfolio)
. generate monthly = (1+(hold_ret))^(1/6)-1
Your help is much appreciated,
Paul
Comment