from __future__ import annotations from dataclasses import dataclass, field from typing import List, Dict @dataclass class Asset: symbol: str kind: str # e.g., 'Equity' @dataclass class Leg: asset: Asset target_delta: float @dataclass class MarketSignal: symbol: str price: float liquidity: float latency_proxy: float @dataclass class AuditLogEntry: timestamp: float actor: str action: str note: str @dataclass class PlanDelta: hedge_updates: Dict[str, float] # asset_symbol -> delta authority: str audit_log: List[AuditLogEntry] = field(default_factory=list) def to_dict(self) -> Dict: return { "hedge_updates": self.hedge_updates, "authority": self.authority, "audit_log": [ {"timestamp": e.timestamp, "actor": e.actor, "action": e.action, "note": e.note} for e in self.audit_log ], } @dataclass class StrategyDelta: delta_budget: float vega_budget: float gamma_budget: float pnl_target: float assets: List[Asset] = field(default_factory=list) legs: List[Leg] = field(default_factory=list) signals: List[MarketSignal] = field(default_factory=list)