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:
calculateAssetReturns(BasicMatrix), calculateAssetWeights(BasicMatrix)

Constructor Summary
MarketEquilibrium(BasicMatrix aCovarianceMatrix)
           
MarketEquilibrium(BasicMatrix aCovarianceMatrix, Number aRiskAversionFactor)
           
MarketEquilibrium(String[] assetNamesOrKeys, BasicMatrix aCovarianceMatrix)
           
MarketEquilibrium(String[] assetNamesOrKeys, BasicMatrix aCovarianceMatrix, Number aRiskAversionFactor)
           
 
Method Summary
 BasicMatrix calculateAssetReturns(BasicMatrix aWeightsVctr)
          If the input vector of asset weights are the weights of the market portfolio, then the ouput is the equilibrium excess returns.
 BasicMatrix calculateAssetWeights(BasicMatrix aReturnsVctr)
          If the input vector of returns are the equilibrium excess returns then the output is the market portfolio weights.
static Scalar<?> calculatePortfolioReturn(BasicMatrix aWeightsVctr, BasicMatrix aReturnsVctr)
          Calculates the portfolio return using the input instrument weights and returns.
 Scalar<?> calculatePortfolioVariance(BasicMatrix aWeightsVctr)
          Calculates the portfolio variance using the input instrument weights.
 void calibrate(BasicMatrix aWeightsVctr, BasicMatrix aReturnsVctr)
          Will set the risk aversion factor to the best fit for an observed pair of market portfolio asset weights and equilibrium/historical excess returns.
 MarketEquilibrium copy()
           
 BasicMatrix getCovariances()
           
 Scalar<?> 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.
 Scalar<?> getRiskAversion()
           
 String[] getSymbols()
           
 void setRiskAversion(Number aFactor)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MarketEquilibrium

public MarketEquilibrium(BasicMatrix aCovarianceMatrix)

MarketEquilibrium

public MarketEquilibrium(BasicMatrix aCovarianceMatrix,
                         Number aRiskAversionFactor)

MarketEquilibrium

public MarketEquilibrium(String[] assetNamesOrKeys,
                         BasicMatrix aCovarianceMatrix)

MarketEquilibrium

public MarketEquilibrium(String[] assetNamesOrKeys,
                         BasicMatrix aCovarianceMatrix,
                         Number aRiskAversionFactor)
Method Detail

calculatePortfolioReturn

public static Scalar<?> calculatePortfolioReturn(BasicMatrix aWeightsVctr,
                                                 BasicMatrix aReturnsVctr)
Calculates the portfolio return using the input instrument weights and returns.


calculateAssetReturns

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


calculateAssetWeights

public BasicMatrix calculateAssetWeights(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.


calculatePortfolioVariance

public Scalar<?> calculatePortfolioVariance(BasicMatrix aWeightsVctr)
Calculates the portfolio variance using the input instrument weights.


calibrate

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


copy

public MarketEquilibrium copy()

getCovariances

public BasicMatrix getCovariances()

getImpliedRiskAversion

public Scalar<?> 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 Scalar<?> getRiskAversion()

getSymbols

public String[] getSymbols()

setRiskAversion

public void setRiskAversion(Number aFactor)