Super newbie here and as per this thread am working on developing the code to back test a momentum strategy. I believe I was able to track down the code the author used on this page. Based on my rudimentary analysis of this code, I believe it will get me to an adjusted slope which is essentially an annualized exponential slope number * r-squared. Have I read that right?

P.S. There will be errors in here as I have not defined the periods.

```//Determine the Adjusted Slope for each stock in the defined universe which is the exponential slope * R-squared for each stock in the defined universe. public double GetSlope() { double n = this.periods -1; double x, y; double[] xVals; double[] yVals; xVals = new double[this.periods]; yVals = new double[this.periods]; for (int i = 0; i < this.periods ; i++) { x = ((int)n- i); y = Math.Log(inputs.LookBack(i)); xVals = x; yVals = y; } double rsquared, yintercept, slope; LinearRegression(xVals,yVals,0,this.periods - 1,out rsquared, out yintercept,out slope); double annualSlope; double dayCount = 250; annualSlope = ((Math.Pow(Math.Exp(slope), dayCount))-1) *100; // Annualized percentage // annualSlope = annualSlope *rsquared; return annualSlope; } public static void LinearRegression(double[] xVals, double[] yVals, int inclusiveStart, int exclusiveEnd, out double rsquared, out double yintercept, out double slope) { double sumOfX = 0; double sumOfY = 0; double sumOfXSq = 0; double sumOfYSq = 0; double ssX = 0; double ssY = 0; double sumCodeviates = 0; double sCo = 0; double count = exclusiveEnd - inclusiveStart; for (int ctr = inclusiveStart; ctr < exclusiveEnd; ctr++) { double x = xVals[ctr]; double y = yVals[ctr]; sumCodeviates += x * y; sumOfX += x; sumOfY += y; sumOfXSq += x * x; sumOfYSq += y * y; } ssX = sumOfXSq - ((sumOfX * sumOfX) / count); ssY = sumOfYSq - ((sumOfY * sumOfY) / count); double RNumerator = (count * sumCodeviates) - (sumOfX * sumOfY); double RDenom = (count * sumOfXSq - (sumOfX * sumOfX)) * (count * sumOfYSq - (sumOfY * sumOfY)); sCo = sumCodeviates - ((sumOfX * sumOfY) / count); double meanX = sumOfX / count; double meanY = sumOfY / count; double dblR = RNumerator / Math.Sqrt(RDenom); rsquared = dblR * dblR; yintercept = meanY - ((sCo / ssX) * meanX); slope = sCo / ssX; }```