# Re: st: Cumulative return for each firm each day

 From Antoine Terracol To statalist@hsphsun2.harvard.edu Subject Re: st: Cumulative return for each firm each day Date Thu, 12 Mar 2009 18:43:15 +0100

```Try something like:

bysort firm (day) : gen Cret=exp(sum(ln(1+ret)))-1

Antoine

Hua Pan wrote:
> Dear Statalistersï¿½
>
> 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.
>
> Best regards
>
> Hua
>
>
>
>
>
>

--
Ce message a ete verifie par MailScanner
pour des virus ou des polluriels et rien de
suspect n'a ete trouve.

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```