Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Overlapping-rolling window

    Dear Statalisters,

    I am running into an issue with rolling windows and I need your kind help with this. I am trying to calculate the exponentially weighted moving average of the squared residuals (X2) ,from a regression that I ran, in a 22 overlapping-rolling window. Here are some of the variables from my data but we only care about X2 for now:

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input int Timestamp long Company float(id residual X2)
    18535 1 1  -.3732804 .13933825
    18536 1 1  -.4201257 .17650563
    18539 1 1  -.4297678 .18470033
    18540 1 1  -.4525483 .20479997
    18541 1 1 -.50208974 .25209412
    18542 1 1  -.5432706 .29514292
    18543 1 1  -.5648846  .3190946
    18546 1 1  -.5315696 .28256625
    18547 1 1  -.5799347  .3363243
    18548 1 1 -.58587825  .3432533
    18549 1 1  -.6337441  .4016315
    18550 1 1  -.6192474  .3834674
    18553 1 1  -.6366866 .40536985
    18554 1 1  -.6670792  .4449947
    18555 1 1  -.7865576  .6186729
    end
    format %tdnn/dd/CCYY Timestamp
    label values Company Company
    label def Company 1 "AAK.ST", modify

    By overlapping-rolling window I mean the first window starts at day 1 and ends at day 22. The second window starts at day 2 and ends at day 23, the third window from 3 to 24 and so on. So I already have X2 and I need to weight X2s in an exponentially declining function such that recent X2s are getting greater weights. To illustrate, we start with the most recent date which is day 22 of each window and calculate the weights as follows:

    Day 22 Weight (W22)= (1-ʎ)ʎ0 where ʎ = 0.95, and thus W22 = (1-0.95) 0.950 = 0.05.
    W21= (1-ʎ)ʎ1 = (1-0.95)*0.951 = 0.0475 or simply W21 = W22 * ʎ = 0.05*0.95 = 0.0475
    W20= (1-ʎ)ʎ2 = (1-0.95)*0.952 = 0.0451 or W20= W21*0.95= 0.0451
    W19= (1-ʎ)ʎ3 = (1-0.95)*0.953= 0.0429 or W19= W20*0.95= 0.0429 and so on until W1 .

    Now, we have a corresponding weight for each X2. Next, we generate a new variable, call it WX2, which is nothing but the product of each X2 and its own weight. The final step is to sum up variable WX2 for all 22 days, and we call this variable VOL. The square root of VOL is basically my exponentially weighted moving average, but calculating this should not be an issue.

    We repeat the process for the next 22 days, from day 2 to day 23, then the next 22 days from 3 to 24, and so on for each firm in my data since my data is panel data. Now at the end of each firm, we might now have 22 days but that it ok, we will go with whatever days left.
    It is important to note that for each firm, we will not have any observation for the first 21 days for variable VOL, as we lost them in calculating the first VOL (the first summation is from 1 to 22 so the first observation takes place in day 22).

    For simplicity, here is an example of a 10 days overlapping-rolling window:
    Click image for larger version

Name:	example.jpg
Views:	1
Size:	160.0 KB
ID:	1470390




    So the goal here is to get a time series of VOL from X2, X2 in the above example. My first window is the blue window from day 1 to day 10. I first calculate the weights for the 10 days window stating from the most recent day which is day 10 since my dates are sorted in a ascending order. Given that Lambda ʎ = 0.95, the weight for day 10 is as we mentioned esrlier
    W10 = (1-0.95) 0.950 = 0.05.
    W9 = (1-0.95)*0.951 = 0.0475
    .
    .
    W1 = (1-0.95)*0.959 = 0.031512

    Then we multiply each weight by its X2 under a new variable X2*W1. Summing this colume from X2*W1 at day 1 to X2*W1 at day 10 gives us our first VOL observation at day 10. As we can see, in order to get VOL10 we lost the first 10 observations. We do the same process to get VOL11 by taking a window from day 2 to day 11 ( brown window) and VOL12 from day 3 to day 12 ( green window). We keep doing the same process until the last possible observation for each firm. This rolling window must be done using a firm id to ensure that there is no overlapping between firms. Once I have a time series of VOL, I then take the square root it and gives me the exponentially weighted moving average of X2.

    I have used Mr. Cox's code for a non-overlapping rolling regression
    Code:
     rangestat (reg)
    I have also used Mr. Shah's code in calculating non-overlapping means
    Code:
     bys id: asrol res_sqr, window( Timestamp 22) stat(mean) gen(mean)
    but I am not sure if there is a way to make any of these codes overlapping and second how to work these codes to have it create an overlapping rolling window weights, do the multiplication of X2 and the weights (W), and finally sums up the window. Long a ago, I remember reading a suggestion by Mr. Schechter regarding modifying he rangestata command to allow for an overlapping rolling window by taking lag of the variable but I could not find the post. I have looking for it two days now but with no luck.

    This is very important to me and any help is highly appreciated

    Thank you

  • #2
    While I'm sure you could program this into a Mata function and use rangestat (from SSC), you can always fall back on rangerun (also from SSC) if you are not comfortable with Mata. Here's how to code the simplified 10-day window:

    Code:
    clear all
    input long Date float X2
     1 .45
     2 .36
     3 .78
     4 .88
     5 .74
     6 .69
     7 .54
     8 .59
     9 .47
    10 .64
    11 .74
    12 .44
    end
    
    program sumofx2w
        if _N < 10 exit
        local lambda = .95
        gen double w = (1-`lambda') * `lambda'^(10-_n)
        gen double x2w = X2 * w
        egen vol = total(x2w)
        list, sep(0)
        drop w x2w
    end
    rangerun sumofx2w, interval(Date -9 0) verbose
    
    list, sep(0)
    and the results:
    Code:
    . rangerun sumofx2w, interval(Date -9 0) verbose
      (using rangestat version 1.1.1)
    
         +----------------------------------------------------------------+
         | Date          X2   __000000           w         x2w        vol |
         |----------------------------------------------------------------|
      1. |    1   .44999999          1   .03151247   .01418061   .2465296 |
      2. |    2   .36000001          2   .03317102   .01194157   .2465296 |
      3. |    3   .77999997          3   .03491686   .02723515   .2465296 |
      4. |    4         .88          4   .03675459   .03234404   .2465296 |
      5. |    5   .74000001          5   .03868905    .0286299   .2465296 |
      6. |    6         .69          6   .04072531   .02810047   .2465296 |
      7. |    7   .54000002          7   .04286875   .02314913   .2465296 |
      8. |    8   .58999997          8     .045125   .02662375   .2465296 |
      9. |    9         .47          9       .0475     .022325   .2465296 |
     10. |   10   .63999999         10         .05        .032   .2465296 |
         +----------------------------------------------------------------+
    
         +----------------------------------------------------------------+
         | Date          X2   __000000           w         x2w        vol |
         |----------------------------------------------------------------|
      1. |    2   .36000001          2   .03151247   .01134449   .2577316 |
      2. |    3   .77999997          3   .03317102    .0258734   .2577316 |
      3. |    4         .88          4   .03491686   .03072684   .2577316 |
      4. |    5   .74000001          5   .03675459    .0271984   .2577316 |
      5. |    6         .69          6   .03868905   .02669544   .2577316 |
      6. |    7   .54000002          7   .04072531   .02199167   .2577316 |
      7. |    8   .58999997          8   .04286875   .02529256   .2577316 |
      8. |    9         .47          9     .045125   .02120875   .2577316 |
      9. |   10   .63999999         10       .0475       .0304   .2577316 |
     10. |   11   .74000001         11         .05        .037   .2577316 |
         +----------------------------------------------------------------+
    
         +----------------------------------------------------------------+
         | Date          X2   __000000           w         x2w        vol |
         |----------------------------------------------------------------|
      1. |    3   .77999997          3   .03151247   .02457973   .2560677 |
      2. |    4         .88          4   .03317102    .0291905   .2560677 |
      3. |    5   .74000001          5   .03491686   .02583848   .2560677 |
      4. |    6         .69          6   .03675459   .02536067   .2560677 |
      5. |    7   .54000002          7   .03868905   .02089209   .2560677 |
      6. |    8   .58999997          8   .04072531   .02402793   .2560677 |
      7. |    9         .47          9   .04286875   .02014831   .2560677 |
      8. |   10   .63999999         10     .045125      .02888   .2560677 |
      9. |   11   .74000001         11       .0475      .03515   .2560677 |
     10. |   12         .44         12         .05        .022   .2560677 |
         +----------------------------------------------------------------+
    
    . 
    . list, sep(0)
    
         +-----------------------+
         | Date    X2        vol |
         |-----------------------|
      1. |    1   .45          . |
      2. |    2   .36          . |
      3. |    3   .78          . |
      4. |    4   .88          . |
      5. |    5   .74          . |
      6. |    6   .69          . |
      7. |    7   .54          . |
      8. |    8   .59          . |
      9. |    9   .47          . |
     10. |   10   .64   .2465296 |
     11. |   11   .74   .2577316 |
     12. |   12   .44   .2560677 |
         +-----------------------+
    
    .

    Comment


    • #3
      I think what you want is this:
      Code:
      * Example generated by -dataex-. To install: ssc install dataex
      clear
      input int Timestamp long Company float(id residual X2)
      18535 1 1  -.3732804 .13933825
      18536 1 1  -.4201257 .17650563
      18539 1 1  -.4297678 .18470033
      18540 1 1  -.4525483 .20479997
      18541 1 1 -.50208974 .25209412
      18542 1 1  -.5432706 .29514292
      18543 1 1  -.5648846  .3190946
      18546 1 1  -.5315696 .28256625
      18547 1 1  -.5799347  .3363243
      18548 1 1 -.58587825  .3432533
      18549 1 1  -.6337441  .4016315
      18550 1 1  -.6192474  .3834674
      18553 1 1  -.6366866 .40536985
      18554 1 1  -.6670792  .4449947
      18555 1 1  -.7865576  .6186729
      end
      format %tdnn/dd/CCYY Timestamp
      label values Company Company
      label def Company 1 "AAK.ST", modify
      
      isid Company Timestamp
      
      capture program drop one_window
      program define one_window
          local lambda = 0.95
          sort Timestamp
          gen wt = (1-`lambda')*`lambda'^(Timestamp[_N] - Timestamp)
          gen VOL = sqrt(sum(wt*X2))
          drop wt
          exit
      end
      
      local window_width 21
      rangerun one_window, by(Company) interval(Timestamp -`window_width' 0)
      Notes:

      1. I assume that you want to do this by Company.
      2. Your data example includes only 16 observations, so a full 22 day window is not attainable here. I assume this is not an issue in your real data.
      3. There are gaps in the dates in your data. I'm assuming that by a 22 day window you mean a window that extends back 22 calendar days, not the last 22 dates that happen to be available in the data. Similarly, I assume that in the weight calculation, the exponent of lambda depends on the actual calendar time and not on how many dates happen to fall between in the data.
      4. I don't understand what the "id" variable is supposed to be. In the example it's just an unlabeled copy of Company.
      5. The weights produced by this formula would, if the series were extended infinitely, sum to 1. The actual sum of 22 terms will be less than 1, so this isn't, strictly speaking, a weighted average. In fact, with lambda = .95 and a total of 22 terms, the sum is only going to be around 0.67. You might want to consider scaling your results by the actual sum of the weights, especially since in some instances there will actually be fewer than 22 dates included.
      6. To use this code you need Robert Picard and Nick Cox's -rangerun- command, available from SSC.

      Added: Crossed with #2, which provides essentially the same solution. There, the calculation is not carried out when an insufficient number of dates is available, which you might want to adopt.
      Last edited by Clyde Schechter; 14 Nov 2018, 13:01.

      Comment


      • #4
        Mr. Picard,

        Thank you for your feedback. This is exactly what I need. However, when I apply the code on my data, it does nothing. When I run rangerun, w and x2w are not even generated. Here is what I did:

        Code:
        program sumofx2w
            if _N < 22 exit
            local lambda = 0.95
            gen double w = (1-`lambda') * `lambda'^(22-_n)
            gen double x2w = X2 * w
            gen vol = total(x2w)
        end
        rangerun sumofx2w, interval(Timestamp -21 0) by(id)
        I just modified the window to 22 days and since this is a panel data, I used the company group id. I even tried by(company) and the result is the same.
        I uploaded the necessary variables from my data here for an easy reference https://drive.google.com/file/d/1Vb-...rclJhNGUp/view
        Last edited by Saad Al; 15 Nov 2018, 19:00.

        Comment


        • #5
          Mr. Schechter,

          Thank you for your response.

          1. I assume that you want to do this by Company.
          2. Your data example includes only 16 observations, so a full 22 day window is not attainable here. I assume this is not an issue in your real data.
          3. There are gaps in the dates in your data. I'm assuming that by a 22 day window you mean a window that extends back 22 calendar days, not the last 22 dates that happen to be available in the data. Similarly, I assume that in the weight calculation, the exponent of lambda depends on the actual calendar time and not on how many dates happen to fall between in the data.
          4. I don't understand what the "id" variable is supposed to be. In the example it's just an unlabeled copy of Company.
          Yes indeed, I want this by company and I have over 500,000 observations.The id variable is the company group id (Panel id variable).

          5. The weights produced by this formula would, if the series were extended infinitely, sum to 1. The actual sum of 22 terms will be less than 1, so this isn't, strictly speaking, a weighted average. In fact, with lambda = .95 and a total of 22 terms, the sum is only going to be around 0.67. You might want to consider scaling your results by the actual sum of the weights, especially since in some instances there will actually be fewer than 22 dates included.
          You are absolutely right and this is one of the weaknesses of the EWMA. I am considering scaling as an option.

          When I run the following code, however, the weights are the same for all days (equally weighted)

          Code:
          capture program drop one_window
          program define one_window
              local lambda = 0.95
              sort Timestamp
              gen wt = (1-`lambda')*`lambda'^(Timestamp[_N] - Timestamp)
              gen VOL = sqrt(sum(wt*X2))
              exit
          end
          
          local window_width 21
          rangerun one_window, by(id) interval(Timestamp -21 0)
          and I get:

          Code:
          * Example generated by -dataex-. To install: ssc install dataex
          clear
          input int Timestamp float(X2 wt VOL)
          18535  .3217053 .05  .1268277
          18536  .3654409 .05  .1831749
          18539  .3747886 .05 .21796095
          18540  .3973429 .05  .2549486
          18541  .4486669 .05 .29014164
          18542 .49370155 .05  .3235091
          18543  .5181999 .05  .3540272
          18546 .48068655 .05  .3626205
          18547  .5356088 .05   .389486
          18548   .542563 .05  .4138147
          18549  .6002039 .05  .4389654
          18550 .58243966 .05  .4606279
          18553  .6038423 .05  .4605522
          18554  .6420652 .05  .4833282
          18555  .8036947 .05 .51196736
          18556  .8344311 .05  .5391907
          18557  .9714003 .05   .565293
          18560  .9984785 .05 .56441844
          18561  .9764082 .05 .58770514
          18562 1.0039765 .05  .6098349
          18563 1.0418104 .05  .6309804
          18564 1.0439839 .05  .6499555
          18567 1.0971419 .05  .6399086
          18568 1.0923134 .05  .6601883
          18569 1.1796507 .05  .6814502
          18570 1.1693441 .05   .700604
          18571 1.2304392 .05   .719803
          18574 1.1959616 .05  .7039281
          18575  1.237189 .05  .7230701
          18576 1.2232027 .05  .7399071
          18577 1.2155747 .05  .7535695
          18578 1.2263378 .05  .7663499
          18581 1.2342112 .05   .742333
          18582  1.294704 .05  .7563653
          18583 1.2038974 .05  .7667359
          18584 1.1694541 .05  .7750622
          18585 1.2007746 .05  .7834992
          18588  1.447778 .05  .7638488
          18589 1.2446958 .05  .7738078
          18590  1.230643 .05  .7827526
          18591 1.2532443 .05  .7909778
          18592 1.3009076 .05   .800308
          18595 1.3335874 .05   .773213
          18596  1.316043 .05    .78385
          18597 1.3111017 .05  .7932473
          18598 1.4877375 .05  .8076996
          18599  1.503293 .05  .8217424
          18602  1.572747 .05  .7998031
          18603  1.502248 .05  .8141546
          18604 1.5688803 .05  .8289785
          18605 1.5881116 .05  .8442603
          18606 1.5491667 .05  .8577163
          18609 1.5462682 .05  .8309838
          18610 1.5905836 .05  .8438698
          18611 1.6877848 .05  .8606768
          18612 1.6947764 .05  .8766741
          18613  1.690689 .05   .891286
          18616   1.68666 .05  .8639625
          18617 1.6625422 .05  .8778746
          18618  1.695138 .05  .8919632
          18619 1.6951476 .05  .9051886
          18623 1.7685348 .05  .8445262
          18624 1.8226414 .05  .8621215
          18625  1.809175 .05  .8787766
          18626 1.7631077 .05  .8924191
          18630 1.7988936 .05  .8330569
          18631  1.846762 .05  .8524138
          18632  1.854256 .05  .8702076
          18634 2.0822334 .05  .8568468
          18637 2.0321724 .05  .8404753
          18638 2.0470855 .05  .8637989
          18639 2.1021109 .05  .8871596
          18640 2.0717654 .05  .9076707
          18641 2.1922271 .05  .9299797
          18644 2.1692543 .05  .9219404
          18645  2.164691 .05  .9418603
          18646  2.432661 .05  .9668995
          18647  2.422008 .05  .9899413
          18648  2.362227 .05  1.010235
          18651 2.3761337 .05  .9969062
          18652 2.3599153 .05 1.0163791
          18653  2.406487 .05 1.0352899
          18654  2.549075 .05 1.0562631
          18655  2.565058 .05 1.0900276
          18658 2.6361704 .05 1.0583515
          18659  2.624465 .05 1.0781707
          18660  2.669705 .05 1.0975881
          18661  2.830139 .05  1.118913
          18662  3.059489 .05 1.1440402
          18665 2.8852556 .05 1.1110419
          18666  2.911718 .05 1.1327789
          18667 2.8827946 .05 1.1524543
          18668 2.9809904 .05 1.1710851
          18669   2.91775 .05 1.1872555
          18672 3.1856656 .05 1.1546996
          18673  3.086639 .05 1.1758225
          18674 3.0896604 .05 1.1957165
          18675  3.186242 .05  1.215991
          18676  3.110872 .05 1.2324815
          18679 3.1775134 .05 1.1932262
          end
          format %tdnn/dd/CCYY Timestamp
          I also notice that for the very first observation
          Code:
           nput int Timestamp float(X2 wt VOL)
                      18535  .3217053 .05  .1268277
          the VOL was calculated as (0.05* 0.3217053)^0.5= 0.1268277 where (wt1)= (1-ʎ)ʎ0 = (1-0.95) 0.950 = 0.05. If I am understanding this right, then what this code does:
          Code:
          gen VOL = sqrt(sum(wt*X2))
          is that it takes every observation, multiplies wt by X2 then takes the square root of that observation and that is not what we want. The square root should be be taken after we sum all of the 22 window of wt*X2.

          Also, wt for the first observation should be(1-ʎ)ʎ21while wt for the observation 22 should be (1-ʎ)ʎ0

          Finally, we should not observe any VOL in the first 21 days of each company because VOL at day 22 is basically the sum of wt*X2 from day 1 to 22, then we take the square root of that number.
          Once we have our first VOL, we calculate VOL for dat 23 by doing the same process but for window 2 to 23, and so on.

          If you wish to take a look at the actual data, you can access it from here https://drive.google.com/file/d/1Vb-...rclJhNGUp/view
          Thank you again and looking forward to hearing from you soon.
          Last edited by Saad Al; 15 Nov 2018, 20:08.

          Comment


          • #6
            You are not understanding the way the code I showed work. The variable wt that ends up in the final results is always just 1-lambda. But that is not what happened during the calculations. The way -runby- works, all observations satisfying the -by()- and -interval()- conditions for a given observation are loaded into memory. Then program one_window gets called. Within one_window, you can see that the variable wt is created and that it follows your formula exactly: each observation in the window gets a different weight. The last observation in memory is the index date which, by your formula, has wt 1-lambda (= 0.05). Then the weighted means are calculated. Now at this point, for each original observation in the original data, you have up to 22 observations (those with the same firm_id and with dates within 22 days). But you don't want to keep all those observations. You are just interested in the final weighted mean. -rangerun- automatically keeps only the last observation, which, in this context, happens to be the one with wt = 0.05, and also happens to be the one with the correct value of the weighted mean. And it is only this last observation that gets saved in the results data set. Once each of the -by()- groups has been processed, the results set (which consists of the final observation produced by one_window in each by-group) is brought into memory. What I really should have done is just -drop wt-, since at this point, -wt- is a meaningless variable. I know this is a little hard to follow, and I'm sorry I left wt in there, because what you see is misleading you. But the weights are in fact calculated and applied according to your formula, they are just discarded before the results are shown.

            Finally, we should not observe any VOL in the first 21 days of each company because VOL at day 22 is basically the sum of wt*X2 from day 1 to 22, then we take the square root of that number.
            For the first 21 days, what you see is the weighted mean from as many days as there are up to that point. If you don't want those, you can just clobber them with missing values after the fact. I should also point out that due to the gaps in your dates, none of these calculations involve 22 observations: they involve all observations within 22 days, but there are never 22 of those. So maybe you need to think about some minimum number of included days--but don't pick 22 because you will never have any results at all. Then it is easy to modify program one_window to only perform the calculations when there are that many to work with. In fact, Robert Picard's version of the code does precisely that (with a minimum of 10 dates).



            Comment


            • #7
              Mr. Schechter,

              Thank you for the clarification. I see now what is going there and it makes perfect sense.

              If you don't want those, you can just clobber them with missing values after the fact.
              How would I do that? how would I drop the first 21 VOL observations from each company?

              I should also point out that due to the gaps in your dates, none of these calculations involve 22 observations: they involve all observations within 22 days, but there are never 22 of those.
              Please note that for this particular data set, there are no gaps, but I might run into this issue once I add more data to the existing.

              Thank you for your continued support.

              Comment


              • #8
                How would I do that? how would I drop the first 21 VOL observations from each company?
                Code:
                by id (Timestamp), sort: replace VOL = . if Timestamp < Timestamp[1] + 22

                Comment


                • #9
                  Works like a charm. Thank you Mr. Schechter.

                  Code:
                  * Example generated by -dataex-. To install: ssc install dataex
                  clear
                  input int Timestamp float(VOL time)
                  18535         .   1
                  18536         .   2
                  18539         .   3
                  18540         .   4
                  18541         .   5
                  18542         .   6
                  18543         .   7
                  18546         .   8
                  18547         .   9
                  18548         .  10
                  18549         .  11
                  18550         .  12
                  18553         .  13
                  18554         .  14
                  18555         .  15
                  18556         .  16
                  18557         .  17
                  18560         .  18
                  18561         .  19
                  18562         .  20
                  18563         .  21
                  18564  .6499555  22
                  18567  .6399086  23
                  18568  .6601883  24
                  18569  .6814502  25
                  18570   .700604  26
                  18571   .719803  27
                  18574  .7039281  28
                  18575  .7230701  29
                  18576  .7399071  30
                  18577  .7535695  31
                  18578  .7663499  32
                  18581   .742333  33
                  18582  .7563653  34
                  18583  .7667359  35
                  18584  .7750622  36
                  18585  .7834992  37
                  18588  .7638488  38
                  18589  .7738078  39
                  18590  .7827526  40
                  18591  .7909778  41
                  18592   .800308  42
                  18595   .773213  43
                  18596    .78385  44
                  18597  .7932473  45
                  18598  .8076996  46
                  18599  .8217424  47
                  18602  .7998031  48
                  18603  .8141546  49
                  18604  .8289785  50
                  18605  .8442603  51
                  18606  .8577163  52
                  18609  .8309838  53
                  18610  .8438698  54
                  18611  .8606768  55
                  18612  .8766741  56
                  18613   .891286  57
                  18616  .8639625  58
                  18617  .8778746  59
                  18618  .8919632  60
                  18619  .9051886  61
                  18623  .8445262  62
                  18624  .8621215  63
                  18625  .8787766  64
                  18626  .8924191  65
                  18630  .8330569  66
                  18631  .8524138  67
                  18632  .8702076  68
                  18634  .8568468  69
                  18637  .8404753  70
                  18638  .8637989  71
                  18639  .8871596  72
                  18640  .9076707  73
                  18641  .9299797  74
                  18644  .9219404  75
                  18645  .9418603  76
                  18646  .9668995  77
                  18647  .9899413  78
                  18648  1.010235  79
                  18651  .9969062  80
                  18652 1.0163791  81
                  18653 1.0352899  82
                  18654 1.0562631  83
                  18655 1.0900276  84
                  18658 1.0583515  85
                  18659 1.0781707  86
                  18660 1.0975881  87
                  18661  1.118913  88
                  18662 1.1440402  89
                  18665 1.1110419  90
                  18666 1.1327789  91
                  18667 1.1524543  92
                  18668 1.1710851  93
                  18669 1.1872555  94
                  18672 1.1546996  95
                  18673 1.1758225  96
                  18674 1.1957165  97
                  18675  1.215991  98
                  18676 1.2324815  99
                  18679 1.1932262 100
                  end
                  format %tdnn/dd/CCYY Timestamp
                  P.S. I created a time index for illustration purposes only.

                  Comment

                  Working...
                  X