pyvallocation.utils.functions module

Portfolio Value-at-Risk (VaR) and Conditional VaR (CVaR) functions.

pyvallocation.utils.functions.portfolio_cvar(w: np.ndarray, R: np.ndarray | pd.DataFrame, p: np.ndarray | None = None, alpha: float | None = None, demean: bool | None = None) float | np.ndarray[source]

Computes portfolio Conditional Value-at-Risk (CVaR or Expected Shortfall).

Parameters:
  • w – Portfolio weights matrix (N, M). N=instruments, M=portfolios.

  • R – Instrument P&L or returns matrix (T, N). T=scenarios.

  • p – Scenario probability vector (T, 1). Defaults to uniform.

  • alpha – Confidence level for CVaR. Defaults to 0.95.

  • demean – If True, uses demeaned P&L. Defaults to False.

Returns:

The portfolio’s alpha-CVaR, returned as a positive float or a 1xM array.

pyvallocation.utils.functions.portfolio_var(w: np.ndarray, R: np.ndarray | pd.DataFrame, p: np.ndarray | None = None, alpha: float | None = None, demean: bool | None = None) float | np.ndarray[source]

Computes portfolio Value-at-Risk (VaR).

Parameters:
  • w – Portfolio weights matrix (N, M). N=instruments, M=portfolios.

  • R – Instrument P&L or returns matrix (T, N). T=scenarios.

  • p – Scenario probability vector (T, 1). Defaults to uniform.

  • alpha – Confidence level for VaR. Defaults to 0.95.

  • demean – If True, uses demeaned P&L. Defaults to False.

Returns:

The portfolio’s alpha-VaR, returned as a positive float or a 1xM array.