首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >搞量化的天塌了!2.2MB引擎30分钟跑完全市场回测,之前10天白干了

搞量化的天塌了!2.2MB引擎30分钟跑完全市场回测,之前10天白干了

作者头像
豆芽菜小萌
发布2026-09-08 20:18:22
发布2026-09-08 20:18:22
120
举报

做全市场回测的人,都懂那种痛

策略一晚上写好,数据准备耗两周

这周刷 GitHub,一个叫 free-stockdb 的项目挂在推荐位,star 涨得飞快。描述只有一句话——面向 A 股日 K、分钟 K 与 ETF 分钟数据的本地量化引擎,服务端只有 2.2MB。2.2MB,我当时就下载了。

做过 A 股全市场回测的人应该都懂那种痛:策略逻辑一晚上能写好,数据准备却能耗掉两周。我以前用在线 API 拉全市场分钟线,受限于频控和 IP 风控,单次同步实测 3 到 5 天,这还只是把数据拉下来;清洗停牌退市、处理代码变更、推导复权因子、建数据库选表结构写索引,零零碎碎再搭一周。等数据工程跑通,黄花菜都凉了。

free-stockdb 用了几天,确实可以。下面把同样在量化坑里的道友聊聊——它到底做了什么,又有什么坑。

01

PART

先看简介

WHAT IS FREE-STOCKDB

free-stockdb 是一个本地量化数据引擎,C++ 写核心,Rust 做指标计算。数据同步、清洗、复权、存储、查询全部打包,Apache-2.0 协议,完全免费。目前 Windows 版发了 Release,macOS 和 Linux 版作者说快了。

做全市场回测,常见方案差距不是快慢的问题——在线方案根本跑不顺。一张表看清:

维度

在线 API 方案

free-stockdb

同步速度

频控 + IP 风控,单次 3–5 天

增量同步,断点续传

数据落地

依赖远程 API,随时掉线

全落盘 ./data,离线可查

复权因子

自己抓公告反推

查询时按需返回

指标计算

pandas 遍历几小时

Rust 核心几秒出

AI 调用

复制表结构给 AI

MCP 直连本地库

02

PART

功能我挑重点说

KEY FEATURES

增量同步,只拉变化的部分

把数据源地址丢进 sync_url.txt,首次同步拉全量历史,之后每次更新只处理增量。Zstd 压缩传输,比未压缩体积小 3 倍以上;网络断了下次接着跑。日线、周线、月线、1/5/15/30 分钟 K、tick 数据全管,数据全落盘在 ./data 目录,离线了照样查、照样回测。

39 种指标 + 5 种指数,几秒算完全市场

内置指标覆盖四类——趋势类(MA、EMA、MACD、DMI 等)、震荡类(KDJ、RSI、WR 等)、通道类(BOLL、KTN 等)、量价类(OBV、VR 等),一共 39 种。外加等权、流通市值加权、成交额加权、成交量加权、总市值加权 5 种指数计算。我以前用 pandas 跑全市场 MACD 和 KDJ,DataFrame 遍历一次要几个小时;free-stockdb 的 Rust 计算核心比 pandas 快 3 倍,全市场分钟级指标几秒钟出结果。

调用也很直给:

...python

result = zb.get(

  name="ma,kdj,macd",

  codes=全市场7000多只,

  start="2024-01-01",

  end="2024-12-31",

  frequency="daily",

  fq="前复权",

  n=["5,10,20", None, "12,26,9"]

)

一个 zb.get() 全搞定。get_data() 管行情查询,bk.get() 管板块映射,日常需求三个函数全覆盖。

复权不用自己推了

本地存的是不复权行情配复权因子,查询时按需返回前复权、后复权、不复权。不用自己抓分红送转公告、反推因子、回刷历史价格。查一下复权因子还能自己校验,不放心内置的也可以拿自己的数据源重新算。

五种调用方式,不只是 Python

Python SDK(标配)

get_data() 同步异步都行。

HTTP API(一行命令)

http://127.0.0.1:7899/?cmd=get&t=...,不管什么语言,配个局域网还能多人共用。

Excel / WPS 宏

做表格选股的,在办公室就能直接怼。

网页端

拿来即用,不用写代码都能浏览本地行情。

MCP(最值钱)

free-stockdb 自己实现了 MCP 协议,Claude、Cursor、Windsurf 这些 AI 编程工具连上就能调本地数据引擎。你对着 AI 说一句「帮我把最近三个月涨超 30% 且日均成交额过亿的票筛出来」,它直接查本地库,不用复制粘贴表结构。不需要额外装 MCP SDK,项目自带。

板块映射也内置了

申万一二三级行业分类加 1200 个概念板块全在里面。查某只票属于哪些板块,或查某个板块下有哪些票,bk.get() 毫秒级返回。

03

PART

详细安装步骤

STEP BY STEP

STEP 01

下载发行包

去 GitHub Releases 页面下载最新版压缩包。目前最新是 v0.2.1,文件不大,解压就行。

STEP 02

配置数据源并同步

在解压目录里找到 sync_url.txt,把数据源地址填进去——可以是公共同步节点、内网服务器或本地目录(file:// 路径也行)。首次同步看数据范围:只拉日线约 5GB,加全量分钟线约 20GB,Zstd 压缩存本地比 CSV 省 3 倍空间;后续每次只拉增量,断点续传。

STEP 03

启动服务

运行 stockdb。服务端就 2.2MB,瞬间起,默认监听 127.0.0.1:7899,不暴露公网。

STEP 04

选你喜欢的调用方式

Python:pip install 对应 SDK,import 直接调。HTTP:浏览器打开 http://127.0.0.1:7899 就能看到网页版。Excel / WPS:用内置宏调用本地 HTTP 接口。MCP:在 Cursor 或 Claude Code 里配一行 MCP 连接配置就行。macOS 和 Linux 用户再等等,作者说快发了,issue 区排队的人不少。

///

LAST

写在最后

MY TAKE

2.2MB 干到这个完成度,确实厉害。数据在你硬盘,计算在你 CPU,不跟远程 API 耦合——本地优先的思路很对。五种调用方式尤其是 MCP,让 AI 工具直接读本地行情数据,这个方向很前瞻。

泼点冷水

!目前最大的槽点 🕳

项目还在早期,目前只有 Windows 版;功能集中在行情数据,财报、宏观、资金流这些低频数据得自己接入。数据源不内置,得自己配同步地址,官方不提供数据本身。star 还不算高,社区活跃度待观察。

适合谁

做全市场回测的人

受够了 API 限频的人

想让 Cursor / Claude 直接查本地行情的人

开源地址:https://github.com/hello245m/free-stockdb

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 下载发行包
  • 配置数据源并同步
  • 启动服务
  • 选你喜欢的调用方式
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档