gogo2/test_enhanced_rl_status.py
2025-05-30 17:14:06 +03:00

150 lines
5.5 KiB
Python

#!/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()