feat: add technical indicator and fundamentals fields to MarketSnapshot
This commit is contained in:
parent
5cb65e8e4f
commit
2398e8faf6
1 changed files with 29 additions and 0 deletions
|
|
@ -134,6 +134,22 @@ class OHLCVBar(BaseModel):
|
|||
volume: float
|
||||
|
||||
|
||||
class FundamentalsSnapshot(BaseModel):
|
||||
"""Fundamental financial data for a single ticker — cached daily."""
|
||||
|
||||
ticker: str
|
||||
eps_ttm: float | None = None
|
||||
pe_ratio: float | None = None
|
||||
peg_ratio: float | None = None
|
||||
revenue_growth_yoy: float | None = None
|
||||
profit_margin: float | None = None
|
||||
debt_to_equity: float | None = None
|
||||
market_cap: float | None = None
|
||||
fetched_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class MarketSnapshot(BaseModel):
|
||||
"""Snapshot of market data for a single ticker — used by strategies."""
|
||||
|
||||
|
|
@ -147,7 +163,20 @@ class MarketSnapshot(BaseModel):
|
|||
sma_20: float | None = None
|
||||
sma_50: float | None = None
|
||||
rsi: float | None = None
|
||||
# Technical indicators — computed by MarketDataManager
|
||||
ema_9: float | None = None
|
||||
ema_21: float | None = None
|
||||
sma_200: float | None = None
|
||||
macd: float | None = None
|
||||
macd_signal: float | None = None
|
||||
macd_histogram: float | None = None
|
||||
bollinger_upper: float | None = None
|
||||
bollinger_mid: float | None = None
|
||||
bollinger_lower: float | None = None
|
||||
vwap: float | None = None
|
||||
atr: float | None = None
|
||||
bars: list[dict[str, Any]] = Field(default_factory=list)
|
||||
fundamentals: FundamentalsSnapshot | None = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue