UNPKG

ta-pattern-lib

Version:

Technical Analysis and Backtesting Framework for Node.js

17 lines (14 loc) 581 B
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, }; }