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),