@caesar_kertzmann
To compute Williams %R in JavaScript, you can use the following code snippet. Williams %R is a momentum indicator that measures overbought or oversold levels of an asset.
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 |
function williamsR(highs, lows, closes, period) { let williamsRValues = []; for (let i = period - 1; i < highs.length; i++) { let highestHigh = Math.max(...highs.slice(i - period + 1, i + 1)); let lowestLow = Math.min(...lows.slice(i - period + 1, i + 1)); let currentClose = closes[i]; let williamsR = ((highestHigh - currentClose) / (highestHigh - lowestLow)) * -100; williamsRValues.push(williamsR); } return williamsRValues; } // Example usage let highs = [25, 30, 35, 40, 45]; let lows = [20, 25, 30, 35, 40]; let closes = [22, 28, 33, 38, 43]; let period = 5; let williamsRValues = williamsR(highs, lows, closes, period); console.log(williamsRValues); |
You can input the high, low, and close prices of the asset in arrays, specify the period for calculation, and then call the williamsR
function to get the Williams %R values for the given data.