A personal-use quant growth record.
一个基于 Next.js + Prisma + Tushare 的个人量化股票数据仪表盘,支持每日自动同步 A 股行情数据,并通过 Web 界面进行可视化管理。
quant-dashboard/
├── src/ # Next.js 应用源码
├── prisma/
│ ├── schema.prisma # 数据库模型定义
│ └── migrations/ # 数据库迁移记录
├── scripts/
│ └── sync-prices.ts # 每日股价同步脚本
├── dev.db # 本地 SQLite 数据库(开发用)
├── 每日股价同步.bat # 一键同步股价(Windows)
├── 数据录入(管理后台).bat # 一键启动管理后台(Windows)
└── prisma.config.ts # Prisma 配置
| 层级 | 技术 |
|---|---|
| 前端框架 | Next.js 16 + React 19 |
| 样式 | Tailwind CSS 4 |
| 数据库 ORM | Prisma 6 |
| 数据库(开发) | SQLite(dev.db) |
| 数据库(生产) | PostgreSQL(Supabase) |
| 数据来源 | Tushare Pro API(自定义代理节点) |
| 语言 | TypeScript 5 |
npm install复制 .env 文件并填入数据库连接地址:
# 生产环境使用 Supabase PostgreSQL
DATABASE_URL="postgresql://..."
# 本地开发使用 SQLite
# DATABASE_URL="file:./dev.db"
PRISMA_CLIENT_ENGINE_TYPE="binary"npx prisma migrate devnpm run dev打开 http://localhost:3000 查看仪表盘。
项目提供两个 .bat 脚本,双击即可使用:
| 脚本 | 功能 |
|---|---|
每日股价同步.bat |
运行 scripts/sync-prices.ts,从 Tushare 拉取最新行情并写入数据库 |
数据录入(管理后台).bat |
打开 localhost:3000 并启动 Prisma Studio 进行数据管理 |
股价数据通过 Tushare Pro 接口获取,使用自定义代理节点以突破访问限制。
主要用到的接口:
daily_basic— 个股每日行情基本面(收盘价、PE-TTM、PB、PS-TTM)fina_indicator— 财务指标(EBITDA、EV 企业价值)
注意事项:
- 需要在脚本中手动覆盖 Tushare 的私有属性
__http_url和__token,才能使用自定义代理节点 - Tushare 版本需为
1.4.24
pro._DataApi__token = "your_token"
pro._DataApi__http_url = 'http://your-proxy-endpoint'| 环境 | 数据库 | 配置位置 |
|---|---|---|
| 本地开发 | SQLite(dev.db) |
prisma.config.ts |
| 生产部署 | PostgreSQL(Supabase) | .env → DATABASE_URL |
使用 Prisma Studio 可视化管理数据:
npx prisma studionpm run dev # 启动开发服务器
npm run build # 构建生产版本
npm run start # 启动生产服务器
npm run lint # 代码检查.env文件包含数据库连接凭据,请勿提交到版本控制(已在.gitignore中忽略)dev.db为本地数据库文件,同样建议加入.gitignore