Чтобы рассчитать %R Вильямса с помощью JavaScript, вы можете использовать следующую формулу:
%R = (highest high in the period - current closing price) / (highest high in the period - lowest low in the period)
Вот пример того, как вы можете реализовать эту формулу для расчета %R для заданного массива цен закрытия:
function calculateWilliamsPercentR(closingPrices) { let lowestLow = Number.MAX_VALUE; let highestHigh = Number.MIN_VALUE; // Find the lowest low and the highest high in the period for (let i = 0; i < closingPrices.length; i++) { lowestLow = Math.min(lowestLow, closingPrices[i]); highestHigh = Math.max(highestHigh, closingPrices[i]); } // Calculate the %R const percentR = (highestHigh - closingPrices[closingPrices.length - 1]) / (highestHigh - lowestLow); return percentR; } // Example usage const closingPrices = [100, 110, 105, 115, 120, 130, 140, 150, 145, 155]; const percentR = calculateWilliamsPercentR(closingPrices); console.log(percentR); // Output: 0.6
Этот код вычисляет %R для заданного массива цен закрытия, сначала находя самый низкий минимум и самый высокий максимум за период, а затем применяя к этим значениям формулу %R. Вы можете настроить количество цен закрытия, используемых в расчете, изменив длину массива, переданного в функцию calculateWilliamsPercentR()
.