Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的指数移动平均_Php_Math_Exponential_Weighted Average - Fatal编程技术网

php中的指数移动平均

php中的指数移动平均,php,math,exponential,weighted-average,Php,Math,Exponential,Weighted Average,我想用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计算函数 尝试了很长时间的谷歌搜索,但在PHP中没有得到任何帮助。所以,我不知道需要做什么来计算EMA值 编辑-1:已安装的扩展 我已经安装了所有必要的扩展,现在

我想用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计算函数

尝试了很长时间的谷歌搜索,但在PHP中没有得到任何帮助。所以,我不知道需要做什么来计算EMA值

编辑-1:已安装的扩展

我已经安装了所有必要的扩展,现在我得到了输出。 但它似乎没有给出适当的输出

我认为用于计算EMA的PHP函数工作不正常。
在此方面的任何帮助都将不胜感激。

我建议从以下位置使用数学库:

公共静态函数指数移动平均值(数组$numbers,int$n):数组
{
$m=计数($number);
$a=2/($n+1);
$EMA=[];
//首先,使用第一个数据点设定种子
$EMA[]=$number[0];
//每天之后:今天=α⋅xtoday+(1-α)EmaDay
对于($i=1;$i<$m;$i++){
$EMA[]=($a*$number[$i])+((1-$a)*$EMA[$i-1]);
}
返回$EMA;
}

500是一个通用错误代码。检查日志以获取准确的错误消息,并更新问题。可能是没有安装trader扩展:在
$array
上有什么?@PatrickMlr:我编辑了我的问题,这是错误的。谢谢你的否决票,你能证明吗?@Loading。。你删除我的答案了吗?
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;
}