Spaces:
Sleeping
Sleeping
File size: 705 Bytes
2106f78 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
from typing import Optional, Any
class SignalType(Enum):
BUY = "BUY"
SELL = "SELL"
HOLD = "HOLD"
@dataclass
class StrategySignal:
timestamp: datetime
symbol: str
signal_type: SignalType
price: float
quantity: Optional[float] = None
confidence: Optional[float] = None
metadata: Optional[dict] = None
def __post_init__(self):
if isinstance(self.timestamp, str):
self.timestamp = datetime.fromisoformat(self.timestamp.replace('Z', '+00:00'))
if isinstance(self.signal_type, str):
self.signal_type = SignalType[self.signal_type.upper()] |