skfolio.moments.RegimeAdjustmentTarget#

class skfolio.moments.RegimeAdjustmentTarget(*values)[source]#

Target dimension used to calibrate the short-term volatility update (STVU).

Determines what statistic is computed to detect volatility regime changes.

The STVU uses a statistic \(d^2\) that measures the discrepancy between predicted and realized risk. The target determines which aspect of the covariance matrix is calibrated.

Target

Formula

What it calibrates

PORTFOLIO

\(d^2 = n \cdot (w^T r)^2 / (w^T \Sigma w)\)

Portfolio variance along a single aggregated direction

DIAGONAL

\(d^2 = \sum_i (r_i / \sigma_i)^2\)

Individual asset volatilities across the universe (ignores correlations)

MAHALANOBIS

\(d^2 = r^T \Sigma^{-1} r\)

Full covariance structure (all eigenvalue directions)

Note

PORTFOLIO (the default) calibrates the covariance along economically relevant directions. MAHALANOBIS weights all eigenvector directions equally, including the smallest-eigenvalue directions whose estimates are typically the least stable. In practice this can make the regime multiplier sensitive to returns along poorly estimated directions that carry little portfolio relevance.

References

[1]

“The Elements of Quantitative Investing”, Wiley Finance, Giuseppe Paleologo (2025).

classmethod has(value)#

Check if a value is in the Enum.

Parameters:
valuestr

Input value.

Returns:
xbool

True if the value is in the Enum, False otherwise.