Hello.
I'm currently doing a finance dissertation on the U.S. stock market.
I have firm prices, daily returns in the entire market. There are thousands of firms in the entire market. I calculated past 1months, 3months and 6months past returns and standard deviation from daily returns.
My question is that I have to get 1month 3month 6month future returns of each firms from daily returns. In other words, as I calculated past returns, I try to get the future returns on each month.
My code and dataex look like below.
Please help me if you can. Thank you.


gen int mdate = mofd(date)

format mdate %tm

foreach lag of numlist 1 3 6 {
sort permno mdate date
rangestat (first) prc (sd) volatility_`lag' = prc, by(permno) interval(mdate
> -`lag' -1)
by permno mdate (date): gen ret_`lag' = prc[1]/prc_first - 1
drop prc_first
}


And dataex looks like this.

Code:
* Example generated by -dataex-. To install: ssc install dataex
clear
input double permno long date double(shrcd exchcd siccd prc shrout retx) int mdate double volatility_1 float ret_1 double volatility_3 float ret_3 double volatility_6 float ret_6
10026 21186 11 3 2052 149.17999267578125 18668   -.017453791573643684 696                  .            .                  .          .                  .          .
10026 21187 11 3 2052 147.69000244140625 18668   -.009987869299948215 696                  .            .                  .          .                  .          .
10026 21188 11 3 2052 149.72999572753906 18668    .013812670484185219 696                  .            .                  .          .                  .          .
10026 21189 11 3 2052  148.3000030517578 18668   -.009550475515425205 696                  .            .                  .          .                  .          .
10026 21192 11 3 2052 148.41000366210938 18668   .0007417438318952918 696                  .            .                  .          .                  .          .
10026 21193 11 3 2052 147.33999633789063 18668  -.0072098057717084885 696                  .            .                  .          .                  .          .
10026 21194 11 3 2052  145.4600067138672 18668    -.01275953371077776 696                  .            .                  .          .                  .          .
10026 21195 11 3 2052 146.58999633789063 18668    .007768386974930763 696                  .            .                  .          .                  .          .
10026 21196 11 3 2052              146.5 18668  -.0006139323231764138 696                  .            .                  .          .                  .          .
10026 21200 11 3 2052 146.66000366210938 18668    .001092175138182938 696                  .            .                  .          .                  .          .
10026 21201 11 3 2052  152.0500030517578 18668     .03675166517496109 696                  .            .                  .          .                  .          .
10026 21202 11 3 2052 150.49000549316406 18668   -.010259767062962055 696                  .            .                  .          .                  .          .
10026 21203 11 3 2052  153.8000030517578 18668    .021994799375534058 696                  .            .                  .          .                  .          .
10026 21206 11 3 2052             149.75 18668    -.02633291855454445 696                  .            .                  .          .                  .          .
10026 21207 11 3 2052 150.22000122070313 18668   .0031385724432766438 696                  .            .                  .          .                  .          .
10026 21208 11 3 2052 148.36000061035156 18668   -.012381844222545624 696                  .            .                  .          .                  .          .
10026 21209 11 3 2052  150.9199981689453 18678    .017255308106541634 696                  .            .                  .          .                  .          .
10026 21210 11 3 2052 148.72999572753906 18678   -.014511015266180038 696                  .            .                  .          .                  .          .
10026 21213 11 3 2052  149.5500030517578 18678    .005513395648449659 696                  .            .                  .          .                  .          .
10026 21214 11 3 2052 138.99000549316406 18678    -.07061181962490082 696                  .            .                  .          .                  .          .
10026 21215 11 3 2052 138.44000244140625 18678   -.003957141190767288 696                  .            .                  .          .                  .          .
10026 21216 11 3 2052  139.5399932861328 18678     .00794561393558979 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21217 11 3 2052 136.97999572753906 18678    -.01834597811102867 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21220 11 3 2052 133.24000549316406 18678   -.027303185313940048 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21221 11 3 2052 135.91000366210938 18678    .020039012655615807 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21222 11 3 2052 134.74000549316406 18678   -.008608624339103699 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21223 11 3 2052  132.1699981689453 18678    -.01907382532954216 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21224 11 3 2052 133.88999938964844 18678    .013013552874326706 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21227 11 3 2052 134.24000549316406 18678    .002614131895825267 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21228 11 3 2052 134.61000061035156 18678   .0027562209870666265 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21229 11 3 2052 138.36000061035156 18678    .027858257293701172 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21230 11 3 2052 138.77999877929688 18678   .0030355460476130247 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21231 11 3 2052 139.10000610351563 18678   .0023058606311678886 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21235 11 3 2052 138.60000610351563 18678  -.0035945361014455557 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21236 11 3 2052  135.9499969482422 18678   -.019119834527373314 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21237 11 3 2052  134.6300048828125 18678   -.009709393605589867 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21238 11 3 2052  135.4199981689453 18678    .005867884028702974 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21241 11 3 2052  137.1199951171875 18678    .012553514912724495 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21242 11 3 2052 136.16000366210938 18678   -.007001104764640331 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21243 11 3 2052  134.3300018310547 18678   -.013440083712339401 697 3.6470898275500985   -.06461992 3.6470898275500985 -.06461992 3.6470898275500985 -.06461992
10026 21244 11 3 2052              134.5 18678   .0012655263999477029 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21245 11 3 2052 137.22000122070313 18678     .02022305689752102 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21248 11 3 2052 138.69000244140625 18678    .010712732560932636 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21249 11 3 2052 140.94000244140625 18678    .016223231330513954 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21250 11 3 2052  141.3300018310547 18678   .0027671304997056723 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21251 11 3 2052                141 18678   -.002334973542019725 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21252 11 3 2052  141.8000030517578 18678     .00567378057166934 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21255 11 3 2052 141.11000061035156 18678   -.004866025410592556 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21256 11 3 2052 141.00999450683594 18678  -.0007087102276273072 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21257 11 3 2052 138.92999267578125 18678   -.014750740490853786 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21258 11 3 2052  135.3800048828125 18678   -.025552349165081978 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21259 11 3 2052 136.69000244140625 18678    .009676448069512844 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21262 11 3 2052 136.11000061035156 18678   -.004243191331624985 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21263 11 3 2052 135.66000366210938 18678   -.003306126920506358 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21264 11 3 2052 133.82000732421875 18678   -.013563293032348156 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21265 11 3 2052  133.6999969482422 18678  -.0008968044421635568 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21266 11 3 2052 132.00999450683594 18678    -.01264025829732418 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21269 11 3 2052 135.17999267578125 18678    .024013319984078407 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21270 11 3 2052  135.0800018310547 18678   -.000739686714950949 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21271 11 3 2052  134.6199951171875 18678   -.003405438968911767 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21272 11 3 2052 136.55999755859375 18697    .014410953037440777 698 2.1448368228769437   -.03611863   6.75308261146184 -.09840456   6.75308261146184 -.09840456
10026 21276 11 3 2052 134.27000427246094 18697   -.016769137233495712 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21277 11 3 2052 137.44000244140625 18697    .023609131574630737 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21278 11 3 2052 139.22999572753906 18697    .013023816049098969 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21279 11 3 2052 140.52999877929688 18697    .009337089955806732 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21280 11 3 2052 138.47999572753906 18697    -.01458765473216772 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21283 11 3 2052  138.7899932861328 18697    .002238572807982564 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21284 11 3 2052 140.10000610351563 18697    .009438812732696533 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21285 11 3 2052 140.10000610351563 18697                      0 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21286 11 3 2052  140.1199951171875 18697  .00014267675578594208 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21287 11 3 2052  139.5399932861328 18697   -.004139322321861982 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21290 11 3 2052 142.41000366210938 18697    .020567653700709343 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21291 11 3 2052 143.97000122070313 18697    .010954269208014011 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21292 11 3 2052 143.99000549316406 18697  .00013894750736653805 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21293 11 3 2052 142.07000732421875 18697   -.013334246352314949 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21294 11 3 2052  140.6699981689453 18697   -.009854361414909363 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21297 11 3 2052 140.66000366210938 18697 -.00007104931137291715 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21298 11 3 2052 140.27000427246094 18697  -.0027726388070732355 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21299 11 3 2052  140.4499969482422 18697    .001283187186345458 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21300 11 3 2052 140.47000122070313 18702  .00014242985344026238 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21301 11 3 2052  139.0800018310547 18702    -.00989534705877304 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21304 11 3 2052 137.41000366210938 18702   -.012007464654743671 699   3.01939331007298 -.0017100055  6.210727198484631  -.0999463  6.210727198484631  -.0999463
10026 21305 11 3 2052 132.07000732421875 18702   -.038861773908138275 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21306 11 3 2052 129.66000366210938 18702   -.018247924745082855 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21307 11 3 2052 128.82000732421875 18702   -.006478453986346722 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21308 11 3 2052  132.6999969482422 18702    .030119463801383972 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21311 11 3 2052  135.0500030517578 18702    .017709163948893547 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21312 11 3 2052              135.5 18702    .003332076594233513 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21313 11 3 2052 135.74000549316406 18702   .0017712583066895604 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21314 11 3 2052  135.8000030517578 18702  .00044200351112522185 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21315 11 3 2052  137.0800018310547 18702    .009425616823136806 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21318 11 3 2052 135.97000122070313 18702   -.008097466081380844 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21319 11 3 2052  136.7100067138672 18702    .005442417226731777 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21320 11 3 2052 138.63999938964844 18702     .01411742065101862 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21321 11 3 2052  140.3000030517578 18702    .011973482556641102 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21322 11 3 2052  140.6999969482422 18702    .002850990043953061 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21325 11 3 2052 140.85000610351563 18702    .001066163182258606 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21326 11 3 2052             137.25 18702    -.02555914781987667 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21327 11 3 2052  138.0500030517578 18702     .00582880200818181 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
10026 21328 11 3 2052 138.83999633789063 18702   .0057225157506763935 700  2.179335261288767  -.016384874 2.9770448142147945 -.05353294 5.4588365863643675 -.11469357
end
format %d date
format %tm mdate
------------------ copy up to and including the previous line ------------------

Listed 100 out of 1861397 observations
Use the count() option to list more




Thank you for help again.