记下关注一家公司的理由,跟踪财务、估值与后续变化。
- 公司研究:A 股行情、财务序列、公告与证据,保留判断及修改记录。
- 找票与对比:条件筛选、市场云图、产业链地图与同环节公司比较。
- 我的跟踪:清单直接显示当前应对,点击公司打开应对报告;自动结合当前账户的持仓、判断和仓位计划,展示原因、变化及下一步条件。无需重复录入,也不会因浏览自动创建计划。
- 估值与执行记录:分层估值、价格区间、成交登记、持仓账本与纪律复盘。
- 策略比较:应对报告比较持有、分批参与和趋势调仓,计入费用与滑点;涨跌线索、做 T、复核工具收进个股报告底部,自动带入当前公司。
- 私人助理(可选):本地网页与飞书都能聊天,直接记录想法、修订记录、跟踪财报和价格变化、核验已有计划。由 nanobot 理解自然语言,MCP 读取研究,可信适配器保存记录。
- 数据管理:SQLite 单机模式、PostgreSQL 后端、备份恢复和用户数据隔离。
助理接入、飞书应用和主动提醒需要另行配置;代码同步并不代表这些服务已在你的机器上启用。本项目没有券商下单功能。
需要 Node.js 22+、Python 3.10+。可选 nanobot 助理的安装使用 Python 3.12,见独立说明。
git clone https://github.com/cherler/xiami-stocks.git
cd xiami-stocks
python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'
npm ci
cp .env.example .env
npm run dev打开 **http://127.0.0.1:5217/**。API 在 http://127.0.0.1:8108,接口文档在 /docs。
默认使用 SQLite,数据写入 var/stock_decision.db。单机运行不依赖虾米伙伴主站;.env 中 XM_API_BASE 留空即可。模型功能需要配置自己的模型密钥,行情、财务等数据同步需要联网,数据源可能出现限流或缺项。
可分别启动两端:
npm run dev:api
npm run dev:web线上右上角“问助手”支持云端聊天;登录后可以扫码创建自己的飞书机器人,回到网页确认,再去飞书继续聊。云端使用有限的共享任务池,账户、聊天和研究资料分别隔离。使用受积分余额、并发和每日用量限制。
也可以按 apps/assistant/README.md 在自己的电脑运行 nanobot 助手。已有本地飞书绑定无需重绑;线上与本地数据库不自动同步。部署者选择 STOCK_ASSISTANT_WEB_MODE=cloud 启用云端服务,guide 仅显示自建指引,local 使用本机私人助手。云端部署还需要独立 worker、加密密钥和有效的 PostgreSQL 行级隔离。
默认读取兄弟目录 earth-atlas/research,也可通过 STOCK_RESEARCH_DIR 指定自己的研究目录。仓库不包含个人研究文件、账户凭据或持仓数据库。本机助理依赖电脑与 API 持续运行。
“我的判断”默认只保留“我的跟踪”和“持仓账本”。报告支持 decision-loop?report=<公司编号> 直达,旧工具地址仍然可用。
模型使用固定的 20/60 日均线规则,至少 300 根有效日线才展示策略比较。以前一日收盘信号在下一日开盘模拟执行,按连续 60 日分段检验,不寻优参数。模拟计入费用与滑点,使用前复权价格与比例仓位,不复现整手和实际成交;历史结果不等于未来收益,价格走势也不等于真实涨跌原因。
公共价格计算按数据与规则版本缓存,私人结论、历史和提醒按账户保存。“结论变了提醒我”复用现有助手订阅和待发送队列,首次关注、普通涨跌或结论未变时不新增通知;需要配置后台检查服务及通知渠道。助手可以通过 research_company(section="response") 读取相同报告,watch(kind="response") 跟踪变化,不新增常驻助手进程,不迁移已有本地飞书绑定。
# 单机后端测试(临时数据库)
STOCK_TEST_SQLITE=1 .venv/bin/python -m pytest -q
# 前端测试、类型检查与构建
npm run test:web
npm run build
node scripts/check-bundle.mjs apps/web/dist默认后端测试使用 PostgreSQL,需要另外准备测试数据库连接和可创建测试角色的管理员账号。完整发布检查见 scripts/release-check.sh;检查脚本也会核验依赖漏洞与构建预算。
deploy/ 提供 systemd、Caddy 和发布检查模板,默认示例目录为 /srv/xiami-stocks/,示例域名为 stocks.example.com。部署前按自己的服务器修改这些模板,并配置 .env.production.example 中的账号和数据库连接。
这些模板沿用虾米伙伴的 /stocks/ 挂载方式及登录服务集成,不是独立服务器的一键安装器。本地单机运行使用上面的快速开始即可。已有服务器发布前需要完成依赖安装、服务账号与目录初始化,并通过发布检查。
VITE_BASE=/stocks/ npm run build不要把本地开放访问模式直接暴露到公网;对外服务应配置访问控制。
本次开源快照更新于 2026-10-11,包含当前应用代码、测试和助理接口。开源仓库保留独立提交历史;部署地址采用示例值,不包含运行配置、密钥、数据库或个人研究资料。docs/ 与 wiki/ 的早期设计记录可能落后于当前实现,以代码和本 README 的运行方式为准。
采用 GNU AGPL-3.0。研究工具不构成投资建议。