stock-sdk
v1.9.0
Published
Tencent qt.gtimg.cn stock quote SDK - supports both browser and Node.js
Downloads
2,707
Maintainers
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 工具
安装
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 | 搜索股票代码/名称/拼音 |
许可证
🌐 官网 | 📦 NPM | 📖 GitHub | 🎮 在线演示 | 🧭 Stock Dashboard | 🐛 Issues
如果这个项目对你有帮助,欢迎 Star ⭐ 或提出 Issue 反馈。
