php中的指数移动平均
我想用PHP计算EMA(指数移动平均)值 我尝试了以下代码,但它给了我500个错误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:已安装的扩展 我已经安装了所有必要的扩展,现在
$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;
}