#!/usr/bin/env python3
"""
Analyze stale price levels in signals.
"""

import json
from pathlib import Path
from datetime import datetime

# Load signals
signals_file = Path("/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/data/signals_binance.json")
with open(signals_file, 'r') as f:
    data = json.load(f)

signals = data['signals']

print("="*80)
print("STALE PRICE ANALYSIS")
print("="*80)

# Current price range (from recent data)
current_price_min = 4550
current_price_max = 4570

print(f"\n📊 Current Price Range: ${current_price_min}-${current_price_max}")

# Find stale signals
stale_signals = []
valid_signals = []

for signal in signals:
    entry_price = signal['entry_price']

    # Check if price is within current range ± 20 points
    if current_price_min - 20 <= entry_price <= current_price_max + 20:
        valid_signals.append(signal)
    else:
        stale_signals.append(signal)

print(f"\n✅ Valid Signals (near current price): {len(valid_signals)}")
print(f"❌ Stale Signals (far from current price): {len(stale_signals)}")

if stale_signals:
    print(f"\n🔍 Stale Signal Examples:")
    print("-"*80)

    # Show top 10 stale signals
    for i, signal in enumerate(stale_signals[:10], 1):
        distance = abs(signal['entry_price'] - current_price_min)
        print(f"\n{i}. {signal['type']} - {signal['direction'].upper()}")
        print(f"   Entry: ${signal['entry_price']}")
        print(f"   Distance from current price: ${distance:.2f}")
        print(f"   Reason: {signal['reason']}")

# Show valid signals
print("\n" + "="*80)
print(f"✅ VALID SIGNALS (Tradeable)")
print("="*80)

if valid_signals:
    for i, signal in enumerate(valid_signals[:20], 1):
        print(f"\n{i}. {signal['type']} - {signal['direction'].upper()}")
        print(f"   Entry: ${signal['entry_price']}, Target: ${signal['target_price']}, Stop: ${signal['stop_price']}")
        print(f"   Confidence: {signal['confidence']}, R:R: {signal['risk_reward']}")
        print(f"   Reason: {signal['reason']}")
else:
    print("\nNo valid signals found!")

print("\n" + "="*80)
print("CONCLUSION:")
print("="*80)
print(f"❌ {len(stale_signals)} signals are STALE (old prices, don't trade)")
print(f"✅ {len(valid_signals)} signals are VALID (near current price)")
print("\n📌 FIX NEEDED:")
print("   1. Filter out prices far from current market")
print("   2. Only show signals within ±$20 of current price")
print("   3. Add 'last_seen' timestamp to price levels")
print("="*80)
