public function portfolioVaR() { $corr = $this->portfolioCorrelations(); $VaR = $this->stockVaR(); $matrix = new Finance_Matrix($VaR, $corr); $mult1 = $matrix->multiplicationMatrix($VaR, $corr); $matrix = new Finance_Matrix($VaR); $VaRt = $matrix->transpose($VaR); $matrix = new Finance_Matrix($mult1, $VaRt); $mult2 = $matrix->multiplicationMatrix($mult1, $VaRt); $portCorr = sqrt($mult2[0]); return $portCorr; }
private function _midPorfolio($portReturns) { $this->_createFile($portReturns); list($x, $obj) = $this->_callOctave(); $count = count($obj); for ($i = 0; $i < $count; $i++) { $weights = $x[$i]; $stdDev[$i] = sqrt(2 * $obj[$i]); $ret = new Finance_Matrix($this->_expReturns); $returns = $ret->transpose($this->_expReturns); $ret = new Finance_Matrix($weights, $returns); $retu = $ret->multiplicationMatrix($weights, $returns); $Ret[$i] = $retu[0]; } return array($x, $stdDev, $Ret); }