2016-09-12 21 views
1

PHPで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:PHPでこの上の任意のヘルプをグーグルではなく、長い時間を試してみましたEMAの計算機能trader-ema

。だから、私はEMAの価値を計算するために何をする必要があるか分からない。

編集-1:私は必要なすべての機能拡張をインストールしたインストール済みの拡張機能

は、今、私は出力を取得しています。 しかし、それは適切な出力を与えていないようです。

私はEMAを計算するためのPHP関数が正しく動作していないと思います。 これに関するお手伝いがあれば幸いです。私はから数学ライブラリを使用することをお勧めします

+3

500は、一般的なエラーコードです。正確なエラーメッセージのログを確認し、質問を更新してください。トレーダーエクステンションがインストールされていない場合があります:http://php.net/manual/en/trader.installation.php –

+0

'$ array'には何がありますか? –

+0

@PatrickMlr:私は自分の質問を編集しました。間違いでした。 –

答えて

0

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; 
}