bayesline.api.equity.OptimizerSettings

bayesline.api.equity.OptimizerSettings#

model OptimizerSettings#

Optimizer settings to build an optimization problem.

Every enabled objective and constraint must have the inputs it requires, e.g. a factor exposure constraint needs a risk model; under-specified combinations are rejected at validation.

Fields#

Field

Type

Required

Default

Constraints

constraints

list[Annotated[FactorExposureConstraint | PositionBoundConstraint | PositionPinConstraint | MaxPositionSizeConstraint | NetExposureConstraint | GrossExposureConstraint | TurnoverConstraint | DoNotTradeConstraint | GroupNetExposureConstraint, Discriminator(discriminator=kind, custom_error_type=None, custom_error_message=None, custom_error_context=None)]]

No

factory

defaults

OptimizerDefaults

No

factory

factor_cov_settings

FactorCovarianceSettings | None

No

None

factor_model_settings

str | int | FactorRiskModelSettings | None

No

None

idio_vol_settings

IdioVolSettings | None

No

None

objectives

list[Annotated[MinimizeTradeVolumeObjective | MinimizeDistanceObjective | IdioTrackingErrorObjective | MaximizeAlphaObjective, Discriminator(discriminator=kind, custom_error_type=None, custom_error_message=None, custom_error_context=None)]]

Yes

min_length=1

portfolio_hierarchy

str | int | PortfolioHierarchySettings

Yes

field constraints: list[Annotated[FactorExposureConstraint | PositionBoundConstraint | PositionPinConstraint | MaxPositionSizeConstraint | NetExposureConstraint | GrossExposureConstraint | TurnoverConstraint | DoNotTradeConstraint | GroupNetExposureConstraint, Discriminator(discriminator=kind, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] [Optional]#

Hard restrictions on the feasible set, on top of defaults. The book’s total holdings stay fixed unless a net_exposure constraint lifts that. The optimizer trades only the names a portfolio holds, plus any name a position_pin or position_bound refers to; a referenced name the portfolio does not hold is opened from zero.

field defaults: OptimizerDefaults [Optional]#

Safeguards applied on top of constraints; edit a field to relax one.

field factor_cov_settings: FactorCovarianceSettings | None [Optional]#

Settings for the factor covariance matrix forecasts. None unless an enabled objective or constraint is evaluated against covariance forecasts.

field factor_model_settings: str | int | FactorRiskModelSettings | None [Optional]#

The factor risk model supplying exposures and risk: either inline settings or a reference (name or id) to saved factor risk model settings. None for problems that need no risk model, e.g. a mechanical rebalance back inside position limits.

field idio_vol_settings: IdioVolSettings | None [Optional]#

Settings for the idiosyncratic volatility forecasts. None unless an enabled objective or constraint is evaluated against idiosyncratic volatility forecasts.

field objectives: list[Annotated[MinimizeTradeVolumeObjective | MinimizeDistanceObjective | IdioTrackingErrorObjective | MaximizeAlphaObjective, Discriminator(discriminator=kind, custom_error_type=None, custom_error_message=None, custom_error_context=None)]] [Required]#

Objectives combined into the weighted sum the optimizer minimizes, at most one per kind.

Constraints:
  • min_length = 1

field portfolio_hierarchy: str | int | PortfolioHierarchySettings [Required]#

The hierarchy of portfolios (with optional per-portfolio benchmarks) to optimize, each optimized independently against the same objectives and constraints: either inline settings or a reference (name or id) to saved settings.