📋 API 接口清单
QuantFlow v2 全部外部数据源接口文档 · 共 4 组 10 个接口
官方公开接口
腾讯财经公开 HTTP 接口 · 免费 · 无认证 · 无频率限制 · 非正式文档化
腾讯实时行情
http://qt.gtimg.cn/q=sh600519,sz000021
用途:获取个股 49 字段实时行情(最新价/涨跌幅/开高低收/涨停跌停价/五档盘口/内外盘/量比/换手率/市盈率/市值/52周高低等)。
程序中使用:① 首页 Dashboard 自选股行情 ② 行情页面排行榜(curl_multi 并发拉取 5000+ 只全市场股票) ③ 个股详情页五档盘口/价格信息 ④ 实时行情缓存(quotes 表) ⑤ 行情同步(sync/quotes)
返回格式:GBK 编码文本,`~` 分隔49字段
单次最大:约 80-100 只股票
程序中使用:① 首页 Dashboard 自选股行情 ② 行情页面排行榜(curl_multi 并发拉取 5000+ 只全市场股票) ③ 个股详情页五档盘口/价格信息 ④ 实时行情缓存(quotes 表) ⑤ 行情同步(sync/quotes)
返回格式:GBK 编码文本,`~` 分隔49字段
单次最大:约 80-100 只股票
📥 请求示例
GET http://qt.gtimg.cn/q=sh600519,sz000021,s_sh000001
📤 响应格式 (49字段)
| 索引 | 字段 | 说明 |
|---|---|---|
| 1 | name | 股票名称 |
| 2 | code | 股票代码 |
| 3 | price | 最新价 |
| 4 | prev_close | 昨收 |
| 5 | open | 今开 |
| 6 | volume | 成交量(手) |
| 7 | outer | 外盘 |
| 8 | inner | 内盘 |
| 9-18 | bid1-5 | 买一~买五价/量 |
| 19-28 | ask1-5 | 卖一~卖五价/量 |
| 31 | change | 涨跌额 |
| 32 | change_pct | 涨跌幅% |
| 33 | high | 最高 |
| 34 | low | 最低 |
| 35 | volume_ratio | 量比 |
| 37 | amount | 成交额(万) |
| 38 | turnover_rate | 换手率% |
| 39 | pe | 市盈率 |
| 43 | amplitude | 振幅% |
| 44 | circulation_cap | 流通市值(亿) |
| 45 | total_cap | 总市值(亿) |
| 47 | limit_up | 涨停价 |
| 48 | limit_down | 跌停价 |
腾讯日K线
http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=sh600519,day,,,120,qfq
用途:拉取个股历史日K线数据(OHLCV + 前复权)。
程序中使用:① K线图数据源(Dashboard/行情页日K图表) ② K线同步任务(sync/kline → klines 表) ③ MarketController 自动拉取补齐 ④ MA5/10/20/60 均线计算
返回格式:JSON
参数:param=市场代码,day,,,条数,复权方式(qfq前复权/hfq后复权)
程序中使用:① K线图数据源(Dashboard/行情页日K图表) ② K线同步任务(sync/kline → klines 表) ③ MarketController 自动拉取补齐 ④ MA5/10/20/60 均线计算
返回格式:JSON
参数:param=市场代码,day,,,条数,复权方式(qfq前复权/hfq后复权)
📥 请求示例
GET http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=sz000021,day,,,30,qfq
📤 响应格式
{"code":0,"data":{"sz000021":{"qfqday":[["2026-06-18","44.04","42.91","46.18","42.31","1886099"],...]}}}
每行: [日期, 开盘, 收盘, 最高, 最低, 成交量(手)]
腾讯分时数据
http://data.gtimg.cn/flashdata/hushen/minute/sz000001.js
用途:获取当天分时走势(每分钟价格+成交量)。
程序中使用:行情页面 ECharts 分时图(market/minute 端点 → getMinuteData())
返回格式:JavaScript 变量赋值文本
限制:仅当天交易时段有数据,非交易时段返回空
程序中使用:行情页面 ECharts 分时图(market/minute 端点 → getMinuteData())
返回格式:JavaScript 变量赋值文本
限制:仅当天交易时段有数据,非交易时段返回空
📥 请求示例
GET http://data.gtimg.cn/flashdata/hushen/minute/sz000021.js
📤 响应格式 (JS变量)
min_data="...\\n\\\n时间 价格 均价 成交量\\n0930 44.05 44.00 12345\\n0931 44.10 44.03 15678\\n..."
程序中使用正则提取 min_data 变量内容,按 \\n\\ 分隔后解析
第三方 API
付费/限额服务 · 需 Token 认证
智图API (zhituapi.com)
https://api.zhituapi.com/hs/{endpoint}?token=TOKEN
用途:沪深A股全量数据补充源,30+ 个子端点。
程序中使用:① 全量A股股票列表同步(stocks 表初始数据源) ② 涨跌停/强势/次新/炸板股池 ③ 个股实时行情(腾讯备选) ④ 公司详情/财务报表/股东信息 ⑤ 指数/行业/概念树 ⑥ K线历史(智图K线端点) ⑦ MACD/MA/BOLL/KDJ 技术指标
返回格式:JSON
限额:免费版 200次/天,付费版更高
程序中使用:① 全量A股股票列表同步(stocks 表初始数据源) ② 涨跌停/强势/次新/炸板股池 ③ 个股实时行情(腾讯备选) ④ 公司详情/财务报表/股东信息 ⑤ 指数/行业/概念树 ⑥ K线历史(智图K线端点) ⑦ MACD/MA/BOLL/KDJ 技术指标
返回格式:JSON
限额:免费版 200次/天,付费版更高
📥 主要端点列表
| 端点 | 说明 | 程序中调用位置 |
|---|---|---|
| /hs/list/all | 全量A股代码+名称 | SyncController::syncStockList() / MarketDetailController::syncStocks() |
| /hs/list/sectors | 概念指数列表 | ZhituController::sectors() |
| /hs/list/primary | 一级市场板块 | ZhituController::primarySectors() |
| /hs/pool/ztgc/{date} | 涨停股池 | SyncController::syncPool('limit-up') / ZhituController::limitUpPool() |
| /hs/pool/dtgc/{date} | 跌停股池 | syncPool('limit-down') |
| /hs/pool/qsgc/{date} | 强势股池 | syncPool('strong') |
| /hs/pool/cxgc/{date} | 次新股池 | ZhituService::newStockPool() |
| /hs/pool/zbgc/{date} | 炸板股池 | syncPool('break') |
| /hs/real/ssjy/{code} | 个股实时行情 | 行情同步智图兜底 / ZhituController::realtime() |
| /hs/history/{code}.{mkt}/{lev}/{adj} | K线历史 | ZhituController::kline() |
| /hs/history/macd/{code}.{mkt}/{lev}/{adj} | MACD指标 | ZhituController::macd() |
| /hs/gs/gsjj/{code} | 公司简介 | ZhituController::companyProfile() |
| /hs/fin/balance/{code} | 资产负债表 | ZhituController::balanceSheet() |
| /hs/fin/income/{code} | 利润表 | ZhituController::incomeStatement() |
| /hs/fin/cashflow/{code} | 现金流量表 | ZhituController::cashflow() |
| /hs/index/tree | 指数/行业/概念树 | ZhituController::indexTree() |
| /hs/index/stock/{code} | 根据指数找股票 | ZhituController::stocksByIndex() |
| /hs/index/index/{code} | 根据股票找指数 | ZhituController::indicesByStock() |
📤 调用方式
GET https://api.zhituapi.com/hs/list/all?token=4C1036CB-4400-48AF-8536-225C3271A921
Token 拼在 URL 参数中 · 请求间隔控制 2.0 秒 · 开关存储在 api_config 表
AI 服务
大语言模型 API · 需 API Key
DeepSeek Chat API
https://api.deepseek.com/v1/chat/completions
用途:AI 驱动的内容分析和生成。
程序中使用:① 新闻情绪分析(analyzeSentiment — 批量分析新闻标题正负面) ② 智能选股推荐(stockRecommendation — 根据自然语言需求推荐股票) ③ 市场摘要(marketSummary — 生成每日A股市场总结) ④ 新闻入库后自动情绪标注(NewsService::analyzeAndLabel)
模型:deepseek-chat
降级:无 Key 时回退到关键词匹配(利好/利空词库)
程序中使用:① 新闻情绪分析(analyzeSentiment — 批量分析新闻标题正负面) ② 智能选股推荐(stockRecommendation — 根据自然语言需求推荐股票) ③ 市场摘要(marketSummary — 生成每日A股市场总结) ④ 新闻入库后自动情绪标注(NewsService::analyzeAndLabel)
模型:deepseek-chat
降级:无 Key 时回退到关键词匹配(利好/利空词库)
📥 请求示例
POST https://api.deepseek.com/v1/chat/completions
Content-Type: application/json
Authorization: Bearer sk-6acb117f...
{
"model": "deepseek-chat",
"messages": [{"role":"user","content":"分析以下新闻情绪..."}],
"temperature": 0.7,
"max_tokens": 1000
}
📤 响应格式
{"choices":[{"message":{"content":"分析结果..."}}]}
💡 程序中3个调用场景
| 方法 | 路由 | 输入 | 输出 |
|---|---|---|---|
| analyzeSentiment | POST /api/ai/sentiment | 新闻标题数组 | 每条情绪+影响等级 |
| stockRecommendation | POST /api/ai/recommend | 自然语言查询 | 推荐股票列表(代码/名称/理由/风险) |
| marketSummary | GET /api/ai/summary | 当前指数+热点 | 2-3句市场总结文本 |
网页解析
HTML 页面抓取 + DOMDocument 解析 · 易受页面改版影响
东方财富财经要闻
https://finance.eastmoney.com/a/czqyw.html
用途:抓取全局A股新闻列表(标题/摘要/时间/链接)。
程序中使用:① NewsService::fetchGlobalNews() ② NewsController::fetchGlobal() ③ POST /api/news/fetch-global 手动或定时触发
解析方式:PHP DOMDocument + DOMXPath 提取 <a> 标签
风险:JSON API (np-listapi) 已失效,HTML 页面改版即不可用
程序中使用:① NewsService::fetchGlobalNews() ② NewsController::fetchGlobal() ③ POST /api/news/fetch-global 手动或定时触发
解析方式:PHP DOMDocument + DOMXPath 提取 <a> 标签
风险:JSON API (np-listapi) 已失效,HTML 页面改版即不可用
📥 请求
GET https://finance.eastmoney.com/a/czqyw.html Referer: https://www.eastmoney.com/
📤 HTML 结构
<a href="https://finance.eastmoney.com/a/2024XXXX.html">新闻标题</a> <p>摘要内容...</p> <span>2024年06月20日 13:06</span>
分页: czqyw.html → czqyw_2.html → czqyw_3.html
东方财富新闻搜索
https://so.eastmoney.com/news/s?keyword=股票名&type=news
用途:搜索个股相关新闻。
程序中使用:NewsService::fetchStockNews() → NewsController::fetchStock() → POST /api/news/fetch-stock
解析方式:DOMDocument 解析 news_item 类 div
程序中使用:NewsService::fetchStockNews() → NewsController::fetchStock() → POST /api/news/fetch-stock
解析方式:DOMDocument 解析 news_item 类 div
📥 请求
GET https://so.eastmoney.com/news/s?keyword=贵州茅台&type=news Referer: https://www.eastmoney.com/
东方财富搜索建议 (searchadapter)
https://searchadapter.eastmoney.com/api/suggest/get?input=关键词&type=14&count=10
用途:股票代码/名称自动补全搜索(iwencai降级模式使用)。
程序中使用:① IwencaiService::searchSuggest() ② iwencai 条件选股降级方案
返回格式:JSON · 带硬编码 token
程序中使用:① IwencaiService::searchSuggest() ② iwencai 条件选股降级方案
返回格式:JSON · 带硬编码 token
📥 请求
GET https://searchadapter.eastmoney.com/api/suggest/get?input=贵州茅台&type=14&token=D43BF722C8E33BDC906FB84D85E326E8&count=10
📤 响应
{"QuotationCodeTable":{"Data":[{"Code":"600519","Name":"贵州茅台","SecurityTypeName":"股票"...}]}}
抓包代理
PHP 后端代理外部接口 · 解决跨域 · 统一调用