cleanup, cob ladder still broken

This commit is contained in:
Dobromir Popov
2025-07-07 01:07:48 +03:00
parent 97d9bc97ee
commit 9101448e78
75 changed files with 546 additions and 12123 deletions

View File

@ -13,6 +13,9 @@ import logging
from datetime import datetime
from typing import Dict, List, Any, Optional
import numpy as np
from utils.reward_calculator import RewardCalculator
import threading
import time
logger = logging.getLogger(__name__)
@ -21,8 +24,16 @@ class TrainingIntegration:
def __init__(self, orchestrator=None):
self.orchestrator = orchestrator
self.reward_calculator = RewardCalculator()
self.training_sessions = {}
self.min_confidence_threshold = 0.15 # Lowered from 0.3 for more aggressive training
self.training_active = False
self.trainer_thread = None
self.stop_event = threading.Event()
self.training_lock = threading.Lock()
self.last_training_time = 0.0 if orchestrator is None else time.time()
self.training_interval = 300 # 5 minutes between training sessions
self.min_data_points = 100 # Minimum data points required to trigger training
logger.info("TrainingIntegration initialized")
@ -347,46 +358,32 @@ class TrainingIntegration:
return False
def get_training_status(self) -> Dict[str, Any]:
"""Get current training integration status"""
"""Get current training status"""
try:
status = {
'orchestrator_available': self.orchestrator is not None,
'training_sessions': len(self.training_sessions),
'last_update': datetime.now().isoformat()
'active': self.training_active,
'last_training_time': self.last_training_time,
'training_sessions': self.training_sessions if self.training_sessions else {}
}
if self.orchestrator:
status['dqn_available'] = hasattr(self.orchestrator, 'dqn_agent') and self.orchestrator.dqn_agent is not None
status['cnn_available'] = hasattr(self.orchestrator, 'williams_cnn') and self.orchestrator.williams_cnn is not None
status['cob_available'] = hasattr(self.orchestrator, 'cob_integration') and self.orchestrator.cob_integration is not None
return status
except Exception as e:
logger.error(f"Error getting training status: {e}")
return {'error': str(e)}
return {}
def start_training_session(self, session_name: str, config: Dict[str, Any] = None) -> str:
"""Start a new training session"""
try:
session_id = f"{session_name}_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
session_data = {
'session_id': session_id,
'session_name': session_name,
'start_time': datetime.now().isoformat(),
'config': config or {},
self.training_sessions[session_id] = {
'name': session_name,
'start_time': datetime.now(),
'config': config if config else {},
'trades_processed': 0,
'successful_trainings': 0,
'failed_trainings': 0
'training_attempts': 0,
'successful_trainings': 0
}
self.training_sessions[session_id] = session_data
logger.info(f"Started training session: {session_id}")
return session_id
except Exception as e:
logger.error(f"Error starting training session: {e}")
return ""