Skip to content

valuation_service

ValuationService: strategy-based valuation dispatching by MeasurementBasis.

Classes:

  • ValuationService

    Strategy-based valuation service dispatching by MeasurementBasis.

ValuationService

ValuationService(
    strategies: dict[MeasurementBasis, ValuationStrategy]
    | None = None,
    benchmark_service: BenchmarkService | None = None,
    yield_handle: RelinkableYieldTermStructureHandle
    | None = None,
)

Strategy-based valuation service dispatching by MeasurementBasis.

A single :class:ValuationContext is shared across all strategies to avoid rebuilding the term structure multiple times per date.

Methods:

  • register_strategy

    Register strategy for positions of measurement_basis.

  • value_all

    Value all open positions in bank, grouped by MeasurementBasis.

register_strategy

register_strategy(
    measurement_basis: MeasurementBasis,
    strategy: ValuationStrategy,
) -> None

Register strategy for positions of measurement_basis.

value_all

value_all(
    bank: Bank,
    market_data: MarketDataStore,
    date: date,
    valuation_store: ValuationStore,
) -> None

Value all open positions in bank, grouped by MeasurementBasis.

Updates the shared context once for date, then delegates to each registered strategy for its corresponding MeasurementBasis, skipping empty batches.