跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScriptNode.js大前端算法

前端股票行情 SDK:stock-sdk,支持浏览器与 Node.js

stock-sdk 是一款基于 TypeScript 开发的前端股票行情 SDK,支持浏览器与 Node.js 环境运行。该工具零依赖,提供实时行情、K 线数据、技术指标计算及批量并发处理能力。通过封装 GBK 编码解析、请求超时控制等底层细节,简化了前端获取金融数据的流程,并支持 CDN 直引快速集成,适用于行情看板、数据可视化及策略验证场景。

内存管理发布于 2026/2/7更新于 2026/9/106.3K 浏览
前端股票行情 SDK:stock-sdk,支持浏览器与 Node.js

如果你也做过股票行情相关的小工具或 Demo,大概率踩过类似的坑:想在前端搞个行情看板、做 TradingView 或 ECharts 的数据源,或者在 Node 里定时抓取数据验证策略,结果发现生态全在 Python,接口返回格式混乱,再加上编码(GBK)、批量、并发、跨域等现实问题,开发体验极差。

因此开发了 stock-sdk。目标很简单:让前端工程师用最熟悉的 JavaScript / TypeScript,直接在浏览器或 Node.js 里优雅地拿到行情和 K 线数据。

以下将介绍其核心特性与使用场景。

核心特性

stock-sdk 是一个 TypeScript SDK,主要特点如下:

  • 零依赖:纯 TS 实现,不靠第三方运行时包
  • 双端运行:浏览器 + Node.js 18+ 均可直接使用(同时提供 ESM / CJS)
  • 轻量:压缩后体积很小(< 20KB)
  • 类型友好:接口类型完整,TS 开发体验流畅

数据能力覆盖了常用的'看盘/做图/做小策略验证'需求:

  • 实时行情:A 股/指数、港股、美股、基金
  • K 线:日/周/月历史 K 线;分钟 K 线(1/5/15/30/60);当日分时走势
  • 板块:行业板块/概念板块(列表、实时、成分股、K 线、分时)
  • 扩展数据:资金流向、盘口大单占比、交易日历
  • 批量能力:代码列表、全市场批量行情(带并发控制)
  • 技术指标:MA、MACD、BOLL、KDJ、RSI、WR、BIAS、CCI、ATR(支持'只算指标'或'拿到 K 线顺便把指标算好')

快速上手示例

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}%)`);
});

该 SDK 不强制要求搭建后端。很多时候只需快速跑通行情、查看页面效果或验证交互,无需专门上服务。

常用场景

1. 前端直接构建行情看板

拿行情 + 画图,本质是把数据源稳定地喂给 UI。SDK 已封装了编码、解析、类型、批量等脏活,前端只需关注渲染。

const sdk = new StockSDK({ timeout: 8000 });
2. Node 定时任务:抓全市场行情

全市场(5000+)行情抓取若无批量和并发控制,体验会很难受。

const allQuotes = await sdk.getAllAShareQuotes({
  batchSize: 300,
  concurrency: 5,
  onProgress: (completed, total) => {
    console.log(`进度:${completed}/${total}`);
  },
});
console.log(`共获取 ${allQuotes.length} 只股票`);

建议根据网络情况调整 batchSize 和 concurrency:并发过高可能触发限制或增加失败率。

技术指标自动补全

计算指标时,若需查看 2024-01-01 之后的数据,但指标计算需要更早的'前置 K 线'来预热,手写容易遗漏导致头段数据不准。

getKlineWithIndicators 会根据所选指标自动计算所需最大前置天数,扩展请求范围,算完后再按指定日期过滤返回。

const data = await sdk.getKlineWithIndicators('sz000858', {
  startDate: '20240101',
  endDate: '20241231',
  indicators: {
    ma: { periods: [5, 10, 20, 60] },
    macd: true,
    boll: true,
    kdj: true,
  },
});
console.log(data[0].date, data[0].ma?.ma5, data[0].macd?.dif);

此外,它还能自动识别市场(A/HK/US),减少分支逻辑。

工程化原则

  • 不用依赖就不用依赖:减少不确定性
  • 用原生能力填坑:如 GBK 编码使用 TextDecoder,超时使用 AbortController
  • 批量可控并发:全市场数据需求必备
  • TS 体验优先:IDE 中提供清晰字段提示而非 any

浏览器集成

可直接通过 CDN 引入静态页 Demo:

<script type="module">
  import { StockSDK } from 'https://unpkg.com/stock-sdk/dist/index.js';
  const sdk = new StockSDK();
  const quotes = await sdk.getFullQuotes(['sz000858', 'sh600519']);
  console.log(quotes);
</script>

主要 API 接口

  • 行情:getSimpleQuotes / getFullQuotes / getHKQuotes / getUSQuotes / getFundQuotes
  • K 线:getHistoryKline / getMinuteKline / getTodayTimeline / getHKHistoryKline / getUSHistoryKline
  • 指标:getKlineWithIndicators + 独立 calcXX 函数
  • 板块:getIndustryList / getIndustrySpot / getIndustryConstituents / getConceptList
  • 批量:getAShareCodeList / getAllAShareQuotes / getAllHKShareQuotes / getAllUSShareQuotes

详细文档及源码可参考:

  • npm:https://www.npmjs.com/package/stock-sdk
  • GitHub:https://github.com/chengzuopeng/stock-sdk

贡献与反馈

目标是先把'前端拿行情这件事'做得干净、轻巧、可复用。如果遇到字段缺失、接口变动或想要更多市场/数据源,可在 GitHub 提 Issue 跟进。

目录

  1. 核心特性
  2. 快速上手示例
  3. 常用场景
  4. 1. 前端直接构建行情看板
  5. 2. Node 定时任务:抓全市场行情
  6. 技术指标自动补全
  7. 工程化原则
  8. 浏览器集成
  9. 主要 API 接口
  10. 贡献与反馈

更多推荐文章

查看全部
  • Skills 智能体驱动开发:从使用到项目实战详解
  • 基于FPGA的五级积分梳状CIC滤波器Verilog设计
  • 鸿蒙金融理财全栈项目:生态合作、用户运营与数据变现
  • JavaScript 面试技巧与常见问题解析
  • 位运算实战:位图与异或技巧解析高频算法题
  • Flutter modular_core 在鸿蒙系统下的依赖注入与模块化解耦实践
  • OpenClaw Zero Token:基于浏览器自动化的免 Token 大模型调用方案
  • Mac Book Pro 本地部署大模型入门教程
  • Ubuntu 22.04 安装后启动卡死问题解决方案
  • 电子战侦察干扰技术在反无人机领域的应用分析
  • Python 机器学习:KNN 算法原理与实战解析
  • 一份给安全从业者的CISP证书参考指南
  • FPGA 工程实践:软件程序解析与调试经验
  • Nginx 在 Linux 中的配置及维护指南
  • 归并排序的核心思想与进阶应用
  • deepyr 鸿蒙化适配指南:基于 Jaspr 构建 daisyUI 响应式 Web 应用
  • Python 月相可视化系统:天文计算与 Web 界面实现
  • Suno AI 快速入门与创作指南
  • OpenClaw 本地 AI 代理技术架构与实战部署详解
  • Java 调用 CPLEX:安装配置与示例代码

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online