mirror of
https://github.com/QuantEngines/fx_quant_engine.git
synced 2026-07-28 10:57:44 +00:00
79 lines
1.6 KiB
Python
79 lines
1.6 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from dataclasses import asdict, dataclass, field
|
||
|
|
from datetime import datetime, timezone
|
||
|
|
from typing import Any
|
||
|
|
|
||
|
|
import pandas as pd
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class DataFetchResult:
|
||
|
|
data: pd.DataFrame
|
||
|
|
source: str
|
||
|
|
reliability: str
|
||
|
|
latency_ms: int
|
||
|
|
success: bool = True
|
||
|
|
error: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class RegimeState:
|
||
|
|
trend: str
|
||
|
|
volatility: str
|
||
|
|
dollar: str
|
||
|
|
risk: str
|
||
|
|
combined: str
|
||
|
|
stability: float
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class SignalPayload:
|
||
|
|
engine: str
|
||
|
|
timestamp: str
|
||
|
|
asset: str
|
||
|
|
signal_type: str
|
||
|
|
signal_direction: str
|
||
|
|
signal_strength: float
|
||
|
|
confidence: float
|
||
|
|
regime: dict[str, Any]
|
||
|
|
expected_volatility: float
|
||
|
|
risk_flags: list[str]
|
||
|
|
drivers: dict[str, Any]
|
||
|
|
recommended_action: str
|
||
|
|
position_sizing_multiplier: float
|
||
|
|
|
||
|
|
def to_dict(self) -> dict[str, Any]:
|
||
|
|
return asdict(self)
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class EvaluationReport:
|
||
|
|
generated_at: str
|
||
|
|
hit_rate: float
|
||
|
|
avg_forward_return: float
|
||
|
|
regime_performance: dict[str, float]
|
||
|
|
signal_decay: dict[str, float]
|
||
|
|
feature_importance: dict[str, float]
|
||
|
|
drift_flags: list[str]
|
||
|
|
calibration_score: float
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class BacktestResult:
|
||
|
|
pair_level_returns: dict[str, float]
|
||
|
|
portfolio_return: float
|
||
|
|
max_drawdown: float
|
||
|
|
turnover: float
|
||
|
|
metrics: dict[str, float]
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class SourceUsageRecord:
|
||
|
|
asset: str
|
||
|
|
source: str
|
||
|
|
usage_type: str
|
||
|
|
timestamp: str = field(default_factory=lambda: datetime.now(timezone.utc).isoformat())
|
||
|
|
success: bool = True
|
||
|
|
error: str | None = None
|