feat: pressure

This commit is contained in:
OpenSquared
2026-07-02 18:07:21 +02:00
parent 01709e5edf
commit ae5865a156
3 changed files with 303 additions and 6 deletions

View File

@@ -96,18 +96,33 @@ def _find_existing(conn, currency: str, meeting_date: str) -> Optional[dict]:
def _upsert_analyses(conn, event_id: int, template_id: int, instruments: list[str], signal: float):
"""
Crée/recrée les causal_event_analyses pour que l'event apparaisse
dans la Frise de chaque instrument concerné.
dans la Frise et dans la theoretical-curve de chaque instrument.
Calcule prediction_json via evaluate_graph pour alimenter le factor engine.
"""
conn.execute(
"DELETE FROM causal_event_analyses WHERE market_event_id=?", (event_id,)
)
inputs = json.dumps({"guidance_signal": signal})
inputs_dict = {"guidance_signal": signal}
inputs_json = json.dumps(inputs_dict)
# Évalue le graphe pour obtenir les pips prédits par instrument
node_values: dict = {}
try:
from services.causal_graphs import evaluate_graph, get_template
tmpl = get_template(conn, template_id)
if tmpl:
node_values = evaluate_graph(tmpl["graph_json"], inputs_dict)
except Exception as e:
logger.warning(f"[guidance_sync] evaluate_graph failed: {e}")
prediction_json = json.dumps(node_values) if node_values else None
for inst in instruments:
conn.execute("""
INSERT INTO causal_event_analyses
(market_event_id, template_id, instrument, inputs_json, analyzed_at)
VALUES (?, ?, ?, ?, datetime('now'))
""", (event_id, template_id, inst, inputs))
(market_event_id, template_id, instrument, inputs_json, prediction_json, analyzed_at)
VALUES (?, ?, ?, ?, ?, datetime('now'))
""", (event_id, template_id, inst, inputs_json, prediction_json))
def _build_title(currency: str, signal: float, meeting_date: str) -> str: