[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: Cumulative return for each firm each day

From   "Nick Cox" <>
To   <>
Subject   st: RE: Cumulative return for each firm each day
Date   Thu, 12 Mar 2009 17:53:38 -0000

Others have given positive advice. 

A remaining question is: Why didn't Hua's code work? (I don't understand the uncertainty implied by "doesn't seem to work", as this code contains illegal statements.) 

Here are some of the reasons: 

1. The line 

gen Cret(`f',`d') = ... 

is illegal. You can't specify subscripts on the LHS of a -generate- statement. Even if you could they wouldn't be matrix style and they would be based on [] and not (). 

2. Writing 

gen Cret = ... 

inside the loop will fail because the variable already exists.  

3. Hua's basic approach is to -generate- a variable at the start of the loop and then to -drop- the same variable at the end. No progress could be made that way. 


Hua Pan

I want to loop over firms and days, in order to calculate cumulative daily return for each firm and from day 1 to day 30. That means, 

firm       day             ret        Cret
1            1              x1         x1
1            2              x2        (1+x1)*(1+x2)-1
…           …                …         …   
1            30             x30       (1+x1)*(1+x2)*…(1+x30)-1
2            1
…             …
2            30
firm and day have numeric format.

I tried:

sort firm day
generate Cret = 0
levelsof firm, local(firms)
levelsof day, local(days)
foreach f of local firms {
foreach d of local days {
gen Cret(`f’, `d’) =  (1+Cret)*(1+ret)-1  if  firm == `f' & day == `d'   
replace Cret = Cret(`f’, `d’)  if firm == `f' & day >= `d'
drop Cret(`f’, `d’)

But it doesn’t seem to work. Have anyone idea about cumulative return or just cumulative sum for each firm and everyday, or just looping of this kind?

Any help and suggestion would be greatly appreciated. Thank you very much in advance for your time.

*   For searches and help try:

© Copyright 1996–2021 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index