用WPS自定义函数STOCK_DATA在表格里直接查A股行情:free-stockdb完整教程
【免费下载链接】free-stockdb面向 A 股日K、分钟K与ETF分钟数据的本地量化引擎,集成增量同步、本地缓存、复权、批量查询、回测与指标计算。项目地址: https://gitcode.com/GitHub_Trending/fr/free-stockdb
你还在从行情软件里一只一只复制 K 线到 Excel 吗?用本地量化引擎free-stockdb,只需给 WPS 装一段 JS 宏,就能像写普通公式一样调出 A 股日 K、分钟 K 与 ETF 分钟数据,复权方式随手切换,查询全程走本机127.0.0.1:7899,断网也能用。
能力卡片:STOCK_DATA 一次装好,公式随便写
| 能力点 | 一句话说明 | 关键参数/命令 |
|---|---|---|
| 表格内查日K | 单单元格公式返回带表头二维数组,日期从新到旧 | =GP("600633") |
| 区间 + 字段筛选 | 指定起止日期,只取你要的列 | start_date、end_date、fields |
| 分钟级数据 | 1/5/15/30/60 分钟线,时间戳自动补全 | frequency="1m"~"60m" |
| 复权内置 | 前复权/后复权/不复权一个参数切换,无需自维护复权因子 | fq="qfq" / "hfq" / "none" |
| 多周期聚合 | 周K、月K 与 5/15/30/60 分钟 K 在本地内存自动聚合 | frequency="1w" / "1M" |
为什么选本地数据引擎:3 个可量化的理由
- 断网可用:同步后数据全部落盘在
./data,查、算、回测不依赖任何远程接口 - 毫秒级响应:全市场 7000+ 只股票的批量查询在本机完成,不受限频、积分约束
- 复权免维护:前复权、后复权、不复权随参数切换,因子本地内置
前置清单:开始之前先核对这 4 项
- Windows 机器 + free-stockdb 发行包(Windows 7 及以上;日线数据约5GB磁盘空间,含分钟线建议 20GB)
- 已安装支持JS 宏的WPS 表格(微软 Excel 不支持 JS 宏)
- 数据已同步:
数据更新.exe首次运行需等增量同步完成,可多次重启直至同步完 - 本地数据库服务在后台运行:
stockdb.exe默认监听127.0.0.1:7899
⚠️ 运行【数据更新.exe】前请先退出 stockdb.exe,二者不能同时运行;数据库配置文件 stockdb.conf 请勿修改。
最短路径:4 步装好 STOCK_DATA 自定义函数
- 同步数据:双击【数据更新.exe】,等待增量同步完成(每日运行一次即可)
- 启动服务:双击【stockdb.exe】,保持后台运行
- 安装宏:WPS 表格 → 顶部开发工具 → JS宏 → 设计器→ 右键"模块" →插入模块,将 调用方式/excel/wps_js_macro.js 全部代码粘贴进模块,保存关闭
- 验证:任意单元格输入
=GP("600633"),回车后表头 + 数据直接铺开一片单元格(可选:把日期、字段换成你自己的条件再验一遍)
💡 装好后公式名为
GP,即 STOCK_DATA 自定义函数的实现名;返回值是"表头行 + 数据行"的二维数组,可直接铺满单元格。
参数字典:6 个参数 + 字段速查
| 参数 | 必填 | 说明 | 示例 |
|---|---|---|---|
| code | ✅ | 股票代码或 ETF 代码 | "600633" |
| start_date | 否 | 开始日期,YYYYMMDD;分钟线会自动补000000 | "20260620" |
| end_date | 否 | 结束日期,YYYYMMDD;分钟线会自动补235959 | "20260626" |
| frequency | 否 | 周期:1d日K /1w周K /1M月K /1m5m15m30m60m分钟线,默认1d | "15m" |
| fields | 否 | 返回字段,英文逗号分隔;缺省返回date,code,name,open,high,low,close,volume,amount | "date,close,pct_chg" |
| fq | 否 | 复权:qfq前复权 /hfq后复权 /none不复权,默认qfq | "none" |
常用字段速查
| 字段 | 含义 | 字段 | 含义 |
|---|---|---|---|
| date / open / high / low / close | 日期 / 开高低收 | volume / amount | 成交量 / 成交额 |
| pre_close / pct_chg | 前收盘 / 涨跌幅 | amplitude / turnover | 振幅 / 换手率 |
| pe_ttm / pb | 市盈率TTM / 市净率 | total_mv / float_mv | 总市值 / 流通市值 |
| vol_ratio / is_st | 量比 / 是否ST | name / code | 股票名称 / 代码 |
场景解法:4 个高频需求,各给一条公式
📌 我想看一只票最近的日Kcode是唯一必填参数,其余全走默认:返回最近日K,含表头,日期从新到旧,直接铺进表格即可配合条件格式或透视表做选股表。
=GP("600633")📌 我只想要某个日期区间、某几列字段同时给出起止日期即按区间查询,fields用英文逗号分隔且不加空格,省得把整张表搬进 Excel。
=GP("600633", "20260620", "20260626", "1d", "date,close,pct_chg")📌 我要当天的 15 分钟线做盘中结构分钟级频率传 8 位日期即可,宏会自动把开始补成000000、结束补成235959,不用手算时间戳。
=GP("600633", "20260620", "20260620", "15m")📌 我要对比前复权和不复权的价格走势复权方式就是最后一个参数:回测、比价时切换qfq与none即可,复权因子由宏同步拉取后在内存中折算,无需自己维护。
=GP("600633", "", "", "1d", "date,close", "none")故障速查:3 种常见报错一眼定位
| 症状 | 原因 | 对策 |
|---|---|---|
| 提示"连接错误 / 无法连接数据库" | stockdb.exe 未在后台运行,服务未监听127.0.0.1:7899 | 双击 stockdb.exe 启动后重试 |
| 提示"无数据" | 股票代码写错,或该时间段无交易(停牌/非交易日) | 核对 6 位代码,放宽日期区间 |
| 公式输入后 WPS 提示宏被禁用 | 宏安全设置拦截了自定义函数 | 在 WPS 安全中心允许运行 JS 宏 |
⚠️ 若更新后查询结果异常,先确认【数据更新.exe】已完全同步且 stockdb.exe 是在更新之后重新启动的。
想换个姿势查同一份本地数据?调用方式/ 下还提供 HTTP 接口、Python SDK(pybao/stock_sdk.py)、AI MCP 三种入口,以及零安装的 数据网页版.html(浏览器直接查询、导出 CSV)。现在把宏粘进 WPS,10 分钟内让第一只股票的行情在你的表格里"自己长出来"。
【免费下载链接】free-stockdb面向 A 股日K、分钟K与ETF分钟数据的本地量化引擎,集成增量同步、本地缓存、复权、批量查询、回测与指标计算。项目地址: https://gitcode.com/GitHub_Trending/fr/free-stockdb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考