150 lines
5.5 KiB
Python
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() |