
Originally Posted by asnavale

It is too late night now for me. Will post it tomorrow.
Anant


Originally Posted by kkseal

Is that so? Would greatly simplify the calculation I have wanted to do it more or less the same way (geometric mean of returns is what I had in mind) but would necessitate use of loop in my already slow to execute code. Idea is to ascribe a lower rank to stocks that say give small/negative returns most of the months and make biggish jumps for 12 mths.
You can use the Auro pharma values to illustrate. Be careful of curve fitting for single stock though Formula should universally subsume what author has suggested or at least serve the same purpose consistently.


Originally Posted by kkseal

100*(last mth ROC  1st mth ROC)/1st mth ROC seems like acceleration for the period Far from what is intended.

Let us look into the detailed calculation of momentum score as defined in the article quoted earlier.
Rate of Change (ROC) is expressed as a percentage. It is calculated by dividing the total cange in price by initial price and then multiplying with 100. If we denote initial price as C2 and the latest price as C1 then ROC is given by
100 * [(C1C2) / C2]. This on simplification gives
ROC = 100 * (C1/C2  C2/C2) = 100 * (C1/C2  1)
In the article referred earlier the ROC is calculated each month for the past 12 months. If we denote Close price one month back as C1, two months back as C2 and so on, the close 12 months back is C12 and 13 months back C13. Using these Close prices calculate monthly ROC using the relation given above. So, ROC 12 months back is
100 * (C12/C13 1), 11 months back it is
100 * (C11/C12  1) and so on and the ROC one month back is
100 * (C1/C2  1)
Now, for Momentum Score calculation these are the steps:
1) For each month divide ROC by 100 and add 1 to it. Thus for previous month we calculate
ROC/100 + 1 =
100*(C1/C2  1)/100 + 1 = C1/C2  1 + 1 = C1/C2
Similarly, two months back it is
C2/C3 and so on. Then 12 months back it is
C12/C13.
2) Now multiply these 12 monthly values and subtract 1 from the result and multiply the result with 100 to get the Momentum Score for last 12 months.
M_Score = [(C1/C2) * (C2/C3) * (C3/C4) * ... * (C12/C13)  1] * 100
From the above equation we see that except C1 and C13 all others appear once in numerator and once in denominator and therefore, cancel out. This gives us the simplified relation
M_Score = 100 * (C1/C13  1). This can be written as
M_Score = 100 * (C1C13)/C13. This is nothing but the ROC for the whole year(past 12 months) as defined in the beginning of this post.
Thus calculation of M_Score is a simple one step process unlike the long winding calculations given in the article.
Anant