import json
from datetime import datetime

def analyze():
    # Load OHLCV data using absolute paths
    m30_data = json.load(open("/home/aryy/.hermes/profiles/finance/backtests/xauusd_2026/hybrid/data/ohlcv_M30.json"))["bars"]
    m5_data = json.load(open("/home/aryy/.hermes/profiles/finance/backtests/xauusd_2026/hybrid/data/ohlcv_M5.json"))["bars"]
    h4_data = json.load(open("/home/aryy/.hermes/profiles/finance/backtests/xauusd_2026/hybrid/data/ohlcv_H4.json"))["bars"]
    
    candidates = [
        ("candidate_2026-02-25T14-00-00Z_long_liquidity_sweep_reversal", "2026-02-25T14:00:00Z", "Long"),
        ("candidate_2026-02-25T15-30-00Z_long_liquidity_sweep_reversal", "2026-02-25T15:30:00Z", "Long"),
        ("candidate_2026-02-25T18-30-00Z_short_liquidity_sweep_reversal", "2026-02-25T18:30:00Z", "Short")
    ]
    
    results = []
    
    for cid, ts, d in candidates:
        print(f"\nAnalyzing: {cid} ({ts}) - {d}")
        
        # H4 context around timestamp
        ts_obj = datetime.strptime(ts, "%Y-%m-%dT%H:%M:%SZ")
        h4_idx = -1
        for i, v in enumerate(h4_data):
            v_ts = datetime.strptime(v['time'], "%Y-%m-%dT%H:%M:%SZ")
            if v_ts <= ts_obj:
                h4_idx = i
            else:
                break
                
        if h4_idx != -1:
            print(f"H4 Current: {h4_data[h4_idx]}")
            if h4_idx > 0: print(f"H4 Prev1: {h4_data[h4_idx-1]}")
        
        # M30 context around timestamp
        m30_idx = next((i for i, v in enumerate(m30_data) if v['time'] == ts), -1)
        if m30_idx != -1:
            print(f"M30 Current: {m30_data[m30_idx]}")
            if m30_idx > 0: print(f"M30 Prev1: {m30_data[m30_idx-1]}")
            if m30_idx > 1: print(f"M30 Prev2: {m30_data[m30_idx-2]}")
            if m30_idx > 2: print(f"M30 Prev3: {m30_data[m30_idx-3]}")
            if m30_idx < len(m30_data) - 1: print(f"M30 Next1: {m30_data[m30_idx+1]}")
            if m30_idx < len(m30_data) - 2: print(f"M30 Next2: {m30_data[m30_idx+2]}")
            if m30_idx < len(m30_data) - 3: print(f"M30 Next3: {m30_data[m30_idx+3]}")
        
        # M5 context around timestamp
        m5_idx = next((i for i, v in enumerate(m5_data) if v['time'] == ts), -1)
        if m5_idx != -1:
            print(f"M5 Current: {m5_data[m5_idx]}")
            if m5_idx > 0: print(f"M5 Prev1: {m5_data[m5_idx-1]}")
            if m5_idx > 1: print(f"M5 Prev2: {m5_data[m5_idx-2]}")
            if m5_idx > 2: print(f"M5 Prev3: {m5_data[m5_idx-3]}")
            if m5_idx < len(m5_data) - 1: print(f"M5 Next1: {m5_data[m5_idx+1]}")
            if m5_idx < len(m5_data) - 2: print(f"M5 Next2: {m5_data[m5_idx+2]}")
            if m5_idx < len(m5_data) - 3: print(f"M5 Next3: {m5_data[m5_idx+3]}")
            if m5_idx < len(m5_data) - 4: print(f"M5 Next4: {m5_data[m5_idx+4]}")
            if m5_idx < len(m5_data) - 5: print(f"M5 Next5: {m5_data[m5_idx+5]}")
            if m5_idx < len(m5_data) - 6: print(f"M5 Next6: {m5_data[m5_idx+6]}")
            if m5_idx < len(m5_data) - 12: print(f"M5 Next12: {m5_data[m5_idx+12]}")
            
        print("-" * 40)

if __name__ == "__main__":
    analyze()
