математика — экспоненциальная скользящая средняя в переполнении стека

Я хочу вычислить значение EMA (экспоненциальное скользящее среднее) в PHP.

Я пытался с помощью следующего кода, но он дает мне 500 ошибок.

$real = array(12,15,17,19,21,25,28,12,15,16);
$timePeriod = 3;
$data = trader_ema($real,$timePeriod);
var_dump($data);

PHP: функция вычисления EMA торговец-ЕМА

Пробовал долго гуглить, но не получил никакой помощи по этому вопросу в PHP. Итак, я понятия не имею, что нужно сделать, чтобы вычислить значение EMA.

Edit-1: Установленные расширения

Я установил все необходимые расширения, теперь я получаю вывод.
Но это не дает должного результата.

Я думаю, что функция PHP для расчета EMA не работает должным образом.
Любая помощь в этом будет принята с благодарностью.

1

Решение

Я рекомендую использовать математическую библиотеку из:
https://github.com/markrogoyski/math-php

public static function exponentialMovingAverage(array $numbers, int $n): array
{
$m   = count($numbers);
$α   = 2 / ($n + 1);
$EMA = [];

// Start off by seeding with the first data point
$EMA[] = $numbers[0];

// Each day after: EMAtoday = α⋅xtoday + (1-α)EMAyesterday
for ($i = 1; $i < $m; $i++) {
$EMA[] = ($α * $numbers[$i]) + ((1 - $α) * $EMA[$i - 1]);
}

return $EMA;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]