种感觉和 GitHub star 增长不太一样。star 是一个数字而被周刊收录更像是一种确认这个工具确实解决了某些人的真实问题也被更多有类似需求的开发者看见了。之后项目也开始进入更快的迭代节奏版本已经推进到v1.10.0GitHub 获得了940 stars累计处理了10 个 issues从板块、基金、搜索类型区分到请求限流和并发安全很多能力都来自社区反馈所以这篇文章想重新系统介绍一下现在的stock-sdk到底能做什么适合哪些人用以及它为什么对前端开发者比较友好。如果你是前端工程师、独立开发者、行情看板作者、量化爱好者或者正在尝试用 AI 工具搭一个金融数据小应用这个 SDK 可能能帮你省掉不少重复工作。为什么要做 stock-sdk前端想获取股票行情数据过去经常会遇到几个很典型的问题。一方面成熟的数据工具大多集中在 Python 生态比如 akshare、tushare、efinance 等。它们能力很强但天然不是为浏览器或前端工程准备的。另一方面如果只是想做一个行情看板、个股监控 demo、基金展示页专门再维护一个 Node 或 Python 后端成本又显得有点重。更麻烦的是不同财经数据源返回的数据格式并不统一有的接口返回~分隔字符串有的需要处理 GBK 编码有的还套着 jsonp。真正写起来很多时间都花在了解析和兼容上。stock-sdk想解决的就是这个问题让前端开发者可以直接用 JavaScript / TypeScript 获取常用金融行情数据。它的几个核心特点是零依赖支持浏览器和 Node.js 18内置完整 TypeScript 类型安装后即可调用对常见财经接口做了统一封装一个最简单的调用示例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}%)); });这段代码既可以跑在现代 Node 环境里也可以直接跑在浏览器里。当前能力概览经过多个版本迭代后stock-sdk已经不只是一个简单的股票报价工具而是逐渐扩展成了一个面向前端的行情数据工具箱。下面按数据类型拆开介绍。1. 覆盖 A 股、港股、美股和基金的实时行情目前 SDK 已经支持多个市场的实时行情获取方法主要用途getFullQuotes/getSimpleQuotes获取 A 股、指数的完整或简要行情getHKQuotes获取港股行情getUSQuotes获取美股行情getFundQuotes获取公募基金行情如果需要一次性拉取全市场 A 股数据也可以直接使用内置的批量接口const allQuotes await sdk.getAllAShareQuotes({ batchSize: 300, concurrency: 5, onProgress: (completed, total) console.log(${completed}/${total}), });它会自动按批次并发请求适合做市场总览、行情看板、涨跌分布统计等场景。2. 历史 K 线与盘中分时除了实时行情K 线和分时数据也是金融应用里最常用的基础数据。stock-sdk目前支持A 股、港股、美股的日线 / 周线 / 月线1 / 5 / 15 / 30 / 60 分钟级别 K 线当日分时走势对应方法包括getHistoryKlinegetHKHistoryKlinegetUSHistoryKlinegetMinuteKlinegetTodayTimeline从 v1.9.1 开始港股和美股 K 线类型被拆分为独立的HKHistoryKline与USHistoryKline。这样做的好处是返回结果里可以带上更明确的货币和时区信息调用方不需要再额外猜测这条数据属于哪个市场、使用什么交易时区。3. 常见技术指标内置拿到 K 线之后很多应用的下一步就是计算技术指标。为了减少重复实现SDK 内置了常见指标计算能力包括MA / EMA / WMA / MACD / BOLL / KDJ / RSI / WR BIAS / CCI / ATR / OBV / ROC / DMI / SAR / KC如果你不想自己先取 K 线、再单独计算指标可以直接使用const data await sdk.getKlineWithIndicators({ code: sh600519, period: day, indicators: [MA(5), MA(20), MACD, BOLL], });这个方法会一次返回 K 线数据和指定指标结果比较适合做图表、策略 demo 或 AI 分析输入。4. 行业板块与概念板块对于 A 股应用来说只看个股往往不够板块数据也很重要。SDK 对行业板块提供了比较完整的一组方法getIndustryListgetIndustrySpotgetIndustryConstituentsgetIndustryKlinegetIndustryMinuteKline概念板块也提供了对应的getConcept*系列方法。这意味着你可以比较方便地拿到板块列表、板块行情、成分股、K 线和分时数据。对于做板块轮动、热点追踪、市场情绪分析的应用来说这一层封装能节省不少接口适配工作。5. 期货和期权数据除了股票和基金stock-sdk也覆盖了一部分衍生品数据。期货方面包括国内期货 K 线全球期货实时行情全球期货 K 线期货库存数据COMEX 黄金、白银库存期权方面包括中金所股指期权 T 型报价ETF 期权当日分钟数据ETF 期权历史日 KETF 期权 5 日分钟数据商品期权报价和 K 线期权龙虎榜这些能力相对小众但对于做衍生品研究、策略验证或数据探索的开发者来说会很实用。6. 资金流向与北向资金资金面数据是很多 A 股用户非常关注的一类数据。SDK 目前支持个股、大盘、行业和北向资金相关接口例如getIndividualFundFlow个股资金流历史getMarketFundFlow大盘资金流历史getFundFlowRank个股资金流排名getSectorFundFlowRank板块资金流排名getNorthboundMinute北向资金分时getNorthboundHoldingRank北向持股排行getNorthboundHistory北向资金历史getNorthboundIndividual个股北向持仓这些数据可以用在市场复盘、资金流监控、个股热度判断等场景里。7. 龙虎榜、大宗交易、融资融券A 股市场里还有一些非常本土化的数据比如龙虎榜、大宗交易和融资融券。stock-sdk也对这些数据做了封装龙虎榜详情个股龙虎榜统计机构买卖数据营业部排行席位明细大宗交易市场总览大宗交易明细个股每日大宗交易统计融资融券账户统计融资融券标的明细如果你想做游资跟踪、机构动向分析或杠杆资金观察这部分接口会比较有用。8. 涨停板池与盘口异动短线交易相关的数据也有覆盖。getZTPool支持获取多类股池包括涨停昨日涨停强势股次新股炸板股跌停股getStockChanges则覆盖 22 种盘口异动比如火箭发射、大笔买入、封涨停等。另外getBoardChanges可以获取当日板块异动详情。这类数据适合用来做实时监控、短线情绪看板或热点扫描。9. v1.10.0 重点增强基金数据v1.10.0 对基金能力做了一次比较大的扩展。基金相关 issue 是项目被更多人看到之后经常出现的需求之一所以这一版重点补齐了几类常用数据方法能力说明getFundNavHistory获取基金历史净值包括单位净值和累计净值getFundEstimate获取当日实时估值包括 T-1 单位净值和盘中估算getFundRankHistory获取同类排名走势包括近三月每日排名和百分位getFundDividendList获取基金或 ETF 分红明细支持全市场按年份分页如果你想做基金看板、ETF 展示页、定投辅助工具这部分能力基本可以直接拿来用。10. 搜索、交易日历、分红和外链生成除了核心行情数据SDK 里还有一些看起来不大但很省心的工具能力。比如search支持按代码、名称、拼音搜索搜索结果中区分股票、ETF 等类型getTradingCalendar获取 A 股交易日历isTradingDay()判断某天是否为交易日getDividendDetail获取个股分红派送数据generateSearchExternalLinks(result)根据搜索结果生成东方财富、雪球等外部链接这些能力在实际做产品或 demo 时经常会用到可以减少不少边角逻辑。11. 请求治理重试、限流、熔断和错误码如果只是写 demo能请求成功就够了。但如果要在真实应用里使用接口稳定性就很重要。stock-sdk对请求层做了一些治理能力const sdk new StockSDK({ retry: { maxRetries: 2, baseDelay: 500 }, providerPolicies: { eastmoney: { timeout: 12000, rateLimit: { requestsPerSecond: 3, maxBurst: 3 }, }, }, }); try { await sdk.getSimpleQuotes([sh600519]); } catch (error) { if (error instanceof HttpError) { console.log(error.status, error.statusText); } console.log(getSdkErrorCode(error)); }目前支持全局重试配置退避延迟按数据源配置 timeout按数据源配置限流策略标准化错误码保留原始错误类型浏览器环境下的全局 mutex避免并发请求踩同一数据源其中并发安全这一块也来自社区真实反馈有用户提到使用一段时间后可能触发数据源限制因此 SDK 在请求治理上做了更保守的处理。12. 面向 AI 工具的 MCP Server最近一年很多开发者开始让 AI 工具参与数据分析、选股辅助和看板生成。为了让stock-sdk可以被 AI 工具直接调用我也配套发布了stock-sdk-mcp它是一个标准 MCP Server可接入 Cursor、Claude Desktop、Codex CLI、Gemini CLI 等工具。配置示例{ mcpServers: { stock-sdk: { command: npx, args: [-y, stock-sdk-mcp] } } }接入之后你可以直接让 AI 调用行情数据例如帮我看一下贵州茅台最近的 MACD 走势。今天涨停板有哪些北向资金最近 5 天加仓最多的 10 只股票是什么目前 MCP 侧内置了 4 类专业 AI Skills技术分析智能选股市场概览实时监控这部分会继续扩展因为 AI 金融数据确实是一个很适合工具化的方向。项目现在的一些数据截至目前stock-sdk的几个阶段性数据如下940 GitHub stars68 forks最新版本推进到v1.10.0已关闭10 issues被阮一峰科技爱好者周刊issue-397收录开源项目当然不能只看数字但这些反馈确实给了我继续维护的动力。尤其是看到用户在 issue 里提出具体需求比如支持基金、补充分红、区分 ETF 类型、处理并发限制等会明显感觉到这个项目不是一个人关起门来写的工具而是在被真实场景不断推动着往前走。接下来计划做什么后续我会继续围绕几个方向迭代继续补强基金数据比如盘中估值多源对比、定投回测等增强RequestClient的可观测性开放 per-provider metrics扩展 MCP Skills让 AI 更自然地使用金融数据根据社区 issue 继续补齐高频需求如果你正在做前端行情页、金融数据看板、量化 demo或者只是想用 TypeScript 快速拿到一些常用行