07.4.4.1.9 Adaptive Market Diagnostics Layer

This commit is contained in:
2026-05-11 22:09:16 +03:00
parent 9ba1297c46
commit 5325ea3855
10 changed files with 500 additions and 7 deletions

View File

@@ -158,6 +158,7 @@ def _build_waiting_text(state) -> str:
signal_lines = [
_signal_line(state),
_market_state_line(state),
_market_diagnostics_line(state),
_entry_block_line(state),
_execution_quality_line(state),
*_signal_confidence_lines(state),
@@ -261,6 +262,49 @@ def _market_state_line(state) -> str:
return labels.get(market_state, "⏳ Рынок · Идёт анализ")
def _market_diagnostics_line(state) -> str:
strength = getattr(state, "market_trend_strength", None)
quality = getattr(state, "market_trend_quality", None)
phase = getattr(state, "market_phase", None)
if not strength and not quality and not phase:
return ""
strength_labels = {
"WEAK": "слабый",
"NORMAL": "нормальный",
"STRONG": "сильный",
}
quality_labels = {
"CLEAN": "чистый",
"NOISY": "шумный",
}
phase_labels = {
"IMPULSE": "импульс",
"PULLBACK": "откат",
"RANGE": "флэт",
"SQUEEZE": "сжатие",
}
parts = []
if strength in strength_labels:
parts.append(strength_labels[strength])
if quality in quality_labels:
parts.append(quality_labels[quality])
if phase in phase_labels:
parts.append(phase_labels[phase])
if not parts:
return ""
return f"Анализ · {' · '.join(parts)}"
def _compact_entry_block_message(message: str) -> str:
normalized = message.strip().lower()