store and show (wip) predictions

This commit is contained in:
Dobromir Popov
2025-11-19 10:38:16 +02:00
parent 2d1d036c07
commit 8ee8558829
2 changed files with 144 additions and 0 deletions

View File

@@ -372,6 +372,9 @@ class TradingOrchestrator:
self.recent_cnn_predictions: Dict[str, deque] = (
{}
) # {symbol: List[Dict]} - Recent CNN predictions
self.recent_transformer_predictions: Dict[str, deque] = (
{}
) # {symbol: List[Dict]} - Recent Transformer predictions
self.prediction_accuracy_history: Dict[str, deque] = (
{}
) # {symbol: List[Dict]} - Prediction accuracy tracking
@@ -379,6 +382,7 @@ class TradingOrchestrator:
# Initialize prediction tracking for the primary trading symbol only
self.recent_dqn_predictions[self.symbol] = deque(maxlen=100)
self.recent_cnn_predictions[self.symbol] = deque(maxlen=50)
self.recent_transformer_predictions[self.symbol] = deque(maxlen=50)
self.prediction_accuracy_history[self.symbol] = deque(maxlen=200)
self.signal_accumulator[self.symbol] = []
@@ -1109,6 +1113,8 @@ class TradingOrchestrator:
self.recent_dqn_predictions[symbol].clear()
for symbol in self.recent_cnn_predictions:
self.recent_cnn_predictions[symbol].clear()
for symbol in self.recent_transformer_predictions:
self.recent_transformer_predictions[symbol].clear()
for symbol in self.prediction_accuracy_history:
self.prediction_accuracy_history[symbol].clear()
@@ -2518,6 +2524,9 @@ class TradingOrchestrator:
"cnn_predictions_tracked": sum(
len(preds) for preds in self.recent_cnn_predictions.values()
),
"transformer_predictions_tracked": sum(
len(preds) for preds in self.recent_transformer_predictions.values()
),
"accuracy_history_tracked": sum(
len(history)
for history in self.prediction_accuracy_history.values()
@@ -2527,6 +2536,7 @@ class TradingOrchestrator:
for symbol in self.symbols
if len(self.recent_dqn_predictions.get(symbol, [])) > 0
or len(self.recent_cnn_predictions.get(symbol, [])) > 0
or len(self.recent_transformer_predictions.get(symbol, [])) > 0
],
}
@@ -2791,4 +2801,19 @@ class TradingOrchestrator:
"""Set the trading executor for position tracking"""
self.trading_executor = trading_executor
logger.info("Trading executor set for position tracking and P&L feedback")
def store_transformer_prediction(self, symbol: str, prediction: Dict):
"""Store a transformer prediction for visualization and tracking"""
try:
if symbol not in self.recent_transformer_predictions:
self.recent_transformer_predictions[symbol] = deque(maxlen=50)
# Add timestamp if not present
if 'timestamp' not in prediction:
prediction['timestamp'] = datetime.now()
self.recent_transformer_predictions[symbol].append(prediction)
logger.debug(f"Stored transformer prediction for {symbol}: {prediction.get('action', 'N/A')}")
except Exception as e:
logger.error(f"Error storing transformer prediction: {e}")