Stock写给前端的股票行情 SDK: stock-sdk,终于不消再求后端帮助了

[复制链接]
发表于 2025-12-29 17:03:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
用 JavaScript 获取股票数据,真的有这么难吗?
因由

说实话,这个项目标诞生完满是被逼出来的。
客岁我想做一个股票行情看板,就是那种简单的页面,能及时体现几只自选股的涨跌。听起来很简单对吧?但当我真正开始动手的时间,才发现事变没那么简单。
网上搜一圈,股票数据接口干系的工具险些满是 Python 的。AkShare、Tushare、掘金量化……确实牛,功能也确实全,但标题是——我是个前端啊。
为了一个藐视板,岂非要我专门搭一个 Python 后端?再写个接口转发给前端?这也太折腾了。
于是我开始找有没有 JavaScript 能用的方案。结果你猜怎么着?翻遍了 npm,险些找不到一个好用的。有的年久失修,有的只支持 Node.js 不支持欣赏器,有的范例支持一塌糊涂,另有的接口莫名其妙就挂了。
探索了一圈之后,我决定:算了,自己写一个得了。
stock-sdk 是什么?

简单说,stock-sdk 就是一个专门给前端和 Node.js 用的股票行情 SDK。
核心目标就一个:让你用最认识的 JavaScript / TypeScript,10 行代码搞定股票数据获取。
  1. import { StockSDK } from 'stock-sdk';
  2. const sdk = new StockSDK();
  3. const quotes = await sdk.getSimpleQuotes(['sh000001', 'sz000858', 'sh600519']);
  4. quotes.forEach(q => {
  5.   console.log(`${q.name}: ${q.price} (${q.changePercent}%)`);
  6. });
复制代码
就这么简单。不消搭后端,不消装 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 股行情
  1. const allQuotes = await sdk.getAllAShareQuotes({
  2.   batchSize: 300,
  3.   concurrency: 5,
  4.   onProgress: (completed, total) => {
  5.     console.log(`进度: ${completed}/${total}`);
  6.   },
  7. });
  8. console.log(`共获取 ${allQuotes.length} 只股票`);
复制代码
5000 多只股票,几秒钟就拉完了。并发控制是内置的,不消自己费心。
获取带技能指标的 K 线
  1. const data = await sdk.getKlineWithIndicators('sh600519', {
  2.   period: 'daily',
  3.   count: 100,
  4.   indicators: {
  5.     ma: { periods: [5, 10, 20] },
  6.     macd: true,
  7.     boll: true,
  8.   },
  9. });
  10. // data.kline 是原始 K 线
  11. // data.indicators.ma 是均线数据
  12. // data.indicators.macd 是 MACD 数据
  13. // data.indicators.boll 是布林带数据
复制代码
一个接口把 K 线和指标都算好了,直接拿去绘图就行。
写在末了

这个项目从客岁开始写,断断续续维护到如今,功能也越来越完满了。
实在我不绝以为,工具这个东西,好欠好用自己最清楚。stock-sdk 就是我自己在用的东西,遇到标题就修,须要新功能就加。
如果你也是前端,也须要获取股票数据,不妨试试。有标题欢迎提 Issue,我会只管相应。
干系链接
安装就一行下令:
  1. npm install stock-sdk
复制代码
如果以为还不错,给个 Star ⭐ 呗~
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表