07.4.3.16 — Production Execution Pricing Layer

This commit is contained in:
2026-05-09 13:08:29 +03:00
parent 71cf206e32
commit e97dcd372b
15 changed files with 1179 additions and 188 deletions

View File

@@ -9,6 +9,7 @@ from typing import Callable
from aiogram import Bot
from aiogram.exceptions import TelegramBadRequest, TelegramRetryAfter
from src.integrations.exchange.market_data_runner import MarketDataRunner
from src.trading.debug.service import DebugTradeService
@@ -24,6 +25,8 @@ class DebugTradeRunner:
_current_screen: str | None = None
_interval_seconds = 5
_market_interval_seconds = 1
_last_text: str | None = None
_last_refresh_at: float = 0.0
_retry_after_until: float = 0.0
@@ -77,9 +80,21 @@ class DebugTradeRunner:
@classmethod
def start(cls) -> None:
state = DebugTradeService().get_state()
service = DebugTradeService()
state = service.get_state()
state.status = "RUNNING"
MarketDataRunner.start(
symbol_provider=lambda: DebugTradeService().get_state().symbol,
interval_seconds=cls._market_interval_seconds,
runtime_key="debug_auto",
screen="debug_auto",
action="market_data",
runtime_label="[DEBUG]",
)
cls._last_text = None
if cls._task is not None and not cls._task.done():
return
@@ -87,6 +102,8 @@ class DebugTradeRunner:
@classmethod
def stop(cls) -> None:
MarketDataRunner.stop("debug_auto")
if cls._task is None:
return
@@ -102,6 +119,7 @@ class DebugTradeRunner:
if state.status == "OFF":
cls._task = None
MarketDataRunner.stop("debug_auto")
break
service.process()