ProfilingAI / src /core /technical_indicators.py
Sandrine Guétin
Version propre de DeepVest
2106f78
raw
history blame
1.66 kB
from dataclasses import dataclass, field
from typing import Tuple, Dict
@dataclass
class TechnicalIndicators:
"""Container for technical indicators"""
rsi: float = 50.0
macd: Tuple[float, float] = (0.0, 0.0) # (MACD, Signal)
bollinger: Tuple[float, float, float] = (0.0, 0.0, 0.0) # (Upper, Middle, Lower)
moving_averages: Dict[str, float] = field(default_factory=lambda: {
'MA_20': 0.0,
'MA_50': 0.0,
'MA_200': 0.0
})
volume_profile: Dict[str, float] = field(default_factory=lambda: {
'vwap': 0.0,
'volume_ma': 0.0
})
momentum_indicators: Dict[str, float] = field(default_factory=lambda: {
'ROC': 0.0,
'ADX': 50.0
})
@classmethod
def get_default(cls) -> 'TechnicalIndicators':
"""Get default technical indicators"""
return cls()
# Optional: methods for calculation if needed in the future
def calculate_rsi(self, price):
# Placeholder for RSI calculation
return 50.0
def calculate_macd(self, price):
# Placeholder for MACD calculation
return (0.0, 0.0)
def calculate_bollinger_bands(self, price):
# Placeholder for Bollinger Bands calculation
return (0.0, 0.0, 0.0)
def calculate_moving_averages(self, price):
# Placeholder for moving averages calculation
return {
'MA_20': 0.0,
'MA_50': 0.0,
'MA_200': 0.0
}
def calculate_momentum_indicators(self, price):
# Placeholder for momentum indicators calculation
return {
'ROC': 0.0,
'ADX': 50.0
}