Package Exports
- stock-sdk
Readme
Stock SDK
English | 中文
为 前端和 Node.js 设计的股票行情 JavaScript SDK。
无需 Python、无需后端服务,直接在 浏览器或 Node.js 中获取 A 股 / 港股 / 美股 / 公募基金 的实时行情与 K 线数据。
✨ 零依赖 | 🌐 Browser + Node.js | 📦 轻量发布包 | 🧠 完整 TypeScript 类型
Documentation
👉🏻 官方文档
🧭 Stock Dashboard:基于 stock-sdk 搭建的股票数据大盘演示站点,欢迎体验。
Why stock-sdk?
如果你是前端工程师,可能遇到过这些问题:
- 股票行情工具大多是 Python 生态,前端难以直接使用
- 想做行情看板 / Demo,不想额外维护后端服务
- 财经接口返回格式混乱、编码复杂(GBK / 并发 / 批量)
- AkShare 很强,但并不适合浏览器或 Node.js 项目
stock-sdk 的目标很简单:
让前端工程师,用最熟悉的 JavaScript / TypeScript,优雅地获取股票行情数据。
使用场景
- 📊 股票行情看板(Web / Admin)
- 📈 数据可视化(ECharts / TradingView)
- 🎓 股票 / 金融课程 Demo
- 🧪 量化策略原型验证(JS / Node)
- 🕒 Node.js 定时抓取行情数据
特性
- ✅ 零依赖,轻量级发布包
- ✅ 支持 浏览器 和 Node.js 18+ 双端运行
- ✅ 同时提供 ESM 和 CommonJS 两种模块格式
- ✅ 完整的 TypeScript 类型定义和单元测试覆盖
- ✅ A 股、港股、美股、公募基金实时行情
- ✅ 历史 K 线(日/周/月)、分钟 K 线(1/5/15/30/60 分钟)和当日分时走势数据
- ✅ 技术指标:内置 MA、MACD、BOLL、KDJ、RSI、WR、BIAS、CCI、ATR、OBV、ROC、DMI、SAR、KC
- ✅ 期货行情:国内期货 K 线、全球期货实时行情与 K 线、期货库存数据
- ✅ 期权数据:中金所股指期权、上交所 ETF 期权、商品期权的报价 / K 线 / 分钟行情
- ✅ 资金流向(个股/大盘/排名/板块)、盘口大单、涨停板池、盘口异动 等扩展数据
- ✅ 沪深港通 / 北向资金(分时、汇总、持股排行、历史、个股持仓)
- ✅ 龙虎榜(详情、个股统计、机构买卖、营业部排行、席位明细)
- ✅ 大宗交易 + 融资融券 全套数据
- ✅ 获取全部 A 股代码列表(5000+ 只股票)和批量获取全市场行情(内置并发控制)
- ✅ 支持 provider 级重试 / 限流 / 熔断策略覆盖,兼容旧的全局请求配置
- ✅ AI / MCP 就绪 — 配套 stock-sdk-mcp MCP Server,一行命令接入 Cursor / Claude / Gemini 等 AI 工具
市场支持矩阵
不同市场的能力覆盖度差异较大,下表帮你快速判断 SDK 是否覆盖你的场景。 ✅ 已支持,⚠️ 部分支持/限制见备注,❌ 未支持。
| 能力 | A 股 | 港股 | 美股 | 公募基金 | 期货 | 期权 |
|---|---|---|---|---|---|---|
| 实时行情 | ✅ | ✅ | ✅ | ✅ | ✅ 全球期货 | ✅ ETF / 中金所 / 商品 |
| 历史 K 线(日/周/月) | ✅ | ✅ | ✅ | ❌ | ✅ 国内 + 全球 | ✅ |
| 分钟 K 线(5/15/30/60) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 当日分时(1 分钟) | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ ETF 期权 |
| 资金流向 | ✅ 个股/大盘/排名/板块 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 板块(行业 / 概念) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 龙虎榜 | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ 期权龙虎榜 |
| 沪深港通 / 北向资金 | ✅ 北向 | ✅ 南向 | ❌ | ❌ | ❌ | ❌ |
| 大宗交易 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 融资融券 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 涨停板 / 盘口异动 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 全市场代码列表 | ✅ 5000+ | ✅ | ✅ | ✅ | ❌ | ❌ |
| 批量行情 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 库存数据 | ❌ | ❌ | ❌ | ❌ | ✅ 国内 + COMEX | ❌ |
| 分红派送 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 交易日历 | ✅ + isTradingDay() 等工具 |
⚠️ 仅市场状态判断(按周一-周五) | ⚠️ 仅市场状态判断(按周一-周五) | — | — | — |
数据延迟:实时行情来自腾讯财经 / 东方财富等公开接口,非实时撮合, 通常有数十秒到数分钟延迟。SDK 不适合做高频交易决策。
港股 / 美股 K 线类型:自 v1.9.1 起拆分为
HKHistoryKline/USHistoryKline, 各自带currency与时区元信息;老的HKUSHistoryKline别名仍兼容。
安装
npm install stock-sdk
# 或
yarn add stock-sdk
# 或
pnpm add stock-sdk快速开始(10 行 Demo)
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}%)`);
});示例:全市场 A 股行情
前端直接一次性获取全市场 A 股行情(5000+股票),无需 Python 或后端服务。
const allQuotes = await sdk.getAllAShareQuotes({
batchSize: 300,
concurrency: 5,
onProgress: (completed, total) => {
console.log(`进度: ${completed}/${total}`);
},
});
console.log(`共获取 ${allQuotes.length} 只股票`);请求治理与错误码
import { StockSDK, HttpError, getSdkErrorCode } from '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)); // HTTP_ERROR / NETWORK_ERROR / TIMEOUT ...
}getSdkErrorCode 只做标准化识别,不会改变原始错误实例类型。网络错误仍然保持 TypeError,超时仍然保持 AbortError / DOMException 的兼容行为。
开发校验命令
yarn typecheck
yarn build
yarn test
yarn test:integration:smoke
# 全量集成回归
yarn test:integration:full🤖 AI / MCP 集成
Stock SDK 配套 MCP Server(stock-sdk-mcp),可一键接入主流 AI 工具:
| AI 工具 | 配置方式 |
|---|---|
| Cursor | ~/.cursor/mcp.json |
| Claude Desktop | claude_desktop_config.json |
| OpenClaw | ~/.clawdbot/config.yaml |
| Codex CLI | ~/.codex/config.json |
| Gemini CLI | ~/.gemini/settings.json |
配置示例:
{
"mcpServers": {
"stock-sdk": {
"command": "npx",
"args": ["-y", "stock-sdk-mcp"]
}
}
}内置 4 个专业 AI Skills: 技术分析 / 智能选股 / 市场概览 / 实时监控
API 列表
💡 API 详细文档请查阅 https://stock-sdk.linkdiary.cn/
实时行情
| 方法 | 说明 |
|---|---|
getFullQuotes |
A 股/指数全量行情 |
getSimpleQuotes |
A 股/指数简要行情 |
getHKQuotes |
港股行情 |
getUSQuotes |
美股行情 |
getFundQuotes |
公募基金行情 |
K 线数据
| 方法 | 说明 |
|---|---|
getHistoryKline |
A 股历史 K 线(日/周/月) |
getHKHistoryKline |
港股历史 K 线(日/周/月) |
getUSHistoryKline |
美股历史 K 线(日/周/月) |
getMinuteKline |
A 股分钟 K 线(1/5/15/30/60 分钟) |
getTodayTimeline |
A 股当日分时走势 |
技术指标
| 方法 | 说明 |
|---|---|
getKlineWithIndicators |
获取带技术指标的 K 线数据 |
calcMA |
计算均线(SMA/EMA/WMA) |
calcMACD |
计算 MACD |
calcBOLL |
计算布林带 |
calcKDJ |
计算 KDJ |
calcRSI |
计算 RSI |
calcWR |
计算威廉指标 |
calcBIAS |
计算乖离率 |
calcCCI |
计算商品通道指数 |
calcATR |
计算平均真实波幅 |
calcOBV |
计算能量潮 |
calcROC |
计算变动率指标 |
calcDMI |
计算趋向指标 |
calcSAR |
计算抛物线转向 |
calcKC |
计算肯特纳通道 |
行业板块
| 方法 | 说明 |
|---|---|
getIndustryList |
行业板块名称列表 |
getIndustrySpot |
行业板块实时行情 |
getIndustryConstituents |
行业板块成分股 |
getIndustryKline |
行业板块历史 K 线(日/周/月) |
getIndustryMinuteKline |
行业板块分时行情(1/5/15/30/60 分钟) |
概念板块
| 方法 | 说明 |
|---|---|
getConceptList |
概念板块名称列表 |
getConceptSpot |
概念板块实时行情 |
getConceptConstituents |
概念板块成分股 |
getConceptKline |
概念板块历史 K 线(日/周/月) |
getConceptMinuteKline |
概念板块分时行情(1/5/15/30/60 分钟) |
期货行情
| 方法 | 说明 |
|---|---|
getFuturesKline |
国内期货历史 K 线(日/周/月) |
getGlobalFuturesSpot |
全球期货实时行情 |
getGlobalFuturesKline |
全球期货历史 K 线(日/周/月) |
getFuturesInventorySymbols |
期货库存品种列表 |
getFuturesInventory |
期货库存数据 |
getComexInventory |
COMEX 黄金/白银库存 |
期权数据
| 方法 | 说明 |
|---|---|
getIndexOptionSpot |
中金所股指期权 T 型报价(看涨 + 看跌) |
getIndexOptionKline |
股指期权合约日 K 线 |
getCFFEXOptionQuotes |
中金所全部期权实时行情列表 |
getETFOptionMonths |
上交所 ETF 期权到期月份列表 |
getETFOptionExpireDay |
ETF 期权到期日与剩余天数 |
getETFOptionMinute |
ETF 期权当日分钟行情 |
getETFOptionDailyKline |
ETF 期权历史日 K 线 |
getETFOption5DayMinute |
ETF 期权 5 日分钟行情 |
getCommodityOptionSpot |
商品期权 T 型报价 |
getCommodityOptionKline |
商品期权合约日 K 线 |
getOptionLHB |
期权龙虎榜 |
扩展数据
| 方法 | 说明 |
|---|---|
getFundFlow |
资金流向(按代码批量查询) |
getPanelLargeOrder |
盘口大单占比 |
getTradingCalendar |
A 股交易日历 |
getDividendDetail |
股票分红派送详情 |
资金流向(深度)
| 方法 | 说明 |
|---|---|
getIndividualFundFlow |
个股资金流历史(日/周/月) |
getMarketFundFlow |
大盘(上证 + 深证)资金流历史 |
getFundFlowRank |
个股资金流排名(今日 / 3 日 / 5 日 / 10 日) |
getSectorFundFlowRank |
板块资金流排名(行业 / 概念 / 地域) |
getSectorFundFlowHistory |
单个板块的历史资金流 |
沪深港通 / 北向资金
| 方法 | 说明 |
|---|---|
getNorthboundMinute |
北向 / 南向资金分时数据 |
getNorthboundFlowSummary |
沪深港通市场资金流向汇总 |
getNorthboundHoldingRank |
北向 / 沪股通 / 深股通持股个股排行 |
getNorthboundHistory |
北向 / 南向资金历史 |
getNorthboundIndividual |
个股北向持仓历史 |
涨停板 / 盘口异动
| 方法 | 说明 |
|---|---|
getZTPool |
涨停 / 昨日涨停 / 强势 / 次新 / 炸板 / 跌停 6 大股池 |
getStockChanges |
22 种盘口异动(火箭发射 / 大笔买入 / 封涨停 等) |
getBoardChanges |
当日板块异动详情 |
龙虎榜
| 方法 | 说明 |
|---|---|
getDragonTigerDetail |
龙虎榜详情(按日期范围) |
getDragonTigerStockStats |
个股上榜统计(近 1/3/6 月、1 年) |
getDragonTigerInstitution |
机构买卖统计 |
getDragonTigerBranchRank |
营业部排行 |
getDragonTigerStockSeatDetail |
个股某日上榜席位明细(买入榜 + 卖出榜) |
大宗交易 / 融资融券
| 方法 | 说明 |
|---|---|
getBlockTradeMarketStat |
大宗交易市场每日总览 |
getBlockTradeDetail |
大宗交易明细 |
getBlockTradeDailyStat |
大宗交易每日统计(按股票汇总) |
getMarginAccountInfo |
融资融券账户统计 |
getMarginTargetList |
融资融券标的明细 |
批量查询
| 方法 | 说明 |
|---|---|
getAShareCodeList |
获取全部 A 股代码 |
getUSCodeList |
获取全部美股代码 |
getHKCodeList |
获取全部港股代码 |
getAllAShareQuotes |
获取全市场 A 股行情 |
getAllHKShareQuotes |
获取全市场港股行情 |
getAllUSShareQuotes |
获取全市场美股行情 |
getAllQuotesByCodes |
批量获取指定股票行情 |
搜索
| 方法 | 说明 |
|---|---|
search |
搜索股票代码/名称/拼音 |
搜索结果可配合 generateSearchExternalLinks(result) 生成东方财富、雪球外链。
许可证
🌐 官网 | 📦 NPM | 📖 GitHub | 🎮 在线演示 | 🧭 Stock Dashboard | 🐛 Issues
如果这个项目对你有帮助,欢迎 Star ⭐ 或提出 Issue 反馈。