Skip to content
13

Brownian Distance Variance

PortfolioOptimisers.BrownianDistanceVarianceFormulation Type
julia
abstract type BrownianDistanceVarianceFormulation <: AbstractAlgorithm

Abstract supertype for all Brownian Distance Variance formulation algorithms in PortfolioOptimisers.jl.

All concrete types implementing specific formulations for the Brownian Distance Variance optimisation constraint should subtype BrownianDistanceVarianceFormulation.

Related Types

source
PortfolioOptimisers.NormOneConeBrownianDistanceVariance Type
julia
struct NormOneConeBrownianDistanceVariance <: BrownianDistanceVarianceFormulation

Norm-one cone formulation for the Brownian Distance Variance optimisation constraint.

Uses a norm-one cone constraint to encode the L1 structure of the Brownian distance matrix in the optimisation model.

Related Types

source
PortfolioOptimisers.IneqBrownianDistanceVariance Type
julia
struct IneqBrownianDistanceVariance <: BrownianDistanceVarianceFormulation

Inequality formulation for the Brownian Distance Variance optimisation constraint.

Uses explicit linear inequality constraints to encode the absolute value structure of the Brownian distance matrix in the optimisation model.

Related Types

source
PortfolioOptimisers.BDVarRkFormulations Type
julia
const BDVarRkFormulations = Union{<:RSOCRiskExpr, <:QuadRiskExpr}

Union of valid optimisation formulations for the BrownianDistanceVariance risk measure.

Related

source
PortfolioOptimisers.BrownianDistanceVariance Type
julia
struct BrownianDistanceVariance{__T_settings, __T_alg1, __T_alg2} <: RiskMeasure

Represents the Brownian Distance Variance (BDVar) risk measure.

BrownianDistanceVariance measures dependence between portfolio returns and a reference using the Brownian (distance) covariance framework. It captures non-linear dependence and is zero if and only if the returns are independent of the reference.

Mathematical definition

Given a portfolio returns vector x=(x1,,xT), define the pairwise absolute distance matrix:

Dij=|xixj|.

Where:

  • Dij: Pairwise absolute distance between returns at periods i and j.

  • x: Portfolio returns vector T×1.

The Brownian Distance Variance is:

BDVar(x)=1T2(DF2+1T2(i,jDij)2).

Where:

  • BDVar(x): Brownian distance variance.

  • T: Number of observations.

  • D: T×T pairwise distance matrix.

  • F: Frobenius norm.

Fields

  • settings: Risk measure settings.

  • alg1: First algorithm variant.

  • alg2: Second algorithm variant.

Constructors

julia
BrownianDistanceVariance(;
    settings::RiskMeasureSettings = RiskMeasureSettings(),
    alg1::BDVarRkFormulations = QuadRiskExpr(),
    alg2::BrownianDistanceVarianceFormulation = NormOneConeBrownianDistanceVariance()
) -> BrownianDistanceVariance

Keywords correspond to the struct's fields.

Functor

julia
(r::BrownianDistanceVariance)(x::VecNum)

Computes the Brownian Distance Variance of a portfolio returns vector x.

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

julia
julia> BrownianDistanceVariance()
BrownianDistanceVariance
  settings ┼ RiskMeasureSettings
           │   scale ┼ Float64: 1.0
           │      ub ┼ nothing
           │     rke ┴ Bool: true
      alg1 ┼ QuadRiskExpr()
      alg2 ┴ NormOneConeBrownianDistanceVariance()

Related

source