Files
gogo2/PLACEHOLDERS_AND_MISSING_IMPLEMENTATIONS.md
Dobromir Popov 53ce4a355a wip
2025-12-08 17:38:31 +02:00

7.3 KiB

Placeholders and Missing Implementations Report

Generated: 2025-11-23
Purpose: Identify all TODO, placeholder, and missing implementations that violate "no synthetic data" policy


🔴 CRITICAL - Synthetic Data Violations

1. core/negative_case_trainer.py (Lines 396-397)

Issue: Uses np.random.uniform() for synthetic training improvements

session.loss_improvement = np.random.uniform(0.1, 0.5)  # 10-50% improvement
session.accuracy_improvement = np.random.uniform(0.05, 0.2)  # 5-20% improvement

Fix Required: Calculate actual improvements from real training metrics


🟡 HIGH PRIORITY - Missing Core Functionality

2. core/orchestrator.py (Line 2020)

Issue: _get_all_predictions() returns empty list - not implemented

async def _get_all_predictions(self, symbol: str) -> List[Prediction]:
    predictions = []
    # TODO: Implement proper prediction gathering from all registered models
    logger.warning(f"_get_all_predictions not fully implemented for {symbol}")
    return predictions

Impact: Orchestrator cannot gather predictions from all models for decision fusion Fix Required: Implement actual prediction gathering from registered models

3. ANNOTATE/core/real_training_adapter.py (Line 2339-2341)

Issue: Extrema training uses placeholder loss

# TODO: Implement actual extrema training
session.current_loss = 0.5 / (epoch + 1)  # Placeholder

Fix Required: Implement real extrema training logic

4. ANNOTATE/core/real_training_adapter.py (Line 1577)

Issue: Placeholder time_in_position_minutes

time_in_position_minutes = 1.0  # Placeholder, will be more accurate with actual timestamps

Fix Required: Calculate actual time from entry timestamp


🟢 MEDIUM PRIORITY - Missing Features

5. web/clean_dashboard.py (Lines 8759, 8768)

Issue: TODO for technical indicators and pivot points

def _get_technical_indicators(self, symbol: str) -> Dict[str, float]:
    # TODO: Implement technical indicators calculation
    return {}

def _get_pivot_points(self, symbol: str) -> List['PivotPoint']:
    # TODO: Implement pivot points calculation
    return []

Note: Pivot points ARE implemented elsewhere (Williams Market Structure), but not in this method Fix Required: Implement or delegate to existing pivot calculation

6. web/clean_dashboard.py (Line 8665)

Issue: TODO for cross-model predictions

last_predictions={}  # TODO: Add cross-model predictions

Fix Required: Gather predictions from all models (similar to orchestrator)

7. web/clean_dashboard.py (Line 8696)

Issue: TODO for technical indicators in bar data

indicators={}  # TODO: Add technical indicators

Fix Required: Calculate and include technical indicators

8. web/clean_dashboard.py (Line 9542)

Issue: Placeholder features array

'features': [current_price, 0, 0, 0, 0]  # Placeholder features

Fix Required: Extract real features from market data


🔵 LOW PRIORITY - Acceptable Placeholders

9. ANNOTATE/core/real_training_adapter.py (Line 1421)

Issue: Placeholder COB data (zeros)

# Create placeholder COB data (zeros if not available)
cob_data = torch.zeros(1, target_seq_len, 100, dtype=torch.float32)

Status: ACCEPTABLE - Returns zeros when COB data unavailable (not synthetic, just missing)

10. ANNOTATE/core/real_training_adapter.py (Lines 2746-2748)

Issue: Placeholder tech/market/COB data (zeros)

data['tech_data'] = torch.zeros(1, 40, dtype=torch.float32)
data['market_data'] = torch.zeros(1, 30, dtype=torch.float32)
data['cob_data'] = torch.zeros(1, 600, 100, dtype=torch.float32)

Status: ACCEPTABLE - Model requires these inputs, zeros are safe defaults when unavailable

11. ANNOTATE/core/real_training_adapter.py (Line 2887)

Issue: Placeholder action in annotation conversion

'action': 'BUY',  # Placeholder, not used for candle prediction training

Status: ACCEPTABLE - Comment indicates it's not used for this training path


⚠️ QUESTIONABLE - Needs Review

12. core/orchestrator.py (Lines 2098-2101)

Issue: Uses random.uniform() for tie-breaking

import random
for action in action_scores:
    # Add tiny random noise (±0.001) to break exact ties
    action_scores[action] += random.uniform(-0.001, 0.001)

Status: ⚠️ QUESTIONABLE - This is for tie-breaking, not synthetic data generation Recommendation: Consider deterministic tie-breaking (e.g., alphabetical order) instead


📋 Other TODOs Found

13. ANNOTATE/web/app.py (Lines 2745, 2850)

Issue: Hardcoded symbols

for symbol in ['ETH/USDT', 'BTC/USDT']:  # TODO: Get from active subscriptions
symbol = 'ETH/USDT'  # TODO: Get from active trading pair

Fix Required: Get from active subscriptions/trading pairs

14. ANNOTATE/web/static/js/chart_manager.js (Line 1193)

Issue: TODO for visual markers

# TODO: Add visual markers using Plotly annotations

Fix Required: Add visual markers if needed

15. ANNOTATE/web/templates/components/inference_panel.html (Line 259)

Issue: TODO for Plotly chart update

// TODO: Update Plotly chart with prediction marker

Fix Required: Implement prediction marker update

16. ANNOTATE/core/data_loader.py (Line 434)

Issue: MEXC time range fetch not implemented

logger.warning("MEXC time range fetch not implemented yet")

Fix Required: Implement MEXC time range fetch or remove if not needed

17. core/multi_horizon_prediction_manager.py (Lines 690-713)

Issue: Placeholder methods for CNN/RL feature preparation

def _prepare_cnn_features_for_horizon(...) -> np.ndarray:
    """Prepare CNN features for specific horizon (placeholder - not yet implemented)"""
    return np.array([])  # Return empty array instead of synthetic data

def _prepare_rl_state_for_horizon(...) -> np.ndarray:
    """Prepare RL state for specific horizon (placeholder - not yet implemented)"""
    return np.array([])  # Return empty array instead of synthetic data

Status: ACCEPTABLE - Returns empty arrays (not synthetic data), methods not yet needed


📊 Summary

By Priority:

  • 🔴 Critical (Synthetic Data): 1 issue
  • 🟡 High Priority (Missing Core): 3 issues
  • 🟢 Medium Priority (Missing Features): 4 issues
  • 🔵 Low Priority (Acceptable): 3 issues
  • ⚠️ Questionable: 1 issue
  • 📋 Other TODOs: 5 issues

Total Issues Found: 17


  1. Fix synthetic data violation (negative_case_trainer.py) - URGENT
  2. Implement _get_all_predictions() (orchestrator.py) - HIGH
  3. Implement extrema training (real_training_adapter.py) - HIGH
  4. Fix time_in_position calculation (real_training_adapter.py) - MEDIUM
  5. Implement technical indicators (clean_dashboard.py) - MEDIUM
  6. Review tie-breaking logic (orchestrator.py) - LOW

Already Fixed

  • _get_live_prediction() - Now uses real model inference with caching
  • Ghost candles - Now includes predicted_candle in predictions
  • JSON serialization - Fixed tensor serialization errors