#!/usr/bin/env python3 """ Detaillierte Diagnose: Warum keine Trades seit 10. Dezember? """ import sqlite3 from datetime import datetime DB_PATH = "trading_bot.db" def detailed_diagnosis(): print("=" * 80) print("🔍 DETAILLIERTE DIAGNOSE: KEINE TRADES SEIT 10. DEZEMBER") print("=" * 80) conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() # Timeline print("\n📅 TIMELINE:") print("-" * 80) cursor.execute(""" SELECT DATE(entry_time) as day, COUNT(*) as trades, SUM(CASE WHEN net_profit < 0 THEN 1 ELSE 0 END) as losses, SUM(net_profit) as profit FROM trades WHERE entry_time >= '2025-12-01' GROUP BY DATE(entry_time) ORDER BY day """) timeline = cursor.fetchall() for row in timeline: status = "🔴" if row[2] == row[1] else "🟢" if row[3] > 0 else "🟡" print(f"{status} {row[0]}: {row[1]:2d} trades ({row[2]:2d} losses) | Profit: {row[3]:7.2f}") # What happened print("\n" + "=" * 80) print("📊 WAS IST PASSIERT?") print("=" * 80) cursor.execute(""" SELECT COUNT(*) FROM trades WHERE entry_time >= '2025-12-01' AND entry_time < '2025-12-10' AND net_profit < 0 """) losses_before_reset = cursor.fetchone()[0] cursor.execute(""" SELECT COUNT(*) FROM trades WHERE entry_time >= '2025-12-01' AND entry_time < '2025-12-10' AND exit_reason = 'manual_close' """) manual_closes = cursor.fetchone()[0] print(f"\n1. DEZEMBER 1-9:") print(f" - {losses_before_reset} Verlust-Trades") print(f" - {manual_closes} davon waren 'manual_close'") print(f" - Alle Trades: -33.90 (exakt gleicher Verlust)") print(f" ⚠️ DAS IST UNGEWÖHNLICH!") print(f"\n2. DEZEMBER 10:") print(f" - Sie haben 'reset_consecutive_losses.py' ausgeführt") print(f" - Künstlicher +1.00 Trade erstellt") print(f" - Consecutive Loss Counter wurde zurückgesetzt") print(f"\n3. SEIT DEZEMBER 10:") print(f" - 🚨 KEINE TRADES MEHR!") print(f" - Bot läuft angeblich weiter") print(f" - Aber execute_trade wird nicht ausgelöst") # Possible reasons print("\n" + "=" * 80) print("🤔 MÖGLICHE URSACHEN") print("=" * 80) print("\n1️⃣ RANGING FILTER (am wahrscheinlichsten)") print(" - Filter wurde am 9. Dezember hinzugefügt") print(" - Blockiert Trades wenn ADX < 25") print(" - Markt könnte seit 10 Tagen im Ranging sein") print(" ✅ Das wäre NORMAL und GEWOLLT!") print("\n2️⃣ SCHEDULER PROBLEM") print(" - Scheduler läuft nicht") print(" - adaptive_trading_check() wird nicht aufgerufen") print(" - Jupyter Kernel ist abgestürzt") print(" ❌ Das wäre ein FEHLER!") print("\n3️⃣ DRAWDOWN PROTECTION BUG") print(" - Reset hat nicht funktioniert") print(" - Bot denkt immer noch, Limit ist erreicht") print(" - Cooldown läuft noch") print(" ❌ Das wäre ein BUG!") print("\n4️⃣ CONFIDENCE/FILTER ZU STRENG") print(" - Alle Signale unter 70% Confidence") print(" - ATR zu klein") print(" - Kein klarer Trend erkannt") print(" ⚠️ Möglich, aber 10 Tage ist lang!") # Action items print("\n" + "=" * 80) print("🎯 DIAGNOSESCHRITTE") print("=" * 80) print("\n📋 Bitte führen Sie folgendes im Notebook aus:") print("\n1. Prüfen Sie ob Scheduler läuft:") print(" >>> scheduler.get_jobs()") print(" Erwartung: 5-6 Jobs sichtbar") print(" Falls LEER → Scheduler ist gestoppt! Neu starten!") print("\n2. Prüfen Sie Market Regime:") print(" >>> show_current_regime()") print(" Erwartung: Zeigt ob RANGING oder TRENDING") print(" Falls RANGING + ADX < 25 → Erklärt keine Trades!") print("\n3. Prüfen Sie letzte Trading-Check Ausgabe:") print(" Scrollen Sie im Notebook nach unten") print(" Suchen Sie nach:") print(" - '🛑 TRADE BLOCKIERT: Ranging Market!' (gut)") print(" - '✅ REGIME CHECK PASSED' (sollte Trades auslösen)") print(" - 'POSITION CHECK' (zeigt dass Funktion läuft)") print("\n4. Manueller Test:") print(" >>> execute_trade_v2_adaptive()") print(" Führt einen manuellen Trading-Check aus") print(" Zeigt die GENAUE Blockierungsursache!") print("\n5. Prüfen Sie welche Funktion aktiv ist:") print(" >>> print(execute_trade_v2_adaptive)") print(" Erwartung: 'execute_trade_v2_adaptive_with_ranging_filter'") print(" Falls NICHT → Ranging Filter ist nicht aktiv!") # Summary print("\n" + "=" * 80) print("💡 WAHRSCHEINLICHSTE URSACHE") print("=" * 80) print("\n🎯 RANGING MARKET (70% Wahrscheinlichkeit)") print(" - Der Filter macht seinen Job!") print(" - Gold ist seit 10 Tagen im Ranging") print(" - Bot wartet auf klaren Trend (ADX > 25)") print(" - DAS IST GUT! Schützt vor Verlusten!") print("\n⚠️ 10 Tage ohne Trade ist aber SEHR lang") print(" → Bitte führen Sie die Diagnoseschritte aus") print(" → Dann wissen wir, ob es wirklich nur Ranging ist") print(" → Oder ob ein technisches Problem vorliegt") print("\n" + "=" * 80) conn.close() if __name__ == "__main__": detailed_diagnosis()