# app/src/trading/strategies/base.py from __future__ import annotations from dataclasses import dataclass from typing import Protocol from src.trading.strategies.signals import SignalResult @dataclass(slots=True) class StrategyContext: # выбранный торговый инструмент symbol: str # текущий режим автоторговли: OBSERVING / RUNNING status: str # риск на сделку в процентах risk_percent: float | None = None class BaseStrategy(Protocol): # техническое имя стратегии name: str # выполнить анализ и вернуть торговый сигнал def analyze(self, context: StrategyContext) -> SignalResult: ...