07.4.4.1.6 — Signal Aging & Runtime Expiration

This commit is contained in:
2026-05-11 13:33:21 +03:00
parent e17f847603
commit fe33e0c026
9 changed files with 491 additions and 6 deletions

View File

@@ -248,9 +248,9 @@ def _market_state_line(state) -> str:
market_state = getattr(state, "market_state", None)
labels = {
"TREND_UP": "📈 Тренд · Восходящий",
"TREND_DOWN": "📉 Тренд · Нисходящий",
"RANGE": "🟰 Тренд · Нет выраженного направления",
"TREND_UP": "📈 Тренд · Вверх",
"TREND_DOWN": "📉 Тренд · Вниз",
"RANGE": "🟰 Рынок · Флэт",
"HIGH_VOLATILITY": "⚠️ Рынок · Высокая волатильность",
"LOW_VOLATILITY": "🟰 Рынок · Низкая активность",
"UNKNOWN": "⏳ Рынок · Идёт анализ",
@@ -260,13 +260,38 @@ def _market_state_line(state) -> str:
return labels.get(market_state, "⏳ Рынок · Идёт анализ")
def _compact_entry_block_message(message: str) -> str:
normalized = message.strip().lower()
mapping = {
"рынок сейчас не подходит для входа": "слабый импульс",
"слабый импульс вверх": "слабый импульс",
"слабый импульс вниз": "слабый импульс",
"недостаточно live-данных": "мало данных",
"мало live-данных": "мало данных",
"высокая волатильность": "волатильность",
"низкая активность": "низкая активность",
}
return mapping.get(normalized, message)
def _entry_block_line(state) -> str:
message = getattr(state, "entry_block_message", None)
if not message:
return ""
return f"Вход в позицию · {message}"
compact_message = _compact_entry_block_message(str(message))
signal = (state.last_signal or "HOLD").upper()
if signal == "HOLD":
return f"Ожидание · {compact_message}"
if signal in {"BUY", "SELL"}:
return f"Вход · {compact_message}"
return ""
def _execution_block_lines(state) -> list[str]: