Files
gogo2/tests/test_enhanced_rl_fix.py
2025-06-25 11:42:12 +03:00

83 lines
3.0 KiB
Python

#!/usr/bin/env python3
"""
Test Enhanced RL Fix - Verify comprehensive state building and reward calculation
"""
import sys
from pathlib import Path
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))
def test_enhanced_orchestrator():
"""Test enhanced orchestrator methods"""
print("=== TESTING ENHANCED RL FIXES ===")
try:
from core.enhanced_orchestrator import EnhancedTradingOrchestrator
from core.data_provider import DataProvider
print("✓ Enhanced orchestrator imported successfully")
# Create orchestrator with enhanced RL enabled
dp = DataProvider()
eo = EnhancedTradingOrchestrator(
data_provider=dp,
enhanced_rl_training=True,
symbols=['ETH/USDT', 'BTC/USDT']
)
print("✓ Enhanced orchestrator created")
# Test method availability
methods = ['build_comprehensive_rl_state', 'calculate_enhanced_pivot_reward', '_get_symbol_correlation']
print("\nMethod availability:")
for method in methods:
available = hasattr(eo, method)
print(f" {method}: {'' if available else ''}")
# Test comprehensive state building
print("\nTesting comprehensive state building...")
state = eo.build_comprehensive_rl_state('ETH/USDT')
if state is not None:
print(f"✓ Comprehensive state built: {len(state)} features")
print(f" State type: {type(state)}")
print(f" State shape: {state.shape if hasattr(state, 'shape') else 'No shape'}")
else:
print("✗ Comprehensive state returned None")
# Debug why state is None
print("\nDEBUGGING STATE BUILDING...")
print(f" Williams enabled: {hasattr(eo, 'williams_enabled')}")
print(f" COB integration active: {hasattr(eo, 'cob_integration_active')}")
print(f" Enhanced RL training: {getattr(eo, 'enhanced_rl_training', 'Not set')}")
# Test enhanced reward calculation
print("\nTesting enhanced reward calculation...")
trade_decision = {
'action': 'BUY',
'confidence': 0.75,
'price': 2500.0,
'timestamp': '2023-01-01 00:00:00'
}
trade_outcome = {
'net_pnl': 50.0,
'exit_price': 2550.0,
'duration': '00:15:00'
}
market_data = {'symbol': 'ETH/USDT'}
try:
reward = eo.calculate_enhanced_pivot_reward(trade_decision, market_data, trade_outcome)
print(f"✓ Enhanced reward calculated: {reward}")
except Exception as e:
print(f"✗ Enhanced reward failed: {e}")
import traceback
traceback.print_exc()
print("\n=== TEST COMPLETE ===")
except Exception as e:
print(f"✗ Test failed: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
test_enhanced_orchestrator()