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); }
<?php /*include("Finance/lp_maker.php"); include("Finance/lp_solve.php"); require_once('Finance/Matrix.php'); require_once('Finance/Optimization.php'); $returns = array(array(1,2,3,4,5), array(2,4,5,7,8)); $weights = array(0.6, 0.4); $opt = new Finance_Optimize($weights, $returns, 0.12); $fun = $opt->optimizationFunction(); */ ?> <?php require_once "Finance/apiOctave.php"; $cov = array(array(1, 2), array(2, 3)); $ret = array(0.3, 0.44); $mat = new Finance_Matrix($ret, $cov); $f = $mat->multiplicationMatrix($ret, $cov); $teste = new Finance_apiOctave(1, $cov, $ret); $tst = $teste->efficientFrontier();