ta-pattern-lib
Version:
Technical Analysis and Backtesting Framework for Node.js
17 lines (14 loc) • 581 B
text/typescript
export const linear_regression = (y: number[]): {slope:number;intercept:number} => {
const x = Array.from({length: y.length}, (_, i) => i);
const n = y.length;
const sumX = x.reduce((a, b) => a + b, 0);
const sumY = y.reduce((a, b) => a + b, 0);
const sumXY = x.reduce((sum, xi, i) => sum + xi * y[i], 0);
const sumXX = x.reduce((sum, xi) => sum + xi * xi, 0);
const slope = (n * sumXY - sumX * sumY) / (n * sumXX - sumX * sumX);
const intercept = (sumY - slope * sumX) / n;
return {
slope,
intercept,
};
}