stock-sdk,前端自研股票行情,后端支援真的可以省了吗?

摘要:作者自己动手写了一个 JavaScriptTypeScript 版本的股票行情 SDK。文章介绍了这个 SDK 能获取 A 股、港股、美股的实时行情和 K 线数据,还内置了常用的技术指标计算,支持浏览器和 Node.js 双端运行,适合用
用 JavaScript 获取股票数据,真的有这么难吗? 起因 说实话,这个项目的诞生完全是被逼出来的。 去年我想做一个股票行情看板,就是那种简单的页面,能实时显示几只自选股的涨跌。听起来很简单对吧?但当我真正开始动手的时候,才发现事情没那么简单。 网上搜一圈,股票数据接口相关的工具几乎全是 Python 的。AkShare、Tushare、掘金量化……确实牛,功能也确实全,但问题是——我是个前端啊。 为了一个小看板,难道要我专门搭一个 Python 后端?再写个接口转发给前端?这也太折腾了。 于是我开始找有没有 JavaScript 能用的方案。结果你猜怎么着?翻遍了 npm,几乎找不到一个好用的。有的年久失修,有的只支持 Node.js 不支持浏览器,有的类型支持一塌糊涂,还有的接口莫名其妙就挂了。 摸索了一圈之后,我决定:算了,自己写一个得了。 stock-sdk 是什么? 简单说,stock-sdk 就是一个专门给前端和 Node.js 用的股票行情 SDK。 核心目标就一个:让你用最熟悉的 JavaScript / TypeScript,10 行代码搞定股票数据获取。 import { StockSDK } from 'stock-sdk'; const sdk = new StockSDK(); const quotes = await sdk.getSimpleQuotes(['sh000001', 'sz000858', 'sh600519']); quotes.forEach(q => { console.log(`${q.name}: ${q.price} (${q.changePercent}%)`); }); 就这么简单。不用搭后端,不用装 Python,浏览器里直接跑。 它能干什么? 写到现在,功能已经比较齐全了: 行情数据 A 股、港股、美股、公募基金的实时行情 历史 K 线(日线、周线、月线) 分钟 K 线(1 分钟到 60 分钟都支持) 当日分时走势 板块数据 行业板块、概念板块的列表和实时行情 板块成分股 板块 K 线数据 技术指标 内置 MA、MACD、BOLL、KDJ、RSI 等常用指标 一个接口搞定 K 线 + 指标计算 扩展数据 资金流向 盘口大单 A 股交易日历 批量能力 一次性获取全市场 5000+ 只 A 股行情 内置并发控制,不会把接口打挂 进度回调,知道当前拉取到哪里了 为什么要用它? 说实话,这个问题我自己也想过很久。毕竟市面上不是没有其他方案。 但仔细想想,stock-sdk 确实解决了一些痛点: 1. 零依赖,真的很小 压缩后不到 20KB。没有乱七八糟的依赖,不会给你的项目增加额外负担。 2. 浏览器和 Node.js 都能跑 这个是我一开始就确定的设计目标。不管你是做 Web 页面还是 Node.js 脚本,都能直接用。同时提供 ESM 和 CommonJS 两种格式,现代项目和老项目都兼容。 3. TypeScript 类型完整 说真的,类型提示这个东西,用过就回不去了。每个接口返回什么字段、每个参数是什么类型,IDE 里一目了然。写代码的时候不用反复查文档。 4. 接口稳定 数据源用的是腾讯财经和东方财富的公开接口,稳定性还是有保障的。而且我做了比较完善的错误处理,不会因为某个请求失败就整个崩掉。 适合什么场景? 这个 SDK 不是万能的,我也不打算把它做成大而全的东西。它比较适合这些场景: 股票看板:做一个自选股页面,看看涨跌 数据可视化:用 ECharts 或者 TradingView 画 K 线图 学习 Demo:金融课程、量化入门的演示项目 量化验证:快速验证一个交易策略的想法 定时脚本:Node.js 定时抓取行情数据 如果你需要更专业的量化回测、高频交易之类的,这个 SDK 可能就不太够用了。那种场景还是 Python 生态更成熟。 一些实际的例子 获取全市场 A 股行情 const allQuotes = await sdk.getAllAShareQuotes({ batchSize: 300, concurrency: 5, onProgress: (completed, total) => { console.log(`进度: ${completed}/${total}`); }, }); console.log(`共获取 ${allQuotes.length} 只股票`); 5000 多只股票,几秒钟就拉完了。并发控制是内置的,不用自己操心。
阅读全文