# 07.4.3.16 — Production Execution Pricing Layer

## Overview

Этап посвящён построению production-grade pricing layer для автоторговли.

Основная цель:
- полностью разделить execution pricing между AUTO и DEBUG runtime
- перевести pricing pipeline на websocket-first архитектуру
- устранить конфликты shared cache
- стабилизировать execution snapshot layer
- обеспечить корректную freshness validation
- убрать скачки источников market data
- стабилизировать signal timer lifecycle

---

# Основные проблемы до этапа

## 1. Shared market cache

AUTO и DEBUG runtime использовали общий MarketPriceCache.

Последствия:
- runtime перетирали друг другу market snapshot
- execution source постоянно переключался
- UI показывал нестабильные данные
- HOLD timer визуально сбрасывался

---

## 2. REST dominance

Даже при активном websocket execution layer периодически переходил на REST fallback.

Последствия:
- execution source прыгал между websocket и REST
- pricing становился нестабильным
- execution snapshot терял консистентность

---

## 3. Signal lifecycle instability

После Start/Stop signal_started_at не всегда сбрасывался корректно.

Последствия:
- HOLD timer стартовал не с 0с
- UI показывал старый lifecycle сигнала

---

# Архитектурные изменения

## 1. Runtime-separated pricing

Введено разделение runtime:

- AUTO runtime
- DEBUG runtime

Каждый runtime:
- имеет собственный websocket lifecycle
- имеет собственный market cache context
- имеет собственный execution snapshot source

---

## 2. WebSocket-first pricing

Execution layer теперь работает по модели:

1. websocket cache
2. freshness validation
3. REST fallback only if required

REST больше не является primary source.

---

## 3. Execution Snapshot Layer

Добавлен execution snapshot pipeline:

- last_price
- bid_price
- ask_price
- source
- freshness
- quote age

Execution snapshot используется для:
- ENTRY
- EXIT
- FLIP
- SL
- TP
- ML

---

## 4. Freshness validation

Добавлена проверка freshness market snapshot:

- age_seconds
- execution freshness
- cache lifetime validation

Execution pricing больше не использует stale quote.

---

## 5. Runtime-aware market sourcing

В pricing pipeline добавлен runtime context:

- auto
- debug_auto

Это устранило shared cache collisions.

---

# UI Improvements

## HOLD timer reset

После Start:
- signal_started_at корректно сбрасывается
- HOLD timer стартует с 0с

---

## Stable market rendering

UI больше не прыгает между:
- websocket
- REST fallback
- stale cache

---

## Stable execution source

Execution source стабилизирован:
- ws_depth:auto
- ws_depth:debug_auto

REST fallback используется только как backup.

---

# Production Result

После завершения этапа система получила:

- production-grade execution pricing
- websocket-first pricing architecture
- isolated runtime execution
- stable market snapshot lifecycle
- freshness-aware execution pipeline
- stable AUTO/DEBUG separation
- deterministic signal lifecycle

---

# Финальное состояние архитектуры

AUTO runtime:
- own websocket
- own pricing cache
- own execution source

DEBUG runtime:
- own websocket
- own pricing cache
- own execution source

REST:
- fallback only

Execution:
- freshness-aware
- runtime-isolated
- websocket-first

---

# Stage Status

Статус этапа:
- COMPLETED

Этап:
- 07.4.3.16 — Production Execution Pricing Layer
