07.4.4.1.10.3 — Telegram Diagnostic Screen

This commit is contained in:
2026-05-16 09:23:37 +03:00
parent 8e1c09ad66
commit 2c75f95b46
16 changed files with 2902 additions and 243 deletions

View File

@@ -2,6 +2,7 @@
from __future__ import annotations
import time
import math
from dataclasses import dataclass
from datetime import datetime
@@ -227,6 +228,13 @@ class ExecutionEngine:
)
state.realized_pnl_usd += pnl
state.cycle_realized_pnl_usd += pnl
state.last_flip_old_side = old_side
state.last_flip_new_side = new_side
state.last_flip_pnl_usd = pnl
state.last_flip_reason = state.last_signal_reason
state.last_flip_monotonic_at = time.monotonic()
old_side = position.side
old_entry_price = position.entry_price
@@ -341,6 +349,7 @@ class ExecutionEngine:
pnl = forced_pnl if forced_pnl is not None else self._calculate_pnl(exit_price)
state.realized_pnl_usd += pnl
state.cycle_realized_pnl_usd += pnl
now = self._now_time()
@@ -404,6 +413,7 @@ class ExecutionEngine:
f"Позиция закрыта по правилу защиты: {forced_reason}.",
)
return ExecutionDecision("CLOSE", True, "Позиция закрыта.")
def _risk_close_decision(self, state: AutoTradeState) -> ExecutionDecision | None: