@emelie
In TypeScript, you can calculate the Parabolic SAR by following the formula and steps below:
Formula:
Here is a TypeScript code snippet to calculate the Parabolic SAR:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
function calculateSAR(data: number[], initialSAR: number, initialAF: number, maxAF: number): number[] { const sarValues: number[] = []; let EP = 0; let SAR = initialSAR; let AF = initialAF; for (let i = 1; i < data.length; i++) { if (SAR > data[i - 1]) { EP = Math.max(EP, data[i]); if (AF < maxAF) { AF += initialAF; } } else { EP = Math.min(EP, data[i]); if (AF < maxAF) { AF += initialAF; } } const newSAR = SAR + AF * (EP - SAR); // Check if SAR should reverse if (data[i] > data[i - 1]) { if (newSAR > data[i]) { newSAR = EP; AF = initialAF; } } else { if (newSAR < data[i]) { newSAR = EP; AF = initialAF; } } sarValues.push(newSAR); SAR = newSAR; } return sarValues; } // Example usage const data = [10, 15, 20, 25, 20, 15, 10]; const initialSAR = 10; const initialAF = 0.02; const maxAF = 0.2; const sarValues = calculateSAR(data, initialSAR, initialAF, maxAF); console.log(sarValues); |
You can adjust the initialSAR, initialAF, and maxAF values based on your requirements. This code snippet calculates the Parabolic SAR values for the given data array using the provided initial values and prints them to the console.