我想用 PHP 计算 EMA(指数移动平均线)值。
我试过以下代码,但它给了我 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 计算函数 trader-ema
尝试了很长时间的谷歌搜索,但在 PHP 中没有得到任何帮助。所以,我不知道需要做什么来计算 EMA 值。
Edit-1:安装的扩展
我已经安装了所有必要的扩展,现在我正在获取输出。 但它似乎没有提供正确的输出。
我认为用于计算 EMA 的 PHP 函数无法正常工作。 在这方面的任何帮助将不胜感激。
最佳答案
我推荐使用以下数学库: 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;
}
关于php - php 中的指数移动平均线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39444699/