more design
This commit is contained in:
@ -162,6 +162,18 @@ The Orchestrator subscribes to the Data Provider and manages multiple data strea
|
|||||||
- Maintains full base dataframe that stays current for any model requesting data
|
- Maintains full base dataframe that stays current for any model requesting data
|
||||||
- Handles data synchronization across different refresh rates
|
- Handles data synchronization across different refresh rates
|
||||||
|
|
||||||
|
**Enhanced 1s Timeseries Data Combination**:
|
||||||
|
- Combines OHLCV data with COB (Cumulative Order Book) data for 1s timeframes
|
||||||
|
- Implements price bucket aggregation: ±20 buckets around current price
|
||||||
|
- ETH: $1 bucket size (e.g., $3000-$3040 range = 40 buckets) when current price is 3020
|
||||||
|
- BTC: $10 bucket size (e.g., $50000-$50400 range = 40 buckets) when price is 50200
|
||||||
|
- Creates unified base data input that includes:
|
||||||
|
- Traditional OHLCV metrics (Open, High, Low, Close, Volume)
|
||||||
|
- Order book depth and liquidity at each price level
|
||||||
|
- Bid/ask imbalances for the +-5 buckets with Moving Averages for 5,15, and 60s
|
||||||
|
- Volume-weighted average prices within buckets
|
||||||
|
- Order flow dynamics and market microstructure data
|
||||||
|
|
||||||
##### 2. Model Inference Coordination
|
##### 2. Model Inference Coordination
|
||||||
|
|
||||||
The Orchestrator coordinates inference across all models in the system:
|
The Orchestrator coordinates inference across all models in the system:
|
||||||
@ -185,14 +197,18 @@ The Orchestrator maintains a centralized store for all model outputs and manages
|
|||||||
**Output Storage**:
|
**Output Storage**:
|
||||||
- Stores CNN predictions, confidence scores, and hidden layer states
|
- Stores CNN predictions, confidence scores, and hidden layer states
|
||||||
- Stores RL action recommendations and value estimates
|
- Stores RL action recommendations and value estimates
|
||||||
|
- Stores outputs from all models in extensible format supporting future models (LSTM, Transformer, etc.)
|
||||||
- Maintains historical output sequences for temporal analysis
|
- Maintains historical output sequences for temporal analysis
|
||||||
- Implements efficient retrieval mechanisms for real-time access
|
- Implements efficient retrieval mechanisms for real-time access
|
||||||
|
- Uses standardized ModelOutput format for easy extension and cross-model compatibility
|
||||||
|
|
||||||
**Cross-Model Feeding**:
|
**Cross-Model Feeding**:
|
||||||
- Feeds CNN hidden layer states into RL model inputs
|
- Feeds CNN hidden layer states into RL model inputs
|
||||||
- Provides CNN predictions as context for RL decision-making
|
- Provides CNN predictions as context for RL decision-making
|
||||||
|
- Includes "last predictions" from each available model as part of base data input
|
||||||
- Stores model outputs that become inputs for subsequent inference cycles
|
- Stores model outputs that become inputs for subsequent inference cycles
|
||||||
- Manages circular dependencies and feedback loops between models
|
- Manages circular dependencies and feedback loops between models
|
||||||
|
- Supports dynamic model addition without requiring system architecture changes
|
||||||
|
|
||||||
##### 4. Training Pipeline Management
|
##### 4. Training Pipeline Management
|
||||||
|
|
||||||
@ -412,6 +428,20 @@ class TradingAction:
|
|||||||
|
|
||||||
### Model Predictions
|
### Model Predictions
|
||||||
|
|
||||||
|
```python
|
||||||
|
@dataclass
|
||||||
|
class ModelOutput:
|
||||||
|
"""Extensible model output format supporting all model types"""
|
||||||
|
model_type: str # 'cnn', 'rl', 'lstm', 'transformer', 'orchestrator'
|
||||||
|
model_name: str # Specific model identifier
|
||||||
|
symbol: str
|
||||||
|
timestamp: datetime
|
||||||
|
confidence: float
|
||||||
|
predictions: Dict[str, Any] # Model-specific predictions
|
||||||
|
hidden_states: Optional[Dict[str, Any]] = None # For cross-model feeding
|
||||||
|
metadata: Dict[str, Any] = field(default_factory=dict) # Additional info
|
||||||
|
```
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@dataclass
|
@dataclass
|
||||||
class CNNPrediction:
|
class CNNPrediction:
|
||||||
@ -432,7 +462,37 @@ class RLPrediction:
|
|||||||
expected_reward: float
|
expected_reward: float
|
||||||
```
|
```
|
||||||
|
|
||||||
## Error Handling
|
### Enhanced Base Data Input
|
||||||
|
|
||||||
|
```python
|
||||||
|
@dataclass
|
||||||
|
class BaseDataInput:
|
||||||
|
"""Unified base data input for all models"""
|
||||||
|
symbol: str
|
||||||
|
timestamp: datetime
|
||||||
|
ohlcv_data: Dict[str, OHLCVBar] # Multi-timeframe OHLCV
|
||||||
|
cob_data: Optional[Dict[str, float]] = None # COB buckets for 1s timeframe
|
||||||
|
technical_indicators: Dict[str, float] = field(default_factory=dict)
|
||||||
|
pivot_points: List[PivotPoint] = field(default_factory=list)
|
||||||
|
last_predictions: Dict[str, ModelOutput] = field(default_factory=dict) # From all models
|
||||||
|
market_microstructure: Dict[str, Any] = field(default_factory=dict) # Order flow, etc.
|
||||||
|
```
|
||||||
|
|
||||||
|
### COB Data Structure
|
||||||
|
|
||||||
|
```python
|
||||||
|
@dataclass
|
||||||
|
class COBData:
|
||||||
|
"""Cumulative Order Book data for price buckets"""
|
||||||
|
symbol: str
|
||||||
|
timestamp: datetime
|
||||||
|
current_price: float
|
||||||
|
bucket_size: float # $1 for ETH, $10 for BTC
|
||||||
|
price_buckets: Dict[float, Dict[str, float]] # price -> {bid_volume, ask_volume, etc.}
|
||||||
|
bid_ask_imbalance: Dict[float, float] # price -> imbalance ratio
|
||||||
|
volume_weighted_prices: Dict[float, float] # price -> VWAP within bucket
|
||||||
|
order_flow_metrics: Dict[str, float] # Various order flow indicators
|
||||||
|
```
|
||||||
|
|
||||||
### Data Collection Errors
|
### Data Collection Errors
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user