feat: macro_context/market数据全部DB优先,JSON回退

- 建 macro_context_log 表,macro_context_collector.py 双写
- strategy_lifecycle.py load_macro_context() 优先DB
- strategy_tree.py detect_scenario() 优先DB
- stale_push_wlin.py load_macro_line() 优先DB
- xiaoguo_signal_consumer.py 大盘判断优先DB
- stock_profile.py load_macro() 优先DB
- system_audit.py 管道审计改查DB market_snapshots
- JSON保留作fallback,确保过渡期不中断
This commit is contained in:
知微
2026-06-24 22:34:08 +08:00
parent 843012e045
commit 39ff4d95f7
8 changed files with 132 additions and 39 deletions
+25 -3
View File
@@ -112,8 +112,18 @@ def load_macro_line():
"""加载大盘和市场的简要描述"""
parts = []
try:
with open(MACRO_CTX) as f:
m = json.load(f).get("structure", {})
# 优先 DB
import sqlite3
db = sqlite3.connect("/home/hmo/MoFin/data/mofin.db")
row = db.execute(
"SELECT structure FROM macro_context_log "
"WHERE has_valid_data=1 ORDER BY created_at DESC LIMIT 1"
).fetchone()
db.close()
if row and row[0]:
m = json.loads(row[0])
else:
raise ValueError("no db data")
overall = m.get("overall", "neutral")
desc = m.get("description", "")
if "bearish" in overall:
@@ -123,7 +133,19 @@ def load_macro_line():
elif desc:
parts.append(f"大盘{desc}")
except Exception:
pass
try:
with open(MACRO_CTX) as f:
m = json.load(f).get("structure", {})
overall = m.get("overall", "neutral")
desc = m.get("description", "")
if "bearish" in overall:
parts.append("大盘偏弱")
elif overall == "bullish":
parts.append("大盘偏强")
elif desc:
parts.append(f"大盘{desc}")
except Exception:
pass
try:
with open(MARKET_JSON) as f:
mk = json.load(f)