macrosynergy.learning.forecasting.torch.losses.portfolio_losses#
- class PortfolioLoss(reg_concentration=0, skip_validation=True)[source]#
Bases:
Module,BaseEstimatorBase class for portfolio loss functions.
- Parameters:
Notes
This is a base class for loss functions based on portfolio optimization. It expects the model to output quantities interpretable as portfolio weights or signals.
- class NegMeanPortfolioReturn(reg_concentration=0, skip_validation=True)[source]#
Bases:
PortfolioLossPyTorch loss function to maximise the mean return of a portfolio, or equivalently minimise the negative mean return.
- Parameters:
reg_concentration (float, optional) – Regularization parameter for concentration penalty. Default is 0 (no penalty).
Notes
This loss function is designed for portfolio optimization tasks, meaning that it expects the model to output quantities interpretable as portfolio weights or signals.
- class PortfolioVariance(reg_concentration=0, skip_validation=True)[source]#
Bases:
PortfolioLossPyTorch loss function to minimise the variance of a portfolio.
- Parameters:
reg_concentration (float, optional) – Regularization parameter for concentration penalty. Default is 0 (no penalty).
Notes
This loss function is designed for portfolio optimization tasks, meaning that it expects the model to output quantities interpretable as portfolio weights or signals.
- class NegMeanVarianceUtility(alpha=1, reg_concentration=0, skip_validation=True)[source]#
Bases:
PortfolioLossPytorch loss function to maximise the mean-variance utility of a portfolio, or equivalently minimise the negative mean-variance utility.
- Parameters:
Notes
This loss function is designed for portfolio optimization tasks, meaning that it expects the model to output quantities interpretable as portfolio weights or signals.
- class NegMeanVarianceSkewnessUtility(alpha=1, reg_concentration=0, skip_validation=True)[source]#
Bases:
PortfolioLossPytorch loss function to maximise the mean-variance-skewness utility of a portfolio, or equivalently minimise the negative mean-variance-skewness utility.
- Parameters:
alpha (float, optional) – Risk aversion parameter for variance. Default is 1.
reg_concentration (float, optional) – Regularization parameter for concentration penalty. Default is 0 (no penalty).
skip_validation (bool, optional) – Whether to skip input validation checks for the forward method. Default is True.
Notes
This loss function is designed for portfolio optimization tasks, meaning that it expects the model to output quantities interpretable as portfolio weights or signals.
- class NegSharpeRatio(unbiased=True, reg_concentration=0, eps=1e-08, skip_validation=True)[source]#
Bases:
PortfolioLossPyTorch loss function to maximise the Sharpe ratio of a portfolio, or equivalently minimise the negative Sharpe ratio.
- Parameters:
unbiased (bool, optional) – Whether to use the unbiased estimator for variance. Default is True.
reg_concentration (float, optional) – Regularization parameter for concentration penalty. Default is 0 (no penalty).
eps (float, optional) – Small value to avoid division by zero. Default is 1e-8.
skip_validation (bool, optional) – Whether to skip input validation checks for the forward method. Default is True.
Notes
This loss function is designed for portfolio optimization tasks, meaning that it expects the model to output quantities interpretable as portfolio weights or signals.
For simplicity, we leave out the risk free rate in the Sharpe ratio calculation.