- domain/entities/chart.py:ChartResult/OHLC/Volume/Series/EventMarker/ChartMetadata
(adjust_mode + execution_price_basis 口径元数据)+ SelectionHit
- application/services/chart_service.py:个股 K线/量/MA 指标;显示层 qfq/hfq 折算
(基于主口径 none 行情 × adjust_factor,绝回写研究数据);回测个股视图把实际成交
转 fills 标记并在显示口径不同时做坐标换算(v3 §20.3/§20.5)
- by-symbol 历史查询:SignalRepository/SelectionRepository.list_by_symbol(含溯源 id)
- api/charts.py:/stocks/{symbol}/chart|signals|selections、/backtests/{id}/stocks/{symbol}/chart
|trades|positions
- tests/test_charts.py(指标/qfq-hfq 折算断言/回测 fills/API 集成+404);全量 pytest 通过
39 lines
990 B
Python
39 lines
990 B
Python
"""API 路由聚合。
|
|
|
|
业务路由面向业务对象(AGENT.md §17):/api/stocks /api/factors
|
|
/api/factor-tests /api/backtests /api/experiments(Phase4) /api/jobs(Phase4) /api/agent(Phase5)
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from app.api import (
|
|
agent,
|
|
charts,
|
|
composites,
|
|
experiments,
|
|
factors,
|
|
health,
|
|
jobs,
|
|
research,
|
|
selections,
|
|
signals,
|
|
stocks,
|
|
strategies,
|
|
)
|
|
|
|
api_router = APIRouter()
|
|
api_router.include_router(health.router)
|
|
api_router.include_router(stocks.router)
|
|
api_router.include_router(factors.router)
|
|
api_router.include_router(composites.router)
|
|
api_router.include_router(research.router)
|
|
api_router.include_router(selections.router)
|
|
api_router.include_router(charts.router)
|
|
api_router.include_router(signals.router)
|
|
api_router.include_router(strategies.router)
|
|
api_router.include_router(jobs.router)
|
|
api_router.include_router(experiments.router)
|
|
api_router.include_router(agent.router)
|