Files
dzentra_bot/app/src/trading/debug/state.py

57 lines
1.4 KiB
Python

# app/src/trading/debug/state.py
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass(slots=True)
class DebugPositionState:
side: str = "NONE"
symbol: str = ""
entry_price: float | None = None
size: float | None = None
leverage: float | None = None
unrealized_pnl_usd: float | None = None
opened_at: str | None = None
updated_at: str | None = None
@dataclass(slots=True)
class DebugTradeState:
status: str = "OFF"
strategy: str | None = "TREND"
symbol: str = "BTC/USD_LEVERAGE"
allocated_balance_usd: float = 1000.0
realized_pnl_usd: float = 0.0
risk_percent: float | None = 1.0
leverage: float | None = 2.0
stop_loss_percent: float | None = 1.0
take_profit_percent: float | None = None
max_loss_usd: float | None = None
max_reserved_balance_percent: float | None = 50.0
last_signal: str | None = "HOLD"
last_signal_confidence: float = 0.0
last_signal_repeat_count: int = 0
last_signal_reason: str | None = None
signal_started_at: float | None = None
decision_status: str = "WAITING"
decision_reason: str | None = None
is_signal_confirmed: bool = False
is_signal_ready: bool = False
execution_block_reason: str | None = None
execution_size_adjustment_reason: str | None = None
position: DebugPositionState = field(default_factory=DebugPositionState)
last_check_at: str | None = None