I want to build Dezil portfolios based on the last observed values of the respective calendar year for the variable "MV". So I want to compare the variable "MV" across all ISIN's (International Securities Identification Number) every 31. December and then build the Dezil portfolios by size. Then I want to assign the Dezil portfolios their corresponding returns so that I can calculate the returns of the weighted portfolios. I have already worked with the following code trying to do this:

Code:
bys ISIN month(`12'):astile gen MV10=MV, nq(10)


However, I got the following error message:

Code:
genes MV10 invalid name
st_addvar(): 3300 argument out of range
fastile(): - function returned error
<istmt>: - function returned error

Then, when the Dezil portfolios stand, I want to assign the Dezil portfolios their associated returns so that I can calculate the return on the weighted portfolios. The weighting should be value-based. The return of each of the companies should therefore be in relation to the "MV" of the Dezil portfolio. I used the following code to calculate my returns:

Code:
gen time=_n
bysort ISIN(Date): gen Return = (RI[_n]-RI[_n-1])/RI[_n-1]

My .dta document looks like this:


Code:
* Example generated by -dataex-. To install: ssc install dataex
clear
input int Date str15 ISIN double(RI MV) byte _merge float(time Return)
 9162 "DE0001218063" .n .n 3   1 .
 9190 "DE0001218063" .n .n 3   2 .
 9219 "DE0001218063" .n .n 3   3 .
 9251 "DE0001218063" .n .n 3   4 .
 9282 "DE0001218063" .n .n 3   5 .
 9310 "DE0001218063" .n .n 3   6 .
 9343 "DE0001218063" .n .n 3   7 .
 9373 "DE0001218063" .n .n 3   8 .
 9404 "DE0001218063" .n .n 3   9 .
 9435 "DE0001218063" .n .n 3  10 .
 9464 "DE0001218063" .n .n 3  11 .
 9496 "DE0001218063" .n .n 3  12 .
 9527 "DE0001218063" .n .n 3  13 .
 9555 "DE0001218063" .n .n 3  14 .
 9586 "DE0001218063" .n .n 3  15 .
 9616 "DE0001218063" .n .n 3  16 .
 9646 "DE0001218063" .n .n 3  17 .
 9677 "DE0001218063" .n .n 3  18 .
 9708 "DE0001218063" .n .n 3  19 .
 9737 "DE0001218063" .n .n 3  20 .
 9769 "DE0001218063" .n .n 3  21 .
 9800 "DE0001218063" .n .n 3  22 .
 9828 "DE0001218063" .n .n 3  23 .
 9861 "DE0001218063" .n .n 3  24 .
 9891 "DE0001218063" .n .n 3  25 .
 9919 "DE0001218063" .n .n 3  26 .
 9951 "DE0001218063" .n .n 3  27 .
 9981 "DE0001218063" .n .n 3  28 .
10010 "DE0001218063" .n .n 3  29 .
10042 "DE0001218063" .n .n 3  30 .
10073 "DE0001218063" .n .n 3  31 .
10104 "DE0001218063" .n .n 3  32 .
10134 "DE0001218063" .n .n 3  33 .
10164 "DE0001218063" .n .n 3  34 .
10195 "DE0001218063" .n .n 3  35 .
10226 "DE0001218063" .n .n 3  36 .
10255 "DE0001218063" .n .n 3  37 .
10286 "DE0001218063" .n .n 3  38 .
10317 "DE0001218063" .n .n 3  39 .
10346 "DE0001218063" .n .n 3  40 .
10378 "DE0001218063" .n .n 3  41 .
10408 "DE0001218063" .n .n 3  42 .
10437 "DE0001218063" .n .n 3  43 .
10470 "DE0001218063" .n .n 3  44 .
10500 "DE0001218063" .n .n 3  45 .
10531 "DE0001218063" .n .n 3  46 .
10561 "DE0001218063" .n .n 3  47 .
10591 "DE0001218063" .n .n 3  48 .
10623 "DE0001218063" .n .n 3  49 .
10651 "DE0001218063" .n .n 3  50 .
10682 "DE0001218063" .n .n 3  51 .
10710 "DE0001218063" .n .n 3  52 .
10743 "DE0001218063" .n .n 3  53 .
10773 "DE0001218063" .n .n 3  54 .
10804 "DE0001218063" .n .n 3  55 .
10835 "DE0001218063" .n .n 3  56 .
10864 "DE0001218063" .n .n 3  57 .
10896 "DE0001218063" .n .n 3  58 .
10926 "DE0001218063" .n .n 3  59 .
10955 "DE0001218063" .n .n 3  60 .
10988 "DE0001218063" .n .n 3  61 .
11016 "DE0001218063" .n .n 3  62 .
11046 "DE0001218063" .n .n 3  63 .
11077 "DE0001218063" .n .n 3  64 .
11108 "DE0001218063" .n .n 3  65 .
11137 "DE0001218063" .n .n 3  66 .
11169 "DE0001218063" .n .n 3  67 .
11200 "DE0001218063" .n .n 3  68 .
11228 "DE0001218063" .n .n 3  69 .
11261 "DE0001218063" .n .n 3  70 .
11291 "DE0001218063" .n .n 3  71 .
11322 "DE0001218063" .n .n 3  72 .
11353 "DE0001218063" .n .n 3  73 .
11381 "DE0001218063" .n .n 3  74 .
11410 "DE0001218063" .n .n 3  75 .
11442 "DE0001218063" .n .n 3  76 .
11473 "DE0001218063" .n .n 3  77 .
11501 "DE0001218063" .n .n 3  78 .
11534 "DE0001218063" .n .n 3  79 .
11564 "DE0001218063" .n .n 3  80 .
11595 "DE0001218063" .n .n 3  81 .
11626 "DE0001218063" .n .n 3  82 .
11655 "DE0001218063" .n .n 3  83 .
11687 "DE0001218063" .n .n 3  84 .
11718 "DE0001218063" .n .n 3  85 .
11746 "DE0001218063" .n .n 3  86 .
11778 "DE0001218063" .n .n 3  87 .
11808 "DE0001218063" .n .n 3  88 .
11837 "DE0001218063" .n .n 3  89 .
11869 "DE0001218063" .n .n 3  90 .
11900 "DE0001218063" .n .n 3  91 .
11931 "DE0001218063" .n .n 3  92 .
11961 "DE0001218063" .n .n 3  93 .
11991 "DE0001218063" .n .n 3  94 .
12022 "DE0001218063" .n .n 3  95 .
12053 "DE0001218063" .n .n 3  96 .
12082 "DE0001218063" .n .n 3  97 .
12110 "DE0001218063" .n .n 3  98 .
12143 "DE0001218063" .n .n 3  99 .
12173 "DE0001218063" .n .n 3 100 .
end
format %tdnn/dd/CCYY Date
label values _merge _merge
label def _merge 3 "matched (3)", modify