avanza.models.market_data
1from __future__ import annotations 2 3from datetime import datetime 4from typing import List 5 6from pydantic import BaseModel, field_validator 7 8from avanza.models.quote import Quote 9 10 11class MarketDataQuote(Quote): 12 spread: float | None = None 13 timeOfLast: datetime # override ms -> datetime 14 updated: datetime # override ms -> datetime 15 16 @field_validator("timeOfLast", "updated", mode="before") 17 @classmethod 18 def parse_dt(cls, v): 19 if isinstance(v, str): 20 return datetime.fromisoformat(v) 21 return v 22 23 24class OrderDepthSide(BaseModel): 25 price: float 26 volume: int 27 priceString: str 28 29 30class OrderDepthLevel(BaseModel): 31 buySide: OrderDepthSide 32 sellSide: OrderDepthSide 33 34 35class OrderDepth(BaseModel): 36 receivedTime: int 37 levels: List[OrderDepthLevel] 38 marketMakerExpected: bool 39 40 41class MarketData(BaseModel): 42 quote: MarketDataQuote 43 orderDepth: OrderDepth 44 trades: List[dict]
12class MarketDataQuote(Quote): 13 spread: float | None = None 14 timeOfLast: datetime # override ms -> datetime 15 updated: datetime # override ms -> datetime 16 17 @field_validator("timeOfLast", "updated", mode="before") 18 @classmethod 19 def parse_dt(cls, v): 20 if isinstance(v, str): 21 return datetime.fromisoformat(v) 22 return v
class
OrderDepthSide(pydantic.main.BaseModel):
class
OrderDepthLevel(pydantic.main.BaseModel):
class
OrderDepth(pydantic.main.BaseModel):
36class OrderDepth(BaseModel): 37 receivedTime: int 38 levels: List[OrderDepthLevel] 39 marketMakerExpected: bool
class
MarketData(pydantic.main.BaseModel):
42class MarketData(BaseModel): 43 quote: MarketDataQuote 44 orderDepth: OrderDepth 45 trades: List[dict]