Stage 07.4.4.1.14 — Execution refactoring and runtime semantics
This commit is contained in:
@@ -11,16 +11,13 @@ from src.trading.auto.state import AutoTradeState
|
||||
|
||||
class AutoTradeService(AutoLifecycleMixin):
|
||||
|
||||
# =========================================================
|
||||
# GLOBAL SERVICE STATE
|
||||
# =========================================================
|
||||
|
||||
# единый runtime state автоторговли
|
||||
# хранит:
|
||||
# - сигналы
|
||||
# - market context
|
||||
# - execution context
|
||||
# - pnl
|
||||
# - PnL открытой позиции и реализованный PnL
|
||||
# - lifecycle
|
||||
# - protection state
|
||||
_state = AutoTradeState()
|
||||
@@ -32,52 +29,40 @@ class AutoTradeService(AutoLifecycleMixin):
|
||||
|
||||
# интервал между auto-trading циклами
|
||||
# run_cycle() вызывается каждые N секунд
|
||||
_loop_interval_seconds = 5
|
||||
_loop_interval_seconds: int = 5
|
||||
|
||||
# =========================================================
|
||||
# SIGNAL CONFIRMATION ENGINE
|
||||
# =========================================================
|
||||
|
||||
# минимальное количество одинаковых BUY/SELL подряд
|
||||
# чтобы сигнал считался подтвержденным
|
||||
_confirm_repeats = 2
|
||||
_confirm_repeats: int = 2
|
||||
|
||||
# минимальное время удержания сигнала
|
||||
# перед execution
|
||||
_confirm_min_duration_seconds = 10
|
||||
_confirm_min_duration_seconds: int = 10
|
||||
|
||||
# =========================================================
|
||||
# EXECUTION CONFIDENCE RULES
|
||||
# =========================================================
|
||||
|
||||
# минимальный confidence для READY state
|
||||
# ниже -> сигнал не считается готовым
|
||||
_ready_confidence = 0.3
|
||||
_ready_confidence = 0.45
|
||||
|
||||
# минимальный execution confidence
|
||||
# для реального допуска execution engine
|
||||
_execution_confidence_required_score = 0.55
|
||||
_execution_confidence_required_score = 0.65
|
||||
|
||||
# =========================================================
|
||||
# RUNTIME TTL
|
||||
# =========================================================
|
||||
|
||||
# время жизни signal runtime
|
||||
# после ttl сигнал считается устаревшим
|
||||
_signal_ttl_seconds = 90
|
||||
_signal_ttl_seconds: int = 90
|
||||
|
||||
# время жизни market analysis runtime
|
||||
# после ttl market context считается stale
|
||||
_market_analysis_ttl_seconds = 180
|
||||
_market_analysis_ttl_seconds: int = 180
|
||||
|
||||
# последний logged runtime expiration key
|
||||
# нужен чтобы не спамить одинаковыми логами
|
||||
_last_logged_runtime_expired_key: str | None = None
|
||||
|
||||
# =========================================================
|
||||
# SIGNAL MEMORY
|
||||
# =========================================================
|
||||
|
||||
# уникальный ключ последнего сигнала
|
||||
# используется для deduplication
|
||||
_last_signal_key: str | None = None
|
||||
@@ -100,40 +85,20 @@ class AutoTradeService(AutoLifecycleMixin):
|
||||
# нужен для confirmation timing
|
||||
_last_signal_started_at: float | None = None
|
||||
|
||||
# =========================================================
|
||||
# MARKET STATE LOG MEMORY
|
||||
# =========================================================
|
||||
|
||||
# последние logged market states
|
||||
# нужны чтобы не дублировать одинаковые runtime logs
|
||||
|
||||
_last_logged_market_state: str | None = None
|
||||
_last_logged_market_trend: str | None = None
|
||||
_last_logged_market_volatility: str | None = None
|
||||
|
||||
# последнее logged reason блокировки входа
|
||||
_last_logged_entry_block_reason: str | None = None
|
||||
|
||||
# количество одинаковых сигналов подряд
|
||||
# используется confirmation engine
|
||||
_same_signal_count = 0
|
||||
_same_signal_count: int = 0
|
||||
|
||||
# =========================================================
|
||||
# EXECUTION SNAPSHOT VALIDATION
|
||||
# =========================================================
|
||||
|
||||
# максимальный допустимый возраст execution snapshot
|
||||
# старше -> snapshot stale
|
||||
_max_snapshot_age_seconds = 5.0
|
||||
_max_snapshot_age_seconds: float = 5.0
|
||||
|
||||
# warning threshold snapshot age
|
||||
# выше -> degraded execution quality
|
||||
_warning_snapshot_age_seconds = 2.0
|
||||
_warning_snapshot_age_seconds: float = 2.0
|
||||
|
||||
# =========================================================
|
||||
# SPREAD RISK THRESHOLDS
|
||||
# =========================================================
|
||||
|
||||
# asset-specific spread thresholds
|
||||
#
|
||||
# warning_enter:
|
||||
|
||||
Reference in New Issue
Block a user