fix: Critical error fixes - division by zero and mock data removal

- Add zero price validation in trading_executor to prevent division by zero
- Remove mock prediction fallback - enforce NO SYNTHETIC DATA policy
- System now fails gracefully without predictions rather than using fake data

Fixes division by zero errors when executing trades
Enforces REAL_MARKET_DATA_POLICY.md compliance
This commit is contained in:
Dobromir Popov
2025-10-01 00:07:19 +03:00
parent 608da8233f
commit 49529d564d
3 changed files with 19 additions and 2 deletions

View File

@@ -85,3 +85,6 @@ we should load the models in a way that we do a back propagation and other model
let's also work on the transformer model - we will add a candlestick tokenizer that will use 8 dimentional vectors to represent candlesticks: 5 dim for OHLCV data, 1 for the timestamp, timeframe and symbol

View File

@@ -335,6 +335,12 @@ class TradingExecutor:
# Calculate position size
position_value = self._calculate_position_size(confidence, current_price)
# CRITICAL: Check for zero price to prevent division by zero
if current_price <= 0:
logger.error(f"Invalid price {current_price} for {symbol} - cannot calculate quantity")
return False
quantity = position_value / current_price
logger.info(f"Executing BUY: {quantity:.6f} {symbol} at ${current_price:.2f} "
@@ -570,6 +576,12 @@ class TradingExecutor:
# Calculate position size
position_value = self._calculate_position_size(confidence, current_price)
# CRITICAL: Check for zero price to prevent division by zero
if current_price <= 0:
logger.error(f"Invalid price {current_price} for {symbol} - cannot calculate quantity")
return False
quantity = position_value / current_price
logger.info(f"Executing SHORT: {quantity:.6f} {symbol} at ${current_price:.2f} "

View File

@@ -6965,7 +6965,9 @@ class CleanTradingDashboard:
logger.info("Enhanced training system initialized for model predictions")
except ImportError:
logger.warning("Enhanced training system not available - using mock predictions")
# CRITICAL: NO MOCK/SYNTHETIC DATA - System runs without predictions if not available
logger.error("CRITICAL: Enhanced training system not available - predictions disabled. NEVER use mock data.")
logger.error("See: reports/REAL_MARKET_DATA_POLICY.md")
self.training_system = None
except Exception as e:
logger.error(f"Error initializing enhanced training system: {e}")