ashare-ai-research 是我刚整理好并开源的新项目:github.com/dengrb1/ashare-ai-research。
它做的事情很直接:在每个交易日结束后,对 A 股做一次可复现的投研流程——从候选池、确定性打分、模拟组合,到事件驱动的回测,并把这些过程全部留成可审计的快照。AI 在里面只负责解释已有的数字结果,不能改公式、不能改风控阈值、也不能动指数快照。
为什么做这件事
之前我写过 txt-2fa-vault、2Fauth-Cloudflare 这些偏“安全 + 边缘”的项目。这次想试一个完全不同的方向:把 AI 加速试错这件事延伸到量化研究里。
之前我做投研笔记主要在本地,过程是:拉数据、跑公式、写评论、截图存证。几次下来发现两个明显问题:
- 过程不可复现:同一只股票,换一天重算,结论会漂移,因为公式版本、市场环境、指数快照都不固定。
- AI 角色模糊:直接让模型“帮我选股”很危险,但完全不用又浪费。所以这次干脆把边界画死——AI 只能解释已经算好的数字。
系统能力
仓库 README 里写了一句话总结:“Auditable, reproducible A-share post-market AI investment research, scoring, simulated portfolio, and event-driven backtesting platform.”
落到具体能力上:
- 后市研究 + 候选池:每天盘后拉数据,过滤出当天的关注列表。
- 确定性打分公式:当前版本
composite-35-35-20-10-dividend-news-market-v3- 基本面 35%
- 技术面 35%
- 事件 / 情绪 20%
- 质量置信度 10%
- 叠加分红、事件风险、冻结的市场环境调整
- 模拟组合与事件驱动回测:每一步操作都有据可查。
- 市场环境分类:基于沪深 300 (000300)、中证 500 (000905)、中证 1000 (000852) 的 1/5/20 日收益率,把环境分成
RISK_ON/NEUTRAL/RISK_OFF/UNKNOWN,影响打分和风险乘数。 - AI 问答:基于已有研究报告做解释,不会越界。
一些设计取舍
1. 指数快照必须冻结
研究报告生成的那一刻,系统会冻结当天的三大指数收益率和分类(benchmark_returns、market_state),后续的实盘涨跌不会反过来修改这份报告。
旧的公式和没有快照的报告会被默认按 NEUTRAL 处理,兼容历史数据。
2. AI 只能解释,不能改东西
AI 这块被严格限制:
- API Key、Organization、模型、Base URL 都在后端加密存储,不会写到前端 localStorage、日志或报告里。
- AI 的输出仅限于“解释已有的确定性结果”,不能修改打分公式、不能调整风控阈值、不能动指数快照。
- 后台会做模型探活、版本管理和审计。
这样做的好处是:AI 的输出再离谱,也不会让系统“算错”——它只能解释,没有算的能力。
3. 默认轻量启动
LIGHTWEIGHT 是默认模式,启动时不预热 AKShare、量化模型或非必要 worker,市场数据和搜索按需加载。想接 SearXNG 自托管搜索时,用 docker compose --profile search up 启用。
Docker 和原生(Windows / Linux)部署共用同一份 FastAPI、打分配置和 Alembic 迁移,行为一致。
技术栈
- 后端:Python + FastAPI,打分逻辑在
src/ashare_ai/,数据库迁移走 Alembic。 - 前端:React + Vite,工作台在
web/目录。 - 打包:Docker Compose(
compose.yaml/compose.ghcr.yaml),也有 Windows / Linux 原生 Control Center。 - 文档:
docs/下有部署、API、Edge Gateway 等说明。
启动方式(Windows)
Copy-Item .env.local.example .env
Copy-Item .env.docker.example .env.docker
docker compose -p ashare-ai-src -f compose.yaml up -d --build
启动后访问 http://localhost 即可。原生部署、数据库迁移、API Key 配置等细节都写在仓库文档里。
边界声明
仓库 README 明确写了:
- 不连接实时自动交易。
- 不构成投资建议。
打分公式、回测、模拟组合都是研究工具,不是下单系统。这一条对个人项目尤其重要——不能让工具的“自动化感”模糊了“这只是研究”这层边界。
后续想做的
目前还在持续打磨,主要是这几块:
- 继续细化打分公式的版本管理,让“换一次公式就回看一次历史快照”这件事更顺。
- 丰富研究报告导出(PDF、Markdown 笔记)。
- 在不破坏“AI 只解释”原则的前提下,加一些更顺手的问答模板。
- 接入更多指数和资产类别。
欢迎在 GitHub 提 issue 或讨论公式设计、接口选择——尤其是对打分公式权重和指数快照冻结机制有想法的朋友。