#!/usr/bin/env python3 """ Enhanced RL Status Diagnostic Script Quick test to determine why Enhanced RL shows as DISABLED """ import logging import sys logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) def test_enhanced_rl_imports(): """Test Enhanced RL component imports""" logger.info("🔍 Testing Enhanced RL component imports...") try: from core.enhanced_orchestrator import EnhancedTradingOrchestrator logger.info("✅ EnhancedTradingOrchestrator import: SUCCESS") except ImportError as e: logger.error(f"❌ EnhancedTradingOrchestrator import: FAILED - {e}") return False try: from core.universal_data_adapter import UniversalDataAdapter logger.info("✅ UniversalDataAdapter import: SUCCESS") except ImportError as e: logger.error(f"❌ UniversalDataAdapter import: FAILED - {e}") return False try: from core.unified_data_stream import UnifiedDataStream, TrainingDataPacket, UIDataPacket logger.info("✅ UnifiedDataStream components import: SUCCESS") except ImportError as e: logger.error(f"❌ UnifiedDataStream components import: FAILED - {e}") return False return True def test_dashboard_enhanced_rl_detection(): """Test dashboard Enhanced RL detection logic""" logger.info("🔍 Testing dashboard Enhanced RL detection...") try: from core.data_provider import DataProvider from core.enhanced_orchestrator import EnhancedTradingOrchestrator from web.dashboard import ENHANCED_RL_AVAILABLE logger.info(f"ENHANCED_RL_AVAILABLE in dashboard: {ENHANCED_RL_AVAILABLE}") # Test orchestrator creation data_provider = DataProvider() orchestrator = EnhancedTradingOrchestrator(data_provider) logger.info(f"EnhancedTradingOrchestrator created: {type(orchestrator)}") logger.info(f"isinstance check: {isinstance(orchestrator, EnhancedTradingOrchestrator)}") # Test dashboard creation from web.dashboard import TradingDashboard dashboard = TradingDashboard( data_provider=data_provider, orchestrator=orchestrator ) logger.info(f"Dashboard enhanced_rl_enabled: {dashboard.enhanced_rl_enabled}") logger.info(f"Dashboard enhanced_rl_training_enabled: {dashboard.enhanced_rl_training_enabled}") return dashboard.enhanced_rl_training_enabled except Exception as e: logger.error(f"❌ Dashboard Enhanced RL test FAILED: {e}") import traceback logger.error(traceback.format_exc()) return False def test_main_clean_enhanced_rl(): """Test main_clean.py Enhanced RL setup""" logger.info("🔍 Testing main_clean.py Enhanced RL setup...") try: # Import required components from core.data_provider import DataProvider from core.enhanced_orchestrator import EnhancedTradingOrchestrator from config import get_config # Simulate main_clean setup config = get_config() data_provider = DataProvider() # Create Enhanced Trading Orchestrator model_registry = {} # Simple fallback orchestrator = EnhancedTradingOrchestrator(data_provider) logger.info(f"Enhanced orchestrator created: {type(orchestrator)}") # Create dashboard from web.dashboard import TradingDashboard dashboard = TradingDashboard( data_provider=data_provider, orchestrator=orchestrator, trading_executor=None ) logger.info(f"✅ Enhanced RL Status: {'ENABLED' if dashboard.enhanced_rl_training_enabled else 'DISABLED'}") if dashboard.enhanced_rl_training_enabled: logger.info("🎉 Enhanced RL is working correctly!") return True else: logger.error("❌ Enhanced RL is DISABLED even with correct setup") return False except Exception as e: logger.error(f"❌ main_clean Enhanced RL test FAILED: {e}") import traceback logger.error(traceback.format_exc()) return False def main(): """Run all diagnostic tests""" logger.info("🚀 Enhanced RL Status Diagnostic Starting...") logger.info("=" * 60) # Test 1: Component imports imports_ok = test_enhanced_rl_imports() # Test 2: Dashboard detection logic dashboard_ok = test_dashboard_enhanced_rl_detection() # Test 3: Full main_clean simulation main_clean_ok = test_main_clean_enhanced_rl() # Summary logger.info("=" * 60) logger.info("📋 DIAGNOSTIC SUMMARY") logger.info("=" * 60) logger.info(f"Enhanced RL Imports: {'✅ PASS' if imports_ok else '❌ FAIL'}") logger.info(f"Dashboard Detection: {'✅ PASS' if dashboard_ok else '❌ FAIL'}") logger.info(f"Main Clean Setup: {'✅ PASS' if main_clean_ok else '❌ FAIL'}") if all([imports_ok, dashboard_ok, main_clean_ok]): logger.info("🎉 ALL TESTS PASSED - Enhanced RL should be working!") logger.info("💡 If dashboard still shows DISABLED, restart it with:") logger.info(" python main_clean.py --mode web --port 8050") else: logger.error("❌ TESTS FAILED - Enhanced RL has issues") logger.info("💡 Check the error messages above for specific issues") if __name__ == "__main__": main()