From 944fa90e0d1624f588404c7ae109dd2cd564d758 Mon Sep 17 00:00:00 2001 From: fish Date: Sun, 3 May 2026 22:09:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E6=89=93?= =?UTF-8?q?=E5=88=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tushare/src/api.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tushare/src/api.py b/tushare/src/api.py index 6c2316b..5d6d6b0 100644 --- a/tushare/src/api.py +++ b/tushare/src/api.py @@ -64,6 +64,30 @@ def run_pipeline(req: RunRequest): ) +@app.post("/api/v1/run/batch") +def run_batch(): + """对所有固定品种执行今日打分。""" + results = [] + errors = [] + for symbol in contracts.SYMBOLS: + try: + ts_code = contracts.active_contract(symbol) + df = fetcher.fetch_contract(ts_code) + storage.save_candles(df) + result = scorer.score_daily(df) + storage.save_score(result) + results.append({ + "symbol": symbol, + "ts_code": result.ts_code, + "trade_date": result.trade_date, + "signal": result.signal, + "composite": result.composite, + }) + except Exception as e: + errors.append({"symbol": symbol, "error": str(e)}) + return {"results": results, "errors": errors} + + @app.get("/api/v1/scores") def list_scores( ts_code: Optional[str] = Query(None),