org.ojalgo.finance.portfolio
Class MarketEquilibrium

java.lang.Object
  extended by org.ojalgo.finance.portfolio.MarketEquilibrium

public class MarketEquilibrium
extends Object

MarketEquilibrium translates between the market portfolio weights and the equilibrium excess returns. The only things needed to do those translations are the covariance matrix and the risk aversion factor - that's what you need to supply when you instantiate this class.

Author:
apete
See Also:
calculateReturns(BasicMatrix), calculateWeights(BasicMatrix)

Constructor Summary
MarketEquilibrium(BasicMatrix aCovariances, BigDecimal aRiskAversion)
           
MarketEquilibrium(String[] someInstrumentNames, BasicMatrix aCovariances, BigDecimal aRiskAversion)
           
 
Method Summary
static BigDecimal calculatePortfolioReturn(BasicMatrix aWeightsVctr, BasicMatrix aReturnsVctr)
          Calculates the portfolio return using the input portfolio weights and returns.
 BigDecimal calculatePortfolioVariance(BasicMatrix aWeightsVctr)
          Calculates the portfolio variance using the input portfolio weights.
 BasicMatrix calculateReturns(BasicMatrix aWeightsVctr)
          If the input vector of portfolio weights are the market portfolio weights then the ouput is the equilibrium excess returns.
 BasicMatrix calculateWeights(BasicMatrix aReturnsVctr)
          If the input vector of returns are the equilibrium excess returns then the output is the market portfolio weights.
 MarketEquilibrium copy()
           
 BasicMatrix getCovariances()
           
 BigDecimal getImpliedRiskAversion(BasicMatrix aWeightsVctr, BasicMatrix aReturnsVctr)
          Will calculate the risk aversion factor that is the best fit for an observed pair of market portfolio weights and equilibrium/historical excess returns.
 BigDecimal getRiskAversion()
           
 String[] getSymbols()
           
 void setRiskAversion(BasicMatrix aWeightsVctr, BasicMatrix aReturnsVctr)
          Will set the risk aversion factor to the best fit for an observed pair of market portfolio weights and equilibrium/historical excess returns.
 void setRiskAversion(BigDecimal aFactor)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MarketEquilibrium

public MarketEquilibrium(BasicMatrix aCovariances,
                         BigDecimal aRiskAversion)

MarketEquilibrium

public MarketEquilibrium(String[] someInstrumentNames,
                         BasicMatrix aCovariances,
                         BigDecimal aRiskAversion)
Method Detail

calculatePortfolioReturn

public static BigDecimal calculatePortfolioReturn(BasicMatrix aWeightsVctr,
                                                  BasicMatrix aReturnsVctr)
Calculates the portfolio return using the input portfolio weights and returns.


calculatePortfolioVariance

public BigDecimal calculatePortfolioVariance(BasicMatrix aWeightsVctr)
Calculates the portfolio variance using the input portfolio weights.


calculateReturns

public BasicMatrix calculateReturns(BasicMatrix aWeightsVctr)
If the input vector of portfolio weights are the market portfolio weights then the ouput is the equilibrium excess returns.


calculateWeights

public BasicMatrix calculateWeights(BasicMatrix aReturnsVctr)
If the input vector of returns are the equilibrium excess returns then the output is the market portfolio weights. This is unconstrained optimisation - there are no constraints on the resulting instrument weights.


copy

public MarketEquilibrium copy()

getCovariances

public BasicMatrix getCovariances()

getImpliedRiskAversion

public BigDecimal getImpliedRiskAversion(BasicMatrix aWeightsVctr,
                                         BasicMatrix aReturnsVctr)
Will calculate the risk aversion factor that is the best fit for an observed pair of market portfolio weights and equilibrium/historical excess returns.


getRiskAversion

public BigDecimal getRiskAversion()

getSymbols

public String[] getSymbols()

setRiskAversion

public void setRiskAversion(BasicMatrix aWeightsVctr,
                            BasicMatrix aReturnsVctr)
Will set the risk aversion factor to the best fit for an observed pair of market portfolio weights and equilibrium/historical excess returns.


setRiskAversion

public void setRiskAversion(BigDecimal aFactor)