Vane 是一个面向 A 股数据研究的本地行情看板与统一数据服务。它将多个公开数据源转换为稳定的 /api/v1 契约,并提供实时行情、K 线、市场概览、基本面、新闻、指标编写、回测、规律发现和 Kronos-base 时序预测界面。
Vane 适合本地研究和二次开发,不构成投资建议。公开数据源可能延迟、变更或中断;请勿将未经复核的数据直接用于实盘交易。
Kronos 声明:Kronos 是由 shiyu-coder/Kronos 提供的第三方开源项目,Vane 不是其官方发行版或关联项目。本仓库仅以可选 Worker 方式集成
Kronos-base,并固定上游源码、模型和 Tokenizer revision;版本、许可与校验值见 Kronos upstream notice。
- 实时行情、全 A 股快照、核心指数、交易日历与昨日涨停反馈。
- 日/周/月 K 线、当日分时、多日分钟数据与前/后复权。
- 行业、概念、地域板块,公司资料、财务三表、分红与股东数据。
- 财经快讯、个股资讯、公告与研报,并显示实际数据来源和降级状态。
- 通达信兼容公式编辑、真实行情验证、指标版本与异步回测。
- 可选的 Kronos-base 日 K 预测工作区,使用隔离 Worker、异步任务和可追溯模型版本。
- 自选、条件预警、个股比较、市场看板和涨停规律发现。
- 主备数据源、字段校验、有界缓存、单飞、熔断和
stale-if-error。
| 市场概览 | 指标平台 | 个股比较 |
|---|---|---|
![]() |
![]() |
![]() |
点击截图可查看原始尺寸。
| 模块 | 技术 |
|---|---|
| Web | Next.js 16、React 19、TypeScript、TanStack Query、Zustand、KLineCharts |
| API | FastAPI、Pydantic、httpx、Uvicorn |
| 模型 Worker | Kronos-base、PyTorch,独立 Python 3.11 环境 |
| 存储 | SQLite,仅保存用户指标、版本和研究任务(含预测结果) |
| 工具 | npm、uv、Ruff、mypy、pytest、Vitest、ESLint |
flowchart LR
UI["Next.js Web"] -->|"HTTP /api/v1"| API["FastAPI Routes"]
API --> CACHE["Memory Cache\nTTL + single-flight"]
CACHE --> SERVICE["ServiceContainer"]
SERVICE --> ROUTER["ProviderRouter\nvalidation + fallback"]
ROUTER --> PROVIDERS["Public data providers"]
SERVICE --> INDICATOR["Indicator Platform"]
INDICATOR <--> SQLITE["SQLite"]
SERVICE -->|"loopback HTTP"| KRONOS["Kronos-base Worker\nPyTorch / MPS / CUDA / CPU"]
抓取的行情、基本面和新闻只进入进程内缓存,不写入磁盘。详细依赖边界见系统架构。
- Python 3.12+(Vane API)
- Python 3.11(Kronos Worker)
- Node.js 20.19+
- uv
- GNU Make
git clone https://github.com/steadon/vane.git
cd Vane
make install
cp vane_server/.env.example vane_server/.env
make dev启动后可访问:
- Web:http://localhost:37829
- API:http://localhost:8000
- OpenAPI:http://localhost:8000/docs
- Kronos Worker:http://127.0.0.1:8011/health(仅回环地址)
核心功能不要求第三方 API Key。默认配置可直接用于本地开发;生产部署前请至少限制 CORS_ORIGINS、关闭 DEBUG,并在网关层增加认证、限流和 TLS。
| 命令 | 说明 |
|---|---|
make dev |
同时启动 Web、API 与 Kronos Worker |
make dev_core |
只启动 Web 与 API,不启用预测 |
make dev_ui / make dev_server / make dev_kronos |
单独启动对应进程 |
make test |
运行前后端测试 |
make lint |
运行 ESLint 与 Ruff |
make typecheck |
运行 TypeScript 与 mypy 类型检查 |
make build |
构建生产版 Web |
make check |
执行 lint、类型检查、测试和构建 |
make check_sources |
联网探测全部生产数据源 |
make generate_api |
从 OpenAPI 重新生成前端 API 类型 |
make check_sources 会请求真实公开端点,可能受到网络、频率限制和休市状态影响;默认测试不访问公网。
服务端配置集中在 vane_server/.env。完整模板见 vane_server/.env.example,常用项包括:
| 变量 | 默认值 | 说明 |
|---|---|---|
APP_HOST |
127.0.0.1 |
API 监听地址 |
APP_PORT |
8000 |
API 端口 |
CORS_ORIGINS |
* |
允许的来源,多个值用逗号分隔 |
CACHE_MAX_ENTRIES |
512 |
进程内缓存最大条目数 |
INDICATOR_DATA_PATH |
data/vane-indicators.sqlite3 |
本地指标库路径 |
KRONOS_ENABLED |
false |
是否在 API 中启用 Kronos 预测 |
KRONOS_WORKER_URL |
http://127.0.0.1:8011 |
隔离 Worker 地址 |
UPSTREAM_TIMEOUT_SECONDS |
10 |
单次上游请求超时 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/stock/realtime?code=600519 |
个股实时行情 |
| GET | /api/v1/stock/kline?code=600519&period=daily&start_date=2025-01-01&end_date=2025-12-31&adjust=qfq |
K 线 |
| GET | /api/v1/market/snapshot?limit=200 |
全市场快照 |
| GET | /api/v1/market/trading-calendar?start_date=2025-01-01&end_date=2025-12-31 |
交易日历 |
| GET | /api/v1/news/flash?limit=30 |
财经快讯 |
| POST | /api/v1/indicators/{id}/backtests |
创建指标回测 |
| POST | /api/v1/research/kronos/forecasts |
创建 Kronos-base 预测任务 |
| GET | /health |
存活检查 |
| GET | /health/ready |
就绪检查 |
| GET | /ops/status |
运行状态与能力矩阵 |
完整且可交互的接口定义以运行时 OpenAPI 页面为准。
Vane/
├── vane_server/ FastAPI 服务、数据源适配、指标与测试
├── vane_kronos/ 隔离的 Kronos-base 推理 Worker
├── vane_web/ Next.js 应用、组件、状态与前端测试
├── third_party/ 第三方源码版本与许可记录
├── docs/ 开发、架构、数据、前端、研究与社区文档
├── scripts/ 股票索引和数据源检查工具
└── Makefile 统一的开发与验证入口
欢迎提交 Issue 和 Pull Request。开始前请阅读贡献指南和行为准则。涉及新数据源时,请说明来源、使用条款、字段口径、限流策略和失败语义,并为解析器提供最小脱敏样例。
本项目基于 MIT License 开源。
Vane 仅供学习、研究和软件开发使用。项目不保证数据的准确性、完整性、及时性或持续可用性,也不提供任何证券投资建议。使用者应自行核验数据来源、遵守相关网站条款和当地法律法规,并独立承担使用风险。



