07.4.4.1.3 — Journal Runtime Cleanup & Event Titles Layer
This commit is contained in:
@@ -582,7 +582,7 @@ class AutoTradeService:
|
||||
JournalService().log_ui_info(
|
||||
event_type="signal_summary",
|
||||
message=(
|
||||
f"🟡 HOLD {duration_text} завершён сигналом {next_signal}."
|
||||
f"HOLD длился {duration_text} и завершился сигналом {next_signal}."
|
||||
),
|
||||
screen="auto",
|
||||
action="signal_summary",
|
||||
@@ -622,7 +622,9 @@ class AutoTradeService:
|
||||
try:
|
||||
JournalService().log_ui_info(
|
||||
event_type="signal_ready",
|
||||
message=f"Сигнал {normalized_signal} готов к исполнению.",
|
||||
message=(
|
||||
f"Сигнал {normalized_signal} подтверждён и готов к исполнению."
|
||||
),
|
||||
screen="auto",
|
||||
action="signal_ready",
|
||||
payload={
|
||||
@@ -691,28 +693,15 @@ class AutoTradeService:
|
||||
and market_state != type(self)._last_logged_market_state
|
||||
)
|
||||
|
||||
trend_changed = (
|
||||
market_trend is not None
|
||||
and market_trend != previous_market_trend
|
||||
and market_trend != type(self)._last_logged_market_trend
|
||||
)
|
||||
|
||||
volatility_changed = (
|
||||
market_volatility is not None
|
||||
and market_volatility != previous_market_volatility
|
||||
and market_volatility != type(self)._last_logged_market_volatility
|
||||
)
|
||||
|
||||
if not state_changed and not trend_changed and not volatility_changed:
|
||||
if not state_changed and not volatility_changed:
|
||||
return
|
||||
|
||||
type(self)._last_logged_market_state = market_state
|
||||
type(self)._last_logged_market_trend = market_trend
|
||||
type(self)._last_logged_market_volatility = market_volatility
|
||||
|
||||
level = self._market_journal_level(market_state)
|
||||
message = self._market_state_message(market_state)
|
||||
|
||||
journal_payload = {
|
||||
**payload,
|
||||
"previous_market_state": previous_market_state,
|
||||
@@ -724,25 +713,64 @@ class AutoTradeService:
|
||||
}
|
||||
|
||||
try:
|
||||
if level == "WARNING":
|
||||
JournalService().log_ui_warning(
|
||||
if state_changed:
|
||||
self._write_market_journal_event(
|
||||
event_type="market_state_changed",
|
||||
message=message,
|
||||
screen="auto",
|
||||
action="market_analysis",
|
||||
market_state=market_state,
|
||||
message=self._market_state_message(market_state),
|
||||
payload=journal_payload,
|
||||
)
|
||||
return
|
||||
|
||||
JournalService().log_ui_info(
|
||||
event_type="market_state_changed",
|
||||
if volatility_changed:
|
||||
self._write_market_journal_event(
|
||||
event_type="market_volatility_changed",
|
||||
market_state=market_state,
|
||||
message=self._market_volatility_message(market_volatility),
|
||||
payload=journal_payload,
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
type(self)._last_logged_market_state = market_state
|
||||
type(self)._last_logged_market_trend = market_trend
|
||||
type(self)._last_logged_market_volatility = market_volatility
|
||||
|
||||
def _write_market_journal_event(
|
||||
self,
|
||||
*,
|
||||
event_type: str,
|
||||
market_state: str,
|
||||
message: str,
|
||||
payload: dict,
|
||||
) -> None:
|
||||
level = self._market_journal_level(market_state)
|
||||
|
||||
if level == "WARNING":
|
||||
JournalService().log_ui_warning(
|
||||
event_type=event_type,
|
||||
message=message,
|
||||
screen="auto",
|
||||
action="market_analysis",
|
||||
payload=journal_payload,
|
||||
payload=payload,
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
return
|
||||
|
||||
JournalService().log_ui_info(
|
||||
event_type=event_type,
|
||||
message=message,
|
||||
screen="auto",
|
||||
action="market_analysis",
|
||||
payload=payload,
|
||||
)
|
||||
|
||||
def _market_volatility_message(self, market_volatility: str | None) -> str:
|
||||
messages = {
|
||||
"LOW": "Волатильность изменена: низкая.",
|
||||
"NORMAL": "Волатильность изменена: нормальная.",
|
||||
"HIGH": "Волатильность изменена: высокая.",
|
||||
}
|
||||
|
||||
return messages.get(str(market_volatility or ""), "Волатильность не определена.")
|
||||
|
||||
def _market_journal_level(self, market_state: str) -> str:
|
||||
if market_state == "HIGH_VOLATILITY":
|
||||
@@ -752,14 +780,14 @@ class AutoTradeService:
|
||||
|
||||
def _market_state_message(self, market_state: str) -> str:
|
||||
messages = {
|
||||
"TREND_UP": "📈 Рынок перешёл в рост.",
|
||||
"TREND_DOWN": "📉 Рынок перешёл в снижение.",
|
||||
"RANGE": "🟰 На рынке нет выраженного направления.",
|
||||
"HIGH_VOLATILITY": "⚠️ Рынок стал слишком волатильным.",
|
||||
"LOW_VOLATILITY": "💤 Рынок почти не движется.",
|
||||
"TREND_UP": "Состояние рынка изменено: рост.",
|
||||
"TREND_DOWN": "Состояние рынка изменено: снижение.",
|
||||
"RANGE": "Состояние рынка изменено: нет выраженного направления.",
|
||||
"HIGH_VOLATILITY": "Состояние рынка изменено: высокая волатильность.",
|
||||
"LOW_VOLATILITY": "Состояние рынка изменено: низкая активность.",
|
||||
}
|
||||
|
||||
return messages.get(market_state, "⏳ Состояние рынка анализируется.")
|
||||
return messages.get(market_state, "Состояние рынка анализируется.")
|
||||
|
||||
def run_cycle(self) -> AutoTradeState:
|
||||
state = self.get_state()
|
||||
|
||||
Reference in New Issue
Block a user