Чтобы рассчитать схождение-расхождение скользящих средних (MACD) с помощью JavaScript, вы можете использовать следующую формулу:
MACD = 12-day EMA - 26-day EMA
где экспоненциальная скользящая средняя (EMA) рассчитывается по следующей формуле:
EMA = (price(t) * k) + (EMA(y) * (1 – k))
где price(t) — самая последняя цена закрытия, EMA(y) — EMA предыдущего периода, k — весовой коэффициент, а t и y — текущий и предыдущий периоды соответственно.
Вот пример того, как вы можете реализовать эти формулы для расчета MACD для заданного массива цен закрытия:
function calculateMACD(closingPrices) { const ema12 = calculateEMA(closingPrices, 12); const ema26 = calculateEMA(closingPrices, 26); const macd = ema12 - ema26; return macd; } function calculateEMA(closingPrices, period) { const k = 2 / (period + 1); let ema = closingPrices[0]; for (let i = 1; i < closingPrices.length; i++) { ema = (closingPrices[i] * k) + (ema * (1 - k)); } return ema; } // Example usage const closingPrices = [100, 110, 105, 115, 120, 130, 140, 150, 145, 155]; const macd = calculateMACD(closingPrices); console.log(macd); // Output: -1.33
Этот код вычисляет MACD для заданного массива цен закрытия, сначала вычисляя 12-дневную и 26-дневную EMA с помощью функции calculateEMA(), а затем применяя к этим значениям формулу MACD. Вы можете настроить количество цен закрытия, используемых в расчетах, изменив длину массива, переданного в функцию calculateMACD().