bayesline.api.equity.ExposureSettings

bayesline.api.equity.ExposureSettings#

model ExposureSettings#

Defines exposures as hierarchy of selected styles and substyles.

Fields#

Field

Type

Required

Default

exposures

list[Annotated[ContinuousExposureGroupSettings | CategoricalExposureGroupSettings | TSBetaExposureGroupSettings | InlineUploadedExposureGroupSettings | InteractionExposureGroupSettings, FieldInfo(annotation=NoneType, required=True, discriminator=’exposure_type’)]]

No

[]

orthogonalization_weights

Literal[‘SqrtCap’, ‘InvIdioVar’, ‘Cap’]

No

'SqrtCap'

Validators#

Validator

Mode

Fields

validate_exposure_groups

after

exposures

field exposures: list[Annotated[ContinuousExposureGroupSettings | CategoricalExposureGroupSettings | TSBetaExposureGroupSettings | InlineUploadedExposureGroupSettings | InteractionExposureGroupSettings, FieldInfo(annotation=NoneType, required=True, discriminator='exposure_type')]] [Optional]#

The exposures to build the factor risk model on.

Validated by:

validate_exposure_groups

field orthogonalization_weights: Literal['SqrtCap', 'InvIdioVar', 'Cap'] [Optional]#

The weighting scheme of the net-of projections declared by this settings’ exposure groups (see the groups’ net_of field), taken over the consuming context’s estimation universe. Only dense factor groups (continuous, tsbeta or uploaded) can carry net_of; any group can be named as a source, and multiple net_of-bearing groups project in their declaration order. Owned by the exposures so an orthogonalized exposure is one well-defined derived exposure, identical wherever it is consumed: a consuming factor model always estimates in this projection basis, whatever its own regression weights — the source factors’ returns and statistics absorb what the targets carried on shared directions, while same-date residuals, idiosyncratic returns and R-squared are unchanged. Predicted total risk through the factor covariance can move, because the covariance is estimated across dates in the rotated basis. A model whose regression weights differ is valid — same fit, same served exposures — but its source factor returns then only approximate the source-only small model, and a warning is logged when the model is built.

validator validate_exposure_groups(mode=after)#
Validates:

exposures