Class BlackLitterman

java.lang.Object
com.quantfinlib.optimization.BlackLitterman

public final class BlackLitterman extends Object
Black-Litterman expected returns: start from the market-implied equilibrium (reverse optimization of the market portfolio) and blend in investor views with explicit confidences — the standard cure for mean-variance optimizers' hypersensitivity to raw return estimates.

Posterior: μ = [(τΣ)⁻¹ + PᵀΩ⁻¹P]⁻¹ [(τΣ)⁻¹Π + PᵀΩ⁻¹Q] with pick matrix P (one row per view), view returns Q, and diagonal view variances Ω (smaller = more confident).

  • Method Summary

    Modifier and Type
    Method
    Description
    static double[]
    impliedEquilibriumReturns(double riskAversion, double[][] covariance, double[] marketWeights)
    Equilibrium (implied) returns from the market portfolio: Π = δ Σ w_mkt.
    static double[]
    posteriorReturns(double tau, double[][] covariance, double[] equilibriumReturns, double[][] p, double[] q, double[] omegaDiag)
    Posterior expected returns blending equilibrium and views.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • impliedEquilibriumReturns

      public static double[] impliedEquilibriumReturns(double riskAversion, double[][] covariance, double[] marketWeights)
      Equilibrium (implied) returns from the market portfolio: Π = δ Σ w_mkt.
    • posteriorReturns

      public static double[] posteriorReturns(double tau, double[][] covariance, double[] equilibriumReturns, double[][] p, double[] q, double[] omegaDiag)
      Posterior expected returns blending equilibrium and views.
      Parameters:
      tau - uncertainty scaling of the prior (typically 0.01–0.05)
      p - pick matrix [views][assets]; empty = no views
      q - expected return of each view
      omegaDiag - variance (uncertainty) of each view