83 lines
3.0 KiB
Python
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() |