2016-09-12 4 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 : EMA 계산 기능 trader-ema

오랜 시간 인터넷 검색을하지만, PHP이에 어떤 도움을받지 함께했습니다. 따라서 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; 
}