Beispiel #1
0
 public double calculatePortfolioVariance(final FinancePortfolio weightsPortfolio) {
   final List<BigDecimal> tmpWeights = weightsPortfolio.getWeights();
   final BasicMatrix tmpAssetWeights = MATRIX_FACTORY.columns(tmpWeights);
   return new MarketEquilibrium(this.getCovariances())
       .calculatePortfolioVariance(tmpAssetWeights)
       .doubleValue();
 }
Beispiel #2
0
 public double calculatePortfolioReturn(final FinancePortfolio weightsPortfolio) {
   final List<BigDecimal> tmpWeights = weightsPortfolio.getWeights();
   final BasicMatrix tmpAssetWeights = MATRIX_FACTORY.columns(tmpWeights);
   final BasicMatrix tmpAssetReturns = this.getAssetReturns();
   return MarketEquilibrium.calculatePortfolioReturn(tmpAssetWeights, tmpAssetReturns)
       .doubleValue();
 }
Beispiel #3
0
  public SimplePortfolio(final Context aContext, final FinancePortfolio weightsPortfolio) {

    super();

    myCorrelations = aContext.getCorrelations();

    final BasicMatrix tmpCovariances = aContext.getCovariances();
    final BasicMatrix tmpAssetReturns = aContext.getAssetReturns();

    final List<BigDecimal> tmpWeights = weightsPortfolio.getWeights();

    if ((tmpWeights.size() != myCorrelations.countRows())
        || (tmpWeights.size() != myCorrelations.countColumns())) {
      throw new IllegalArgumentException("Input dimensions don't match!");
    }

    myComponents = new ArrayList<SimpleAsset>(tmpWeights.size());
    for (int i = 0; i < tmpWeights.size(); i++) {
      final double tmpMeanReturn = tmpAssetReturns.doubleValue(i, 0);
      final double tmpVolatilty = Math.sqrt(tmpCovariances.doubleValue(i, i));
      final BigDecimal tmpWeight = tmpWeights.get(i);
      myComponents.add(new SimpleAsset(tmpMeanReturn, tmpVolatilty, tmpWeight));
    }
  }