Я хочу вычислить значение 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 не работает должным образом.
Любая помощь в этом будет принята с благодарностью.
Я рекомендую использовать математическую библиотеку из:
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;
}
Других решений пока нет …