merge annotate /ANNOTATE/core into /core.

fix chart updates
This commit is contained in:
Dobromir Popov
2025-12-10 14:07:14 +02:00
parent e0d0471e8a
commit bfaba556ea
23 changed files with 1074 additions and 1214 deletions

View File

@@ -758,4 +758,62 @@ def create_model_output(model_type: str, model_name: str, symbol: str,
predictions=predictions,
hidden_states=hidden_states or {},
metadata=metadata or {}
)
)
class InferenceFrameReference:
"""
Reference to inference data stored in DuckDB with human-readable prediction outputs.
No copying - just store timestamp ranges and query when needed.
Moved from ANNOTATE/core to main core for unified architecture.
"""
inference_id: str # Unique ID for this inference
symbol: str
timeframe: str
prediction_timestamp: datetime # When prediction was made
target_timestamp: Optional[datetime] = None # When result will be available (for candles)
# Reference to data in DuckDB (timestamp range)
data_range_start: datetime # Start of 600-candle window
data_range_end: datetime # End of 600-candle window
# Normalization parameters (small, can be stored)
norm_params: Dict[str, Dict[str, float]] = field(default_factory=dict)
# ENHANCED: Human-readable prediction outputs
predicted_action: Optional[str] = None # 'BUY', 'SELL', 'HOLD'
predicted_candle: Optional[Dict[str, List[float]]] = None # {timeframe: [O,H,L,C,V]}
predicted_price: Optional[float] = None # Main predicted price
confidence: float = 0.0
# Model metadata for decision making
model_type: str = 'transformer' # 'transformer', 'cnn', 'dqn'
prediction_steps: int = 1 # Number of steps predicted ahead
# Training status
trained: bool = False
training_timestamp: Optional[datetime] = None
training_loss: Optional[float] = None
training_accuracy: Optional[float] = None
# Actual results (filled when candle completes)
actual_candle: Optional[List[float]] = None # [O,H,L,C,V]
actual_price: Optional[float] = None
prediction_error: Optional[float] = None # |predicted - actual|
direction_correct: Optional[bool] = None # Did we predict direction correctly?
@dataclass
class TrainingSession:
"""Real training session tracking - moved from ANNOTATE/core"""
training_id: str
symbol: str
timeframe: str
model_type: str
start_time: datetime
end_time: Optional[datetime] = None
status: str = 'running' # 'running', 'completed', 'failed'
loss: Optional[float] = None
accuracy: Optional[float] = None
samples_trained: int = 0
error_message: Optional[str] = None