{"repo":"chengzuopeng/stock-sdk","free":true,"listed":false,"github":"https://github.com/chengzuopeng/stock-sdk","clone":"git clone https://github.com/chengzuopeng/stock-sdk.git","description":"为前端设计的无需 Python、无需后端服务、零依赖的获取股票数据 JavaScript SDK。","language":"TypeScript","stars":1858,"topics":["a-share","ai-agent","akshare","finance","financial-data","fintech","free-stock-market-api","mcp","nodejs","quantitative-finance","sdk","stock","stock-data","stock-market","stock-prices","stocks","stocks-api","technical-analysis","trading","typescript"],"license":"ISC","category":"dev_tool","readme_excerpt":"# Stock SDK\n\n[![npm version](https://img.shields.io/npm/v/stock-sdk.svg)](https://www.npmjs.com/package/stock-sdk)\n[![npm downloads](https://img.shields.io/npm/dm/stock-sdk.svg)](https://www.npmjs.com/package/stock-sdk)\n[![license](https://img.shields.io/npm/l/stock-sdk)](https://github.com/chengzuopeng/stock-sdk/blob/master/LICENSE)\n[![MCP](https://img.shields.io/badge/protocol-MCP-blue)](https://stock-sdk.linkdiary.cn/mcp/)\n[![AI Ready](https://img.shields.io/badge/AI-Ready-orange)](https://stock-sdk.linkdiary.cn/mcp/)\n\n**[English](./README_EN.md)** | 中文\n\n为 **前端和 Node.js 设计的股票行情 JavaScript SDK**。\n\n无需 Python、无需后端服务，直接在 **浏览器或 Node.js** 中获取 **A 股 / 港股 / 美股 / 公募基金** 的实时行情与 K 线数据。还自带 **命令行工具** 与 **MCP server**，一条命令取行情或接入 AI。\n\n**✨ 零依赖、轻量发布包 | 🌐 Browser + Node.js | 📦 ESM + CJS + subpath | 🧠 完整 TypeScript 类型 | 🖥️ CLI | 🤖 MCP**\n\n> ✨ **v2.0.0**：v2 是一次架构跃迁（命名空间 API、统一符号模型、`Quote` 可辨识联合、统一错误体系、CLI / MCP / subpath 导出）。\n> 安装：`npm i stock-sdk`。从 v1 升级请先读 [v1 → v2 迁移指南](https://stock-sdk.linkdiary.cn/guide/migration-v1-to-v2)（**破坏性变更，无兼容别名**）。\n\n## 📖 官网文档\n\n> ## 👉 https://stock-sdk.linkdiary.cn\n>\n> 完整 API、命名空间总览、CLI / MCP 指南、在线 Playground、v1 → v2 迁移文档全部在这里。先看官网再上手最快。\n>\n> （[v1 稳定版文档](https://v1.stock-sdk.linkdiary.cn) 已归档）\n\n📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线 Playground](https://stock-sdk.linkdiary.cn/playground/)\n\n🧭 [Stock Dashboard](https://chengzuopeng.github.io/stock-dashboard/)：基于 stock-sdk 搭建的股票数据大盘演示站点，欢迎体验。\n\n## Why stock-sdk？\n\n如果你是前端工程师，可能遇到过这些问题：\n\n* 股票行情工具大多是 **Python 生态**，前端难以直接使用\n* 想做行情看板 / Demo，不想额外维护后端服务\n* 财经接口返回格式混乱、编码复杂（GBK / 并发 / 批量）\n\n**stock-sdk 的目标很简单：**\n\n> 让前端工程师，用最熟悉的 JavaScript / TypeScript，优雅地获取股票行情数据。\n\n---\n\n## 使用场景\n\n* 📊 股票行情看板（Web / Admin）\n* 📈 数据可视化（ECharts / TradingView）\n* 🎓 股票 / 金融课程 Demo\n* 🧪 量化策略原型验证（JS / Node）\n* 🕒 Node.js 定时抓取行情数据\n* 🖥️ 命令行临时查行情 / 🤖 给 AI 工具接数据源\n\n---\n\n## 特性\n\n- ✅ **零依赖**，浏览器 + Node.js 18+ 双端运行；同时提供 **ESM** 和 **CommonJS**\n- ✅ **命名空间 API**：`sdk.quotes.cn()` / `sdk.kline.cn()` / `sdk.options.etf.dailyKline()`，按领域分组、IDE 自动补全友好\n- ✅ **统一符号模型**：`string` 一等公民，`sh600519` / `600519` / `600519.SH` / `00700` / `hk00700` / `AAPL` / `105.AAPL` 等写法容错解析；支持中证等特殊指数（`930955` / `H30533` / `HSHCI` / `GDAXI`，[详见符号指南](https://stock-sdk.linkdiary.cn/guide/symbols.html)）\n- ✅ **A 股 / 港股 / 美股 / 公募基金**实时行情、历史 K 线（日/周/月）、分钟 K 线（1/5/15/30/60）、当日分时\n- ✅ **技术指标**：MA / MACD / BOLL / KDJ / RSI / WR / BIAS / CCI / ATR / OBV / ROC / DMI / SAR / KC\n- ✅ **筹码分布（CYQ）**：`sdk.chips.cn/hk/us` 获利比例 / 平均成本 / 90-70 成本区间与集中度 / 筹码峰直方图（东财算法本地计算，零新增数据源）\n- ✅ **信号 / 选股 / 回测**：`calcSignals`（金叉死叉/超买超卖等事件识别）、链式选股器、本地回测\n- ✅ **期货 / 期权 / 资金流 / 龙虎榜 / 北向 / 大宗交易 / 融资融券 / 涨停板** 等全套扩展数据\n- ✅ **基金深度数据**：历史净值、实时估值、同类排名走势、基金/ETF 分红送配、**主题基金**\n- ✅ **subpath 导出**：`stock-sdk/{indicators,signals,symbols,screener,cache,errors}`，纯计算不拖入网络层，tree-shake 友好\n- ✅ **统一错误体系**：对外只抛 `SdkError`，带标准 `code`，可从 `stock-sdk/errors` 导入\n- ✅ **请求治理**：provider 级重试 / 限流 / 熔断 + 可注入 `fetchImpl` / `signal` / 生命周期 `hooks`\n- ✅ **CLI**：`stock-sdk quote 600519` 终端直接取行情\n- ✅ **内置 MCP server**：`stock-sdk mcp` 一行接入 Cursor / Claude / Codex 等 AI 工具（零依赖手写，无 `@modelcontextprotocol/sdk`）\n\n---\n\n## 安装\n\n```bash\n# 最新版（v2：命名空间 API / CLI / MCP）\nnpm install stock-sdk\n\n# v1 旧版（已封存，仅维护 critical 修复）\nnpm install stock-sdk@legacy\n```\n\n## 快速开始\n\n```ts\nimport { StockSDK } from 'stock-sdk';\n\nconst sdk = new StockSDK();\n\n// 命名空间 API（v2）— 符号写法容错，'600519' / 'sh600519' / '600519.SH' 都可\nconst quotes = await sdk.quotes.cnSimple(['sh000001', 'sz000858', 'sh600519']);\nquotes.forEach((q) => {\n  console.log(`${q.name}: ${q.price} (${q.changePercent}%)`);\n});\n\n// 历史 K 线 + 技术指标\nconst kline = await sdk.kline.withIndicators('600519', {\n  period: 'daily',\n  indicators: { ma: { periods: [5, 10, 20] }, macd: {} },\n});\n\n// 全市场 A 股行情（5000+ 股票，内置并发控制）\nconst all = await sdk.batch.cn({ concurrency: 5 });\nconsole.log(`共 ${all.length} 只`);\n```\n\n> 港股 `'00700'` / `'hk00700'`，美股 `'AAPL'` / `'105.AAPL'`，由 `normalizeSymbol` 统一容错解析。\n\n---\n\n## 命令行（CLI）\n\n安装后即得 `stock-sdk` 命令（或用 `npx`）：\n\n```bash\n# 行情（按代码自动识别市场）\nnpx stock-sdk quote 600519 00700 AAPL\n# K 线 + 输出截断\nnpx stock-sdk kline 600519 --period weekly --limit 30\n# 带技术指标\nnpx stock-sdk indicators 600519 --ma 5,10,20 --macd\n# 搜索\nnpx stock-sdk search 茅台\n# 任意命名空间方法直达\nnpx stock-sdk quotes cn sh600519 sz000001\n```\n\n默认 JSON 输出，可加 `--format table|csv`、`--pretty`、`--limit N`。\n\n---\n\n## 🤖 AI / MCP 集成\n\nv2 内置零依赖 MCP server，一条命令启动：\n\n```bash\nnpx stock-sdk mcp\n```\n\n接入 Cursor / Claude Desktop / Codex / Gemini 等（配置 `mcpServers`）：\n\n```json\n{\n  \"mcpServers\": {\n    \"stock-sdk\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"stock-sdk\", \"mcp\"]\n    }\n  }\n}\n```\n\n环境变量 `STOCK_SDK_MCP_TOOLS=core|full|<逗号分隔工具名>` 控制工具集范围（默认 `core`）。\n\n除工具外还内置 **7 个场景化 AI Skills**（MCP Prompts，如 `analyze_stock` / `screen_stocks` / `diagnose_stock`），支持的客户端可一键触发；`STOCK_SDK_MCP_PROMPTS=core|full|<名单>` 控制技能集（默认 `core`）。详见 [AI Skills 文档](https://stock-sdk.linkdiary.cn/skills/)。\n\n👉 [完整 MCP 文档](https://stock-sdk.linkdiary.cn/mcp/)\n\n---\n\n## 信号 / 选股 / 回测\n\n```ts\nimport { calcSignals } from 'stock-sdk/signals';\nimport { screen, backtest } from 'stock-sdk/screener';\n\n// 金叉/死叉/超买超卖等事件识别（基于带指标的 K 线）\nconst signals = calcSignals(klineWithIndicators, {\n  ma: { fast: 5, slow: 20 },\n  rsi: {},\n});\n\n// 链式选股（输入任意行情数组，纯本地、无网络）\nconst picks = screen(allQuotes)\n  .where((q) => q.pe != null && q.pe < 20)\n  .where((q) => q.changePercent > 3)\n  .sortBy((q) => q.amount)\n  .top(20);\n\n// 本地回测\nconst report = backtest({\n  klines,\n  strategy: (bar, i, all) => 'hold', // 返回 'buy' | 'sell' | 'hold'\n});\nconsole.log(report.totalReturn, report.winRate, report.maxDrawdown);\n```\n\n---\n\n## 请求治理与错误\n\n```ts\nimport { StockSDK } from 'stock-sdk';\nimport { HttpError, getSdkErrorCode } from 'stock-sdk/errors';\n\nconst sdk = new StockSDK({\n  retry: { maxRetries: 2, baseDelay: 500 },\n  providerPolicies: {\n    eastmoney: { timeout: 12000, rateLimit: { requestsPerSecond: 3, maxBurst: 3 } },\n  },\n});\n\ntry {\n  await sdk.quotes.cnSimple(['sh600519']);\n} catch (error) {\n  // v2 对外只抛 SdkError，带统一 code\n  if (error instanceof HttpError) console.log(error.status, error.statusText);\n  console.log(getSdkErrorCode(error)); // HTTP_ERROR / NETWORK_ERROR / TIMEOUT / ABORTED / PARSE_ERROR ...\n}\n```\n\n---\n\n## 子路径导出（subpath）\n\n只用纯计算（指标 / 符号 / 信号 / 选股）时，从 subpath 导入，bundle 不会拖入 `RequestClient` 与所有 provider：\n\n```ts\n// 14 个指标、共 17 个纯函数(MA 族含 calcSMA/calcEMA/calcWMA 三个变体):\n// calcSMA / calcEMA / calcWMA / calcMA / calcMACD / calcBOLL / calcKDJ /\n// calcRSI / calcWR / calcBIAS / calcCCI / calcATR / calcOBV / calcROC /\n// calcDMI / calcSAR / calcKC\nimport { calcMACD, calcKDJ } from 'stock-sdk/indicators';\nimport { normalizeSymbol, toTencentSymbol } from 'stock-sdk/symbols';\nimport { calcSignals } from 'stock-sdk/signals';\nimport { screen, backtest } from 'stock-sdk/screener';\nimport { MemoryCacheStore, cacheThrough } from 'stock-sdk/cache';\nimport { SdkError, isSdkError, getSdkErrorCode } from 'stock-sdk/errors';\n```\n\n---\n\n## 市场支持矩阵\n\n不同市场的能力覆盖度差异较大，下表帮你快速判断 SDK 是否覆盖你的场景。\n\n- ✅ 已支持 ｜ ⚠️ 部分支持（见备注）｜ ❌ 暂未实现 ｜ — 概念不适用\n\n| 能力 | A 股 | 港股 | 美股 | 公募基金 | 期货 | 期权 |\n|------|:----:|:----:|:----:|:--------:|:----:|:----:|\n| 实时行情 | ✅ | ✅ | ✅ | ✅ | ✅ 全球期货 | ✅ ETF / 中金所 / 商品 |\n| 历史 K 线（日/周/月） | ✅ | ✅ | ✅ | ⚠️ 场内 ETF/LOF | ✅ 国内 + 全球 | ✅ |\n| 分钟 K 线（5/15/30/60） | ✅ | ✅ `kline.hkMinute` | ✅ `kline.usMinute` | ⚠️ 场内 ETF/LOF | ❌ | ❌ |\n| 筹码分布（CYQ） | ✅ `chips.cn` | ✅ `chips.hk` | ✅ `chips.us` | — | — | — |\n| 当日分时（1 分钟） | ✅ `quotes.timeline` | ✅ `kline.hkMinute`(period='1') | ✅ `kline.usMinute`(period='1') | ⚠️ 场内 ETF/LOF | ❌ | ✅ ETF 期权 |\n| 分红派送 | ✅ | ❌ | ❌ | ✅ 基金 + ETF | — | — |\n| 资金流向 | ✅ 个股/大盘/排名/板块 | ❌ | ❌ | — | — | — |\n| 板块（行业 / 概念） | ✅ | ❌ | ❌ | ❌ | — | — |\n| 龙虎榜 | ✅ | — | — | — | — | ✅ 期权龙虎榜 |\n| 沪深港通 / 北向资金 | ✅ 北向 | ✅ 南向 | — | — | — | — |\n| 大宗交易 / 融资融券 | ✅ | ❌ | ❌ | — | — | — |\n| 涨停板 / 盘口异动 | ✅ | — | — | — | — | — |\n| 全市场代码列表 / 批量行情 | ✅ 5000+ | ✅ | ✅ | ✅ 代码 | ❌ | ❌ |\n| 库存数据 | — | — | — | — | ✅ 国内 + COMEX | — |\n| 交易日历 | ✅ `calendar.*` | ⚠️ 仅市场状态 | ⚠️ 仅市场状态 | — | — | — |\n\n> **数据延迟**：实时行情来自腾讯财经 / 东方财富等公开接口，**非实时撮合**，通常有数十秒到数分钟延迟，不适合高频交易决策。\n\n---\n\n## API 概览（命名空间）\n\n💡 完整 API 见 [官方文档](https://stock-sdk.linkdiary.cn/api/)。v2 全部方法挂在命名空间下：\n\n| 命名空间 | 代表方法 |\n|---|---|\n| `sdk.quotes` | `.cn` / `.cnSimple` / `.hk` / `.us` / `.fund` / `.fundFlow` / `.largeOrder` / `.timeline` |\n| `sdk.codes` | `.cn` / `.us` / `.hk` / `.fund` |\n| `sdk.batch` | `.cn` / `.hk` / `.us` / `.byCodes` / `.raw` |\n| `sdk.kline` | `.cn` / `.cnMinute` / `.hk` / `.hkMinute` / `.us` / `.usMinute` / `.withIndicators` / `.signals` |\n| `sdk.chips` | `.cn` / `.hk` / `.us`（筹码分布：获利比例 / 平均成本 / 成本区间 / 筹码峰） |\n| `sdk.board` | `.industry.*` / `.concept.*`（`list` / `spot` / `constituents` / `kline` / `minuteKline`） |\n| `sdk.options` | `.index.*` / `.etf.*` / `.commodity.*` / `.cffex.*` / `.lhb` |\n| `sdk.futures` | `.kline` / `.globalSpot` / `.globalKline` / `.inventory` / `.comexInventory` … |\n| `sdk.fundFlow` | `.individual` / `.market` / `.rank` / `.sectorRank` / `.sectorHistory` |\n| `sdk.northbound` | `.minute` / `.summary` / `.holdingRank` / `.history` / `.individual` |\n| `sdk.marketEvent` | `.ztPool` / `.stockChanges`(支持多类型 / `'all'`) / `.boardChanges` / `.individualChanges` / `.individualChangesHistory`(个股异动) |\n| `sdk.dragonTiger` | `.detail` / `.stockStats` / `.institution` / `.branchRank` / `.seatDetail` |\n| `sdk.blockTrade` / `sdk.margin` | 大宗交易 / 融资融券 |\n| `sdk.fund` | `.dividendList` / `.navHistory` / `.estimate` / `.rankHistory` / `.theme` |\n| `sdk.calendar` | `.isTradingDay` / `.nextTradingDay` / `.prevTradingDay` / `.marketStatus` |\n| `sdk.reference` | `.dividendDetail` / `.tradingCalendar` |\n| 顶层 | `sdk.search(keyword)` |\n\n> 指标计算从主包改为 subpath：`import { calcMACD } from 'stock-sdk/indicators'`。\n> 从 v1 扁平 API 迁移？见 [v1 → v2 迁移指南](https://stock-sdk.linkdiary.cn/guide/migration-v1-to-v2)（含完整 `sdk.getXxx()` → `sdk.<ns>.<method>()` 映射表）。\n\n---\n\n## 开发校验\n\n```bash\npnpm typecheck\npnpm build\npnpm test\npnpm test:integration:smoke   # 冒烟集成（真实网络）\npnpm test:integration:full    # 全量集成回归\n```\n\n---\n\n## 许可证\n\n[ISC](./LICENSE)\n\n--","default_branch":"master","files":415,"tree":[".githooks/README.md",".githooks/pre-commit",".github/workflows/ci.yml",".github/workflows/docs.yml",".github/workflows/release.yml",".gitignore",".npmrc","AGENTS.md","LICENSE","README.md","README_EN.md","docs-meta/sdk.json","package.json","pnpm-lock.yaml","scripts/check-doc-consistency.js","scripts/gen-indicator-baseline.ts","scripts/generate-doc-meta.js","scripts/generate-llms.ts","scripts/install-git-hooks.js","src/cache/index.ts","src/cli/dispatch.ts","src/cli/errors.ts","src/cli/format.ts","src/cli/help.ts","src/cli/index.ts","src/cli/manifest.ts","src/cli/parser.ts","src/cli/types.ts","src/core/cache.ts","src/core/circuitBreaker.ts","src/core/constants.ts","src/core/errors.ts","src/core/fallback.ts","src/core/index.ts","src/core/jsVars.ts","src/core/jsonp.ts","src/core/parser.ts","src/core/providerPolicy.ts","src/core/rateLimiter.ts","src/core/request.ts","src/core/scriptMutex.ts","src/core/time.ts","src/core/userAgentPool.ts","src/core/utils.ts","src/errors/index.ts","src/externalLinks.ts","src/index.ts","src/indicators/addIndicators.ts","src/indicators/atr.ts","src/indicators/bias.ts","src/indicators/boll.ts","src/indicators/cci.ts","src/indicators/chip.ts","src/indicators/dmi.ts","src/indicators/index.ts","src/indicators/kc.ts","src/indicators/kdj.ts","src/indicators/ma.ts","src/indicators/macd.ts","src/indicators/obv.ts","src/indicators/registry.ts","src/indicators/roc.ts","src/indicators/round.ts","src/indicators/rsi.ts","src/indicators/sar.ts","src/indicators/types.ts","src/indicators/wr.ts","src/mcp/prompts/index.ts","src/mcp/protocol.ts","src/mcp/result.ts","src/mcp/server.ts","src/mcp/tools/index.ts","src/mcp/tools/kline.ts","src/mcp/transport.ts","src/mcp/types.ts","src/providers/eastmoney/aShareKline.ts","src/providers/eastmoney/blockTrade.ts","src/providers/eastmoney/boardCommon.ts","src/providers/eastmoney/boardFactory.ts","src/providers/eastmoney/conceptBoard.ts","src/providers/eastmoney/datacenter.ts","src/providers/eastmoney/dividend.ts","src/providers/eastmoney/dragonTiger.ts","src/providers/eastmoney/fund.ts","src/providers/eastmoney/fundFlow.ts","src/providers/eastmoney/fundTheme.ts","src/providers/eastmoney/futuresGlobal.ts","src/providers/eastmoney/futuresInventory.ts","src/providers/eastmoney/futuresKline.ts","src/providers/eastmoney/historyKlineFactory.ts","src/providers/eastmoney/hkKline.ts","src/providers/eastmoney/index.ts","src/providers/eastmoney/industryBoard.ts","src/providers/eastmoney/margin.ts","src/providers/eastmoney/minuteKlineFactory.ts","src/providers/eastmoney/northbound.ts","src/providers/eastmoney/optionCffex.ts","src/providers/eastmoney/optionLhb.ts","src/providers/eastmoney/topicData.ts","src/providers/eastmoney/usKline.ts","src/providers/eastmoney/utils.ts","src/providers/index.ts","src/providers/sina/index.ts","src/providers/sina/optionCommodity.ts","src/providers/sina/optionEtf.ts","src/providers/sina/optionIndex.ts","src/providers/tencent/batch.ts","src/providers/tencent/fundFlow.ts","src/providers/tencent/fundQuote.ts","src/providers/tencent/hkQuote.ts","src/providers/tencent/index.ts","src/providers/tencent/parsers.ts","src/providers/tencent/quote.ts","src/providers/tencent/search.ts","src/providers/tencent/timeline.ts","src/providers/tencent/tradeCalendar.ts","src/providers/tencent/usQuote.ts","src/screener/backtest.ts","src/screener/index.ts","src/screener/screener.ts","src/sdk.ts","src/sdk/baseService.ts","src/sdk/boardService.ts","src/sdk/chipService.ts","src/sdk/dataService.ts","src/sdk/dragonTigerService.ts","src/sdk/fundFlowService.ts","src/sdk/fundService.ts","src/sdk/futuresService.ts","src/sdk/index.ts","src/sdk/indicatorService.ts","src/sdk/klineService.ts","src/sdk/marketEventService.ts","src/sdk/northboundService.ts","src/sdk/optionsService.ts","src/sdk/quoteService.ts","src/sdk/tradingCalendarService.ts","src/signals/index.ts","src/signals/types.ts","src/spec/derive-cli.ts","src/spec/derive-mcp.ts","src/spec/derive-prompt.ts","src/spec/methods.ts","src/spec/prompts.ts","src/spec/resolve.ts","src/symbols/adapters.ts","src/symbols/futures.ts","src/symbols/index.ts","src/symbols/infer.ts","src/symbols/normalize.ts","src/symbols/specialIndex.ts","src/symbols/types.ts","src/types/blockTrade.ts","src/types/board.ts","src/types/common.ts","src/types/dragonTiger.ts","src/types/fund.ts","src/types/fundFlow.ts","src/types/futures.ts","src/types/index.ts","src/types/kline.ts","src/types/margin.ts","src/types/marketEvent.ts","src/types/northbound.ts","src/types/options.ts","src/types/quotes.ts","test/integration/dividend.int.test.ts","test/integration/providers/eastmoney/aShareKline.int.test.ts","test/integration/providers/eastmoney/blockTradeMargin.int.test.ts","test/integration/providers/eastmoney/conceptBoard.int.test.ts","test/integration/providers/eastmoney/dragonTiger.int.test.ts","test/integration/providers/eastmoney/fundFlow.int.test.ts","test/integration/providers/eastmoney/futures.int.test.ts","test/integration/providers/eastmoney/hkUsKline.int.test.ts","test/integration/providers/eastmoney/industryBoard.int.test.ts","test/integration/providers/eastmoney/northbound.int.test.ts","test/integration/providers/eastmoney/topicData.int.test.ts","test/integration/providers/sina/option.int.test.ts","test/integration/providers/tencent/batch.int.test.ts","test/integration/providers/tencent/fundFlow.int.test.ts","test/integration/providers/tencent/quote.int.test.ts","test/integration/providers/tencent/search.int.test.ts","test/integration/providers/tencent/timeline.int.test.ts","test/integration/providers/tencent/tradeCalendar.int.test.ts","test/integration/sdk/chips.int.test.ts","test/integration/sdk/fundCodeList.int.test.ts","test/integration/sdk/klineWithIndicators.int.test.ts","test/integration/sdk/theme.int.test.ts","test/integration/sdk/timeout.int.test.ts","test/mocks/handlers.ts","test/mocks/server.ts","test/setup.ts","test/unit/cache.test.ts","test/unit/cache/cache.test.ts","test/unit/circuitBreaker.test.ts","test/unit/cli/call-command.test.ts","test/unit/cli/dispatch.test.ts","test/unit/cli/flag-wiring.test.ts","test/unit/cli/format.test.ts","test/unit/cli/manifest.test.ts","test/unit/cli/parser.test.ts","test/unit/contract/error-surface.test.ts","test/unit/core/edge-fixes.test.ts","test/unit/core/errors.test.ts","test/unit/core/fallback.test.ts","test/unit/core/jsVars.test.ts","test/unit/core/jsonp.test.ts","test/unit/core/parser.test.ts","test/unit/core/request.abort-timeout.test.ts","test/unit/core/request.providerPolicy.test.ts","test/unit/core/request.retry.test.ts","test/unit/core/request.v2.test.ts","test/unit/core/scriptMutex.test.ts","test/unit/core/time.dst.test.ts","test/unit/core/time.test.ts","test/unit/core/utils.test.ts","test/unit/dist-smoke.test.ts","test/unit/externalLinks.parity.test.ts","test/unit/externalLinks.test.ts","test/unit/indicators/__fixtures__/gen.ts","test/unit/indicators/__fixtures__/seed-baseline.json","test/unit/indicators/addIndicators.test.ts","test/unit/indicators/chip.test.ts","test/unit/indicators/decimals-option.test.ts","test/unit/indicators/ma.test.ts","test/unit/indicators/momentum.test.ts","test/unit/indicators/registry.test.ts","test/unit/indicators/rolling-parity.test.ts","test/unit/indicators/seed-baseline.test.ts","test/unit/indicators/seed-robustness.test.ts","test/unit/indicators/shorthand.test.ts","test/unit/mcp/protocol.test.ts","test/unit/mcp/result.test.ts","test/unit/mcp/server.test.ts","test/unit/providers/cache-isolation.test.ts","test/unit/providers/eastmoney/blockTrade.test.ts","test/unit/providers/eastmoney/datacenter.test.ts","test/unit/providers/eastmoney/dragonTiger.test.ts","test/unit/providers/eastmoney/fund.dirty-rows.test.ts","test/unit/providers/eastmoney/fund.test.ts","test/unit/providers/eastmoney/fundFlow.test.ts","test/unit/providers/eastmoney/fundTheme.test.ts","test/unit/providers/eastmoney/futures.test.ts","test/unit/providers/eastmoney/hkKline.secid.test.ts","test/unit/providers/eastmoney/hkUsMinuteKline.test.ts","test/unit/providers/eastmoney/margin.test.ts","test/unit/providers/eastmoney/minuteKlineFactory.test.ts","test/unit/providers/eastmoney/northbound.test.ts","test/unit/providers/eastmoney/option.test.ts","test/unit/providers/eastmoney/pagination-waves.test.ts","test/unit/providers/eastmoney/pagination.test.ts","test/unit/providers/eastmoney/symbol-prefix.test.ts","test/unit/providers/eastmoney/topicData.test.ts","test/unit/providers/eastmoney/usKline.resolve.test.ts","test/unit/providers/edge-fixes.test.ts","test/unit/providers/negative-cache.test.ts","test/unit/providers/sina/option.test.ts","test/unit/providers/tencent/batch.test.ts","test/unit/providers/tencent/parsers.minfields.test.ts","test/unit/providers/tencent/parsers.test.ts","test/unit/providers/tencent/quote-normalize.test.ts","test/unit/providers/tencent/search.test.ts","test/unit/rateLimiter.test.ts","test/unit/regression/review-fixes.test.ts","test/unit/screener/backtest-hardening.test.ts","test/unit/screener/review-fixes.test.ts","test/unit/screener/screener.test.ts","test/unit/sdk/chipService.test.ts","test/unit/sdk/exports.test.ts","test/unit/sdk/helpers.ts","test/unit/sdk/individualChangesHistory.test.ts","test/unit/sdk/klineSignals.test.ts","test/unit/sdk/namespaces.test.ts","test/unit/sdk/perf-request.test.ts","test/unit/sdk/tradingCalendarService.test.ts","test/unit/sdk/validation.test.ts","test/unit/signals/review-fixes.test.ts","test/unit/signals/signals.test.ts","test/unit/spec/__snapshots__/prompts-contract.test.ts.snap","test/unit/spec/__snapshots__/resolve-coverage.test.ts.snap","test/unit/spec/consistency.test.ts","test/unit/spec/prompts-contract.test.ts","test/unit/spec/resolve-coverage.test.ts","test/unit/subpath-purity.test.ts","test/unit/symbols/adapters.test.ts","test/unit/symbols/infer-regression.test.ts","test/unit/symbols/normalize.test.ts","test/unit/symbols/review-fixes.test.ts","test/unit/types/quote-union.test.ts","test/unit/website/playground-utils.test.ts","tsconfig.json","tsup.config.ts","vitest.config.ts","website/.vitepress/config.ts","website/.vitepress/env.d.ts","website/.vitepress/theme/components/HeroLinks.vue","website/.vitepress/theme/components/HeroMeta.vue","website/.vitepress/theme/components/LiveTicker.vue","website/.vitepress/theme/components/Playground.vue","website/.vitepress/theme/components/chat/ChatBot.vue","website/.vitepress/theme/components/chat/miniMarkdown.ts","website/.vitepress/theme/components/chat/useChatEndpoint.ts","website/.vitepress/theme/components/chat/useChatStream.ts","website/.vitepress/theme/components/playground/categories.ts","website/.vitepress/theme/components/playground/codegen.ts","website/.vitepress/theme/components/playground/derive.ts","website/.vitepress/theme/components/playground/overrides.ts","website/.vitepress/theme/components/playground/runner.ts","website/.vitepress/theme/components/playground/types.ts","website/.vitepress/theme/components/playground/utils.ts","website/.vitepress/theme/custom.css","website/.vitepress/theme/faro.ts","website/.vitepress/theme/index.ts","website/api/batch.md","website/api/block-trade.md","website/api/board.md","website/api/calendar.md","website/api/chips.md","website/api/codes.md","website/api/dragon-tiger.md","website/api/fund-flow.md","website/api/fund.md","website/api/futures.md","website/api/index.md","website/api/indicators.md","website/api/kline.md","website/api/margin.md","website/api/market-event.md","website/api/northbound.md","website/api/options.md","website/api/quotes.md","website/api/reference.md","website/api/screener.md","website/api/search.md","website/api/signals.md","website/changelog.md","website/cli/commands.md","website/cli/index.md","website/en/api/batch.md","website/en/api/block-trade.md","website/en/api/board.md","website/en/api/calendar.md","website/en/api/chips.md","website/en/api/codes.md","website/en/api/dragon-tiger.md","website/en/api/fund-flow.md","website/en/api/fund.md","website/en/api/futures.md","website/en/api/index.md","website/en/api/indicators.md","website/en/api/kline.md","website/en/api/margin.md","website/en/api/market-event.md","website/en/api/northbound.md","website/en/api/options.md","website/en/api/quotes.md","website/en/api/reference.md","website/en/api/screener.md","website/en/api/search.md","website/en/api/signals.md","website/en/changelog.md","website/en/cli/commands.md","website/en/cli/index.md","website/en/guide/browser.md","website/en/guide/dividend-adjustment.md","website/en/guide/futures-options.md","website/en/guide/getting-started.md","website/en/guide/indicators.md","website/en/guide/installation.md","website/en/guide/introduction.md","website/en/guide/migration-v1-to-v2.md","website/en/guide/request-governance.md","website/en/guide/retry.md","website/en/guide/stock-changes-panorama.md","website/en/guide/symbols.md","website/en/index.md","website/en/mcp/index.md","website/en/mcp/installation.md","website/en/mcp/tools.md","website/en/playground/index.md","website/en/skills/catalog.md","website/en/skills/index.md","website/guide/browser.md","website/guide/dividend-adjustment.md","website/guide/futures-options.md","website/guide/getting-started.md","website/guide/indicators.md","website/guide/installation.md","website/guide/introduction.md","website/guide/migration-v1-to-v2.md","website/guide/request-governance.md","website/guide/retry.md","website/guide/stock-changes-panorama.md","website/guide/symbols.md","website/index.md","website/mcp/index.md","website/mcp/installation.md","website/mcp/tools.md","website/playground/index.md","website/public/icons/activity.svg"],"storefront":"/r/chengzuopeng","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/chengzuopeng/stock-sdk/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}