StockSun 是本地优先、可复现的上交所 A 股研究平台。当前版本能够每天同步 raw/qfq 行情,在本地使用 Polars 多线程计算 94 列标准化 K 线特征,并发运行五类 版本化策略,执行无未来泄漏的滚动回测,把原始策略分数校准为带质量门槛的 概率,并采集新闻、公告和散户热度,通过可选的大模型结构化分析联动候选排序,最后 发布可解释、可排序、带完整血缘的候选快照。
- AKShare 主数据源与 Sina 日线自动回退,覆盖上证主板和科创板;
- 内容寻址 Parquet 数据湖、版本 manifest、DuckDB 当前视图和完整运行血缘;
- 趋势突破、动量、均线排列、量价、波动收缩五类策略;
- 未来 5 个交易日标签、embargo 时间切分、次日开盘/第五日收盘成交模拟;
- Platt 与 Isotonic 样本外比较,Brier/BSS/ECE 发布门槛;
- 概率、策略一致性、流动性和市场环境融合评分,以及波动/回撤/跳空风险扣分;
- 候选覆盖率门禁、拒绝原因、Top-N 版本快照和 DuckDB 当前视图;
- 新闻/公告清洗去重、实体关联、as-of 防未来泄漏和散户拥挤度;
- OpenAI Responses API 严格 JSON Schema、提示词注入防护、缓存、预算与失败降级;
- 消息可用时使用完整五维排名,个股缺失采用中性分并扣分,全局不可用时保留技术榜;
- Streamlit 只读研究控制台,支持候选筛选、个股 K 线、消息与运行血缘审计;
- 各阶段独立 CLI,以及支持断点恢复和并发参数的一键每日流水线。
要求 Python 3.12 和 uv:
uv python install 3.12
uv sync --frozen --all-groups
uv run stocksun init --config config/default.yaml
uv run stocksun doctor --config config/default.yaml启动本地前端:
uv run stocksun web run \
--host 127.0.0.1 \
--port 8501 \
--config config/default.yaml浏览器打开 http://127.0.0.1:8501。控制台只读访问 DuckDB,不会触发数据更新、
修改策略或执行交易。
完整离线质量门禁:
uv run ruff check .
uv run mypy src/stocksun
uv run pytest --cov=stocksun --cov-report=term-missing --cov-fail-under=80--symbols 留空时,同步目标交易日可见的全部上交所主板 A 股和科创板股票。行情
网络请求使用 runtime.io_concurrency 并发抓取,Parquet、manifest 和 DuckDB 仍由
协调器单写:
uv run stocksun sync \
--target-date 2026-08-05 \
--config config/default.yaml
uv run stocksun pipeline run \
--from-stage features \
--market-run-id latest \
--config config/default.yaml \
--strategy-config config/strategies.yaml \
--cpu-workers 4全市场股票都会进入特征、策略、回测、校准和候选过滤。默认
ranking.top_n=100 只限制最终发布到候选榜的数量,不限制上游计算范围。首次从
2015 年回补耗时较长;后续运行复用父版本,只增量更新 raw 并刷新最近 250 个交易
会话的 qfq。
候选快照会固化本次运行的五维有效权重、加权贡献、六项风险扣分、扣分前得分和
最终得分。候选榜与个股页均可按
最终分 = clamp(维度贡献合计 - 风险扣分, 0, 100) 复算,不会使用当前配置猜测历史
快照。
uv run stocksun sync \
--target-date 2026-08-03 \
--symbols 600000,601398 \
--config config/default.yaml
uv run stocksun pipeline run \
--from-stage features \
--market-run-id latest \
--symbols 600000,601398 \
--config config/default.yaml \
--strategy-config config/strategies.yaml \
--cpu-workers 4该命令只用于快速验证安装和端到端连通性,不能代表全市场选股结果。
也可以分别运行:
uv run stocksun features run --market-run-id latest
uv run stocksun strategies run --feature-run-id latest
uv run stocksun backtest run --strategy-run-id latest
uv run stocksun calibrate run --backtest-run-id latest
uv run stocksun news run --target-date 2026-08-03 --market-run-id latest
uv run stocksun select run \
--calibration-run-id latest \
--message-run-id latest某一步失败后可以从该阶段恢复,并明确传入上游 UUID。例如:
uv run stocksun pipeline run \
--from-stage calibration \
--backtest-run-id <backtest-uuid>raw_score 是策略规则的 0–1 原始匹配分,不是成功概率。只有样本量、正负样本、
BSS 和 ECE 全部通过门槛后,probability 才会非空;不通过时系统保留原始分数并
写明机器可读降级原因。
消息源、模型配置、降级规则、DuckDB 查询和烟测记录见 阶段 5 运维指南。技术排名和性能数据见 阶段 4 运维指南。阶段 3 的回测与校准细节见 阶段 3 运维指南。前端使用和页面说明见 阶段 6 运维指南。
未配置完整的 STOCKSUN_LLM_BASE_URL、STOCKSUN_LLM_MODEL 和
STOCKSUN_LLM_API_KEY 时,消息仍会留档,但候选榜明确标记为 technical_only,
不会用中性新闻分伪装模型成功。项目仅用于研究,不构成投资建议,也不会自动交易。
本地 data/、Parquet、DuckDB、日志和真实 .env 均被 Git 忽略。当前股票范围
基于同步时可见名单,历史退市股票可能不完整,所有下游 manifest 都传播
survivorship_bias 标记。