Make risk guard symbol aware

This commit is contained in:
Codex
2026-06-24 05:30:12 +03:00
parent 4112a17bc5
commit a6c94b1555
4 changed files with 168 additions and 12 deletions
+28
View File
@@ -171,6 +171,23 @@ class CryptoSpotBot:
)
)
continue
symbol_guard = self._risk_guard_for_symbol(risk_guard, symbol)
if symbol_guard.get("block_new_entries"):
self.storage.insert_signal(
Signal(
symbol,
"HOLD",
0.0,
"risk_guard: symbol blocked",
{
"strategy_mode": self.settings.strategy_mode,
"risk_guard": risk_guard,
"symbol_guard": symbol_guard,
"checks": {"risk_guard_symbol_ok": False},
},
)
)
continue
llm = {}
if (
self.settings.llm_advisor_enabled
@@ -211,6 +228,17 @@ class CryptoSpotBot:
prices,
)
@staticmethod
def _risk_guard_for_symbol(risk_guard: dict, symbol: str) -> dict:
rows = risk_guard.get("symbols")
if not isinstance(rows, list):
return {}
symbol_upper = symbol.upper()
for row in rows:
if isinstance(row, dict) and str(row.get("symbol", "")).upper() == symbol_upper:
return row
return {}
def _with_exposure_context(self, rules: dict) -> dict:
enriched = dict(rules)
current_exposure = self.broker.exposure()