Files
qlib/backend/app/domain/repositories/signal.py
T
Simon ba52edc2d6 feat(signal): M8.1 交易信号引擎(规则 + signal_event 落库 + /api/signals)
- SignalRules(买入 rank 阈值/趋势 MA/动量 + 卖出区间/破位警示)+ SignalEvent
  (BUY/WATCH/SELL,score/price/trigger_reason 可解释)+ SignalResult/Meta
- quant/signal.generate_signals:与选股同一评分引擎取全市场 rank,按规则分类输出
- signal_snapshot/signal_event 表(migration d8e0b2f3c4d5,MySQL 已应用)+ Repo
- SignalService + POST /api/signals(同步+落库)、GET 详情/列表
- tests/test_signals.py(引擎分类/排序/破位不 BUY、service、API 提交读回);全量 pytest 通过
2026-09-09 00:35:37 +08:00

20 lines
566 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Signal Repository Protocol(M8.1 落库)。"""
from __future__ import annotations
from datetime import date
from typing import Protocol
from app.domain.entities.signal import SignalMeta, SignalResult
class SignalRepository(Protocol):
def save(self, signal_id: str, result: SignalResult) -> None:
"""snapshot 一行 + 事件逐行(同事务,调用方 commit)。"""
def get(self, signal_id: str) -> SignalResult | None: ...
def list_recent(
self, as_of: date | None = None, limit: int = 20
) -> list[SignalMeta]: ...