Entities#

Data entities for market data rows/tables and ticker validation.

class MarketData(start_date: datetime.date, end_date: datetime.date, ticker: kaxanuk.attribution_analysis.entities.ticker.Ticker, daily_rows: dict[str, kaxanuk.attribution_analysis.entities.market_data_daily_row.MarketDataDailyRow])[source]#

Bases: object

daily_rows: dict[str, MarketDataDailyRow]#
end_date: date#
start_date: date#
ticker: Ticker#
class MarketDataDailyRow(date: datetime.date, open: decimal.Decimal, high: decimal.Decimal, low: decimal.Decimal, close: decimal.Decimal, adjusted_close: decimal.Decimal | None, volume: int, vwap: decimal.Decimal | None)[source]#

Bases: object

adjusted_close: Decimal | None#
close: Decimal#
date: date#
high: Decimal#
low: Decimal#
open: Decimal#
volume: int#
vwap: Decimal | None#

Security ticker value object for use in all entities and aggregates.

class Ticker(symbol: str)[source]#

Bases: object

Immutable value object representing a security ticker symbol.

Validation performed automatically on construction:

  • symbol must be a str.

  • symbol must match the allowed ticker character set (letters, digits, ., *, -, ^).

Parameters:

symbol (str) – The ticker symbol (e.g. "AAPL", "BRK.B").

Raises:

EntityValueError – If symbol is not a string, or does not match the expected ticker format.

symbol: str#