# app/src/trading/position/state.py from __future__ import annotations from dataclasses import dataclass @dataclass(slots=True) class PositionState: # сторона позиции: NONE / LONG / SHORT side: str = "NONE" # торговый инструмент symbol: str = "" # id сделки, к которой относится текущая позиция trade_id: str | None = None # порядковый номер сделки внутри runtime trade_sequence: int | None = None # номер auto-cycle, в котором открыта сделка trade_cycle_number: int | None = None # цена входа entry_price: float | None = None # размер позиции size: float | None = None # плечо leverage: float | None = None # нереализованный PnL unrealized_pnl_usd: float | None = None # peak pnl tracking peak_unrealized_pnl_usd: float | None = None peak_pnl_percent: float | None = None # lifecycle tracking max_favorable_excursion_percent: float | None = None max_adverse_excursion_percent: float | None = None # runtime fatigue tracking fatigue_score: float | None = None fatigue_state: str | None = None # position regime memory best_price_seen: float | None = None worst_price_seen: float | None = None # время открытия позиции opened_at: str | None = None # monotonic timestamp открытия позиции opened_monotonic_at: float | None = None # время последнего обновления позиции updated_at: str | None = None