feat: instrument model
This commit is contained in:
@@ -758,8 +758,10 @@ def _build_inputs(
|
||||
ov = overrides.get(nid)
|
||||
|
||||
if ntype == "input_event":
|
||||
# Events sont déjà en pips → pas de saturation (déjà non-linéaire via lifecycle)
|
||||
inputs[nid] = float(ov["value"]) if ov else ev_by_cat.get(node.get("event_category", ""), 0.0)
|
||||
# Baseline (niveau structurel user) + surprise event (lifecycle) → additif
|
||||
base = float(ov["value"]) if ov else 0.0
|
||||
events = ev_by_cat.get(node.get("event_category", ""), 0.0)
|
||||
inputs[nid] = base + events
|
||||
|
||||
elif ntype == "input_manual":
|
||||
coeff = float(node.get("coefficient_to_pips", 1.0))
|
||||
@@ -953,9 +955,13 @@ def get_model_state(conn, instrument: str, at_date: Optional[str] = None) -> Opt
|
||||
st["pip_contribution"] = val
|
||||
|
||||
if ntype == "input_event":
|
||||
cat = node.get("event_category", "")
|
||||
st["source"] = "manual" if ov else ("events" if val != 0.0 else "neutral")
|
||||
st["raw_value"] = ov["value"] if ov else round(ev_by_cat.get(cat, 0.0), 1)
|
||||
cat = node.get("event_category", "")
|
||||
event_surprise = round(ev_by_cat.get(cat, 0.0), 1)
|
||||
baseline = float(ov["value"]) if ov else 0.0
|
||||
st["raw_value"] = baseline
|
||||
st["baseline_value"] = baseline
|
||||
st["event_surprise"] = event_surprise
|
||||
st["source"] = "manual" if ov else ("events" if event_surprise != 0.0 else "neutral")
|
||||
if ov:
|
||||
st["override_note"] = ov.get("note", "")
|
||||
st["override_set_at"] = ov.get("set_at", "")
|
||||
|
||||
Reference in New Issue
Block a user