feat: add market data architecture and complete migration through build 039
This commit is contained in:
65
app/src/trading/decision/rules.py
Normal file
65
app/src/trading/decision/rules.py
Normal file
@@ -0,0 +1,65 @@
|
||||
# app/src/trading/decision/rules.py
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from src.trading.market_intelligence.common.enums import EngineStatus
|
||||
from src.trading.market_intelligence.common.models import CoordinatorResult
|
||||
from src.trading.decision.models import (
|
||||
TradingDecision,
|
||||
TradingDiagnostics,
|
||||
TradingEvaluationMeta,
|
||||
)
|
||||
from src.trading.market_intelligence.common.reasons import ReasonCode
|
||||
from src.trading.market_intelligence.common.scores import (
|
||||
EngineConfidence,
|
||||
EngineScore,
|
||||
)
|
||||
|
||||
|
||||
class TradingRules:
|
||||
"""Правила формирования торгового решения."""
|
||||
|
||||
def decide(
|
||||
self,
|
||||
coordinator_result: CoordinatorResult,
|
||||
) -> TradingDecision:
|
||||
"""Сформировать TradingDecision."""
|
||||
return TradingDecision(
|
||||
coordinator_result=coordinator_result,
|
||||
diagnostics=TradingDiagnostics(),
|
||||
meta=TradingEvaluationMeta(
|
||||
trading_version="1.0",
|
||||
),
|
||||
status=self._resolve_status(coordinator_result),
|
||||
score=self._resolve_score(coordinator_result),
|
||||
confidence=self._resolve_confidence(coordinator_result),
|
||||
reason=self._resolve_reason(coordinator_result),
|
||||
)
|
||||
|
||||
def _resolve_status(
|
||||
self,
|
||||
coordinator_result: CoordinatorResult,
|
||||
) -> EngineStatus:
|
||||
"""Определить итоговый статус Trading."""
|
||||
return coordinator_result.status
|
||||
|
||||
def _resolve_score(
|
||||
self,
|
||||
coordinator_result: CoordinatorResult,
|
||||
) -> EngineScore:
|
||||
"""Вычислить итоговый Score."""
|
||||
return EngineScore()
|
||||
|
||||
def _resolve_confidence(
|
||||
self,
|
||||
coordinator_result: CoordinatorResult,
|
||||
) -> EngineConfidence:
|
||||
"""Вычислить итоговый Confidence."""
|
||||
return EngineConfidence()
|
||||
|
||||
def _resolve_reason(
|
||||
self,
|
||||
coordinator_result: CoordinatorResult,
|
||||
) -> ReasonCode:
|
||||
"""Определить причину принятого решения."""
|
||||
return ReasonCode.UNKNOWN
|
||||
Reference in New Issue
Block a user