Files
zhixing-system/zhixing-server/src/zhixing_server/modules/selection/domain/ports.py
T

28 lines
709 B
Python

"""Ports that keep selection formulas independent from storage technology."""
from __future__ import annotations
from datetime import date
from typing import Protocol
from .models import StockHistory
from .runs import SelectionExecutionSource, SelectionUniverseReader
class MarketDataReaderError(RuntimeError):
"""A market-data adapter could not complete a read."""
class MarketDataReader(Protocol):
"""Read qfq history sufficient for one historical strategy evaluation."""
def load_history(self, ts_code: str, target_trade_date: date) -> StockHistory: ...
__all__ = [
"MarketDataReader",
"MarketDataReaderError",
"SelectionExecutionSource",
"SelectionUniverseReader",
]