[
  {
    "candidate_id": "candidate_2026-07-02T08-30-00Z_short_liquidity_sweep_reversal",
    "timestamp": "2026-07-02T08:30:00Z",
    "decision": "shadow",
    "reason": "M15 liquidity sweep at 08:30, but H1 context is bullish (close 4076.19 up from 4064.375). Wait for clearer HTF alignment.",
    "htf_context": "H1 printed a bullish engulfing-like bar at 08:00 (O:4064, C:4076).",
    "m30_structure": "M30 08:00-09:00 was highly bullish (O:4064, H:4080).",
    "m15_m5_execution": "M15 swept H:4078 at 08:30-08:45, reversing to 4065 by 09:45. Valid LTF mechanics, but counter-trend to immediate momentum.",
    "entry": 4072.0,
    "stop": 4080.12,
    "target": 4064.09,
    "r": 1.0,
    "promoted_to_journal": false
  },
  {
    "candidate_id": "candidate_2026-07-02T08-45-00Z_short_liquidity_sweep_reversal",
    "timestamp": "2026-07-02T08:45:00Z",
    "decision": "shadow",
    "reason": "M15 liquidity sweep at 08:45 (high 4080.12). Same context as 08:30 candidate, counter-trend to immediate momentum.",
    "htf_context": "H1 printed a bullish engulfing-like bar at 08:00 (O:4064, C:4076).",
    "m30_structure": "M30 08:00-09:00 was highly bullish (O:4064, H:4080).",
    "m15_m5_execution": "M15 swept H:4080 at 08:45, reversing to 4065 by 09:45. Valid LTF mechanics, but counter-trend.",
    "entry": 4072.0,
    "stop": 4080.12,
    "target": 4064.09,
    "r": 1.0,
    "promoted_to_journal": false
  },
  {
    "candidate_id": "candidate_2026-07-02T09-45-00Z_short_liquidity_sweep_reversal",
    "timestamp": "2026-07-02T09:45:00Z",
    "decision": "rejected",
    "reason": "M15 sweep at 09:45 (high 4072.36) is lower than 08:45 high (4080.12). Does not sweep primary liquidity.",
    "htf_context": "H1 retracing from 4080 high.",
    "m30_structure": "M30 09:30-10:00 range bound.",
    "m15_m5_execution": "M15 high at 09:45 (4072.36) did not take out earlier 4080 high. Weak setup.",
    "entry": null,
    "stop": null,
    "target": null,
    "r": null,
    "promoted_to_journal": false
  }
]