Skip to main content

ifind-http-api

iFinD HTTP API 调用参考手册。当用户需要编写使用同花顺 iFinD HTTP API 获取金融数据的代码时使用此技能。 覆盖全部 18 个 API 端点的 URL、参数、指标和示例。支持股票、基金、债券、期货、期权、宏观数据。 触发词:ifind、iFinD、同花顺API、同花顺数据、quantapi。

Source facts

Repository
hanlinlibham/skills
Last source activity
March 10, 2026 at 07:43
Detected SKILL.md language
Chinese
Stars
2
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
8 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ifind-http-api
description
iFinD HTTP API 调用参考手册。当用户需要编写使用同花顺 iFinD HTTP API 获取金融数据的代码时使用此技能。 覆盖全部 18 个 API 端点的 URL、参数、指标和示例。支持股票、基金、债券、期货、期权、宏观数据。 触发词:ifind、iFinD、同花顺API、同花顺数据、quantapi。
# iFinD HTTP API 调用参考手册 本技能提供同花顺 iFinD HTTP API 的完整函数参考,用于编写通过 HTTP 请求获取金融数据的 Python 代码。 **API 基础地址:** `https://quantapi.51ifind.com/api/v1/` ## 触发条件 当用户需要: - 编写调用 iFinD HTTP API 的 Python 代码 - 查询同花顺 API 某个接口的用法、参数或指标 - 获取 A 股/债券/基金/期货/宏观/期权数据(通过 HTTP 方式) - 调试 iFinD API 调用错误 - 从 WindPy 迁移到 iFinD HTTP API ## 认证机制 iFinD 使用两层 token 鉴权:`refresh_token`(长期)→ `access_token`(短期,7天有效)。 ### 获取 access_token ```python import requests import json REFRESH_TOKEN = "your_refresh_token_here" # 获取当前有效的 access_token resp = requests.post( "https://quantapi.51ifind.com/api/v1/get_access_token", headers={"Content-Type": "application/json", "refresh_token": REFRESH_TOKEN} ) access_token = json.loads(resp.content)["data"]["access_token"] # 或获取一个新的 access_token(会使所有旧 token 失效) resp = requests.post( "https://quantapi.51ifind.com/api/v1/update_access_token", headers={"Content-Type": "application/json", "refresh_token": REFRESH_TOKEN} ) access_token = json.loads(resp.content)["data"]["access_token"] ``` **注意:** - `access_token` 7 天有效,最多绑定 20 个 IP - `refresh_token` 与账号有效期一致,更新后所有旧 token 全部失效 - 每天 token 请求次数有限制 ### 通用请求模板 ```python import requests BASE_URL = "https://quantapi.51ifind.com/api/v1" ACCESS_TOKEN = "your_access_token" HEADERS = {"Content-Type": "application/json", "access_token": ACCESS_TOKEN} def ifind_request(endpoint, params): """通用 iFinD API 请求""" url = f"{BASE_URL}/{endpoint}" resp = requests.post(url, json=params, headers=HEADERS) data = resp.json() if data.get("errorcode") != 0: raise Exception(f"iFinD Error {data['errorcode']}: {data.get('errmsg', '')}") return data ``` ### 通用返回结构 所有数据接口返回 JSON,包含以下字段: | 字段 | 说明 | |------|------| | errorcode | 0=成功,其他为错误码 | | errmsg | 错误信息(errorcode 非 0 时) | | tables | 数据结构体,含 thscode 和 table | | datatype | 指标格式 | | perf | 请求耗时(ms) | | dataVol | 消耗数据量 | --- ## 核心数据接口 ### 1. basic_data_service — 基础数据(截面) 获取多品种多指标的截面数据(对应 WindPy 的 `w.wss()`)。 **URL:** `https://quantapi.51ifind.com/api/v1/basic_data_service` | 参数 | 必须 | 说明 | 示例 | |------|------|------|------| | codes | 是 | 半角逗号分隔的代码 | `"300033.SZ,600030.SH"` | | indipara | 是 | 指标数组,每项含 indicator 和 indiparams | 见下方 | **indipara 结构:** indicator 为指标英文名,indiparams 为该指标的用户参数。推荐使用超级命令生成。 ```python # 获取 ROE 和平均 ROE params = { "codes": "300033.SZ,600030.SH", "indipara": [ {"indicator": "ths_roe_stock", "indiparams": ["20241231"]}, {"indicator": "ths_roe_avg_by_ths_stock", "indiparams": ["20241231"]} ] } data = ifind_request("basic_data_service", params) ``` --- ### 2. date_sequence — 日期序列 获取多品种多指标的历史时间序列(对应 WindPy 的 `w.wsd()` + 自定义指标)。 **URL:** `https://quantapi.51ifind.com/api/v1/date_sequence` | 参数 | 必须 | 说明 | 示例 | |------|------|------|------| | codes | 是 | 半角逗号分隔的代码 | `"300033.SZ,600030.SH"` | | startdate | 是 | 开始日期 | `"2023-01-01"` | | enddate | 是 | 结束日期 | `"2024-12-31"` | | functionpara | 否 | 功能参数 | 见下方 | | indipara | 是 | 指标数组 | 同 basic_data_service | **functionpara 说明:** | 名称 | key | 值 | 默认 | |------|-----|------|------| | 时间周期 | Interval | D-日 W-周 M-月 Q-季 S-半年 Y-年 | D | | 日期类型 | Days | Tradedays-交易日 Alldays-日历日 | Tradedays | | 非交易间隔处理 | Fill | Previous-沿用前值 Blank-空值 | Previous | ```python # 获取归母所有者权益合计和定期报告实际披露日期 params = { "codes": "300033.SZ,600030.SH", "startdate": "20230101", "enddate": "20241231", "functionpara": {"Days": "Alldays", "Fill": "Blank", "Interval": "Y"}, "indipara": [ {"indicator": "ths_total_equity_atoopc_stock", "indiparams": ["", "100"]}, {"indicator": "ths_regular_report_actual_dd_stock", "indiparams": [""]} ] } data = ifind_request("date_sequence", params) ``` --- ### 3. cmd_history_quotation — 历史行情 获取日/周/月级别的 OHLCV 等历史行情数据(对应 WindPy 的 `w.wsd()` 行情部分)。 **URL:** `https://quantapi.51ifind.com/api/v1/cmd_history_quotation` | 参数 | 必须 | 说明 | 示例 | |------|------|------|------| | codes | 是 | 代码 | `"300033.SZ,600030.SH"` | | indicators | 是 | 半角逗号分隔指标 | `"preClose,open,high,low,close"` | | startdate | 是 | 开始日期 | `"2024-01-01"` | | enddate | 是 | 结束日期 | `"2025-01-01"` | | functionpara | 否 | 功能参数 | 见下方 | **indicators 常用指标(股票):** `preClose`(前收盘价), `open`(开盘), `high`(最高), `low`(最低), `close`(收盘), `avgPrice`(均价), `change`(涨跌), `changeRatio`(涨跌幅), `volume`(成交量), `amount`(成交额), `turnoverRatio`(换手率), `totalShares`(总股本), `totalCapital`(总市值), `floatSharesOfAShares`(A股流通股本), `floatCapitalOfAShares`(A股流通市值), `pe_ttm`(市盈率TTM), `pe`(PE), `pb`(PB), `ps`(PS), `pcf`(PCF) **indicators 特殊品种:** - 基金: `netAssetValue`(单位净值), `adjustedNAV`(复权净值), `accumulatedNAV`(累计净值) - 指数: `floatCapital`(流通市值), `pe_ttm_index`(PE TTM) - 债券: `yieldMaturity`(到期收益率), `remainingTerm`(剩余期限), `modifiedDuration`(修正久期) - 期货: `openInterest`(持仓量), `settlement`(结算价) **functionpara 说明:** | 名称 | key | 值 | 默认 | |------|-----|------|------| | 时间周期 | Interval | D W M Q S Y(返回周期汇总统计值) | D | | 抽样周期 | SampleInterval | D W M Q S Y(返回周期最后一个交易日数据) | D | | 复权方式 | CPS | 1-不复权 2-前复权(分红再投) 3-后复权(分红再投) 4-全流通前复权 5-全流通后复权 6-前复权(现金分红) 7-后复权(现金分红) | 1 | | 报价类型 | PriceType | 1-全价 2-净价(仅债券) | 1 | | 非交易间隔 | Fill | Previous Blank 具体数值 Omit | Previous | | 复权基点 | BaseDate | `"YYYY-MM-DD"` | 后复权按上市日,前复权按最新日 | | 货币 | Currency | MHB-美元 GHB-港元 RMB-人民币 YSHB-原始货币 | YSHB | ```python # 获取周线数据(后复权) params = { "codes": "300033.SZ,600030.SH", "indicators": "open,close,volume", "startdate": "2024-08-25", "enddate": "2025-08-25", "functionpara": {"Interval": "W", "CPS": "3", "Currency": "RMB", "Fill": "Blank"} } data = ifind_request("cmd_history_quotation", params) ``` --- ### 4. high_frequency — 高频序列(分钟级) 获取 1-60 分钟级别的 K 线数据(对应 WindPy 的 `w.wsi()`)。 **URL:** `https://quantapi.51ifind.com/api/v1/high_frequency` | 参数 | 必须 | 说明 | 示例 | |------|------|------|------| | codes | 是 | 代码 | `"300033.SZ,600030.SH"` | | indicators | 是 | 指标 | `"open,high,low,close"` | | starttime | 是 | 开始时间 | `"2024-01-01 09:15:00"` | | endtime | 是 | 结束时间 | `"2024-01-01 15:15:00"` | | functionpara | 否 | 功能参数 | 见下方 | **indicators 通用指标:** `open`, `high`, `low`, `close`, `avgPrice`, `volume`, `amount`, `change`, `changeRatio`, `turnoverRatio`, `sellVolume`(内盘), `buyVolume`(外盘) **indicators 技术指标(需同时在 functionpara.calculate 中设置参数):** MACD, KDJ, RSI, BOLL, MA, EXPMA, CCI, ATR, OBV, MFI 等 50+ 种技术指标。 选择技术指标时,需在 functionpara 中添加 `calculate` 字段: ```python # 分钟数据含技术指标 params = { "codes": "300033.SZ,600030.SH", "indicators": "open,high,SI,MACD,DPTB,OBV,KDJ", "starttime": "2018-01-01 09:15:00", "endtime": "2018-01-01 09:50:00", "functionpara": { "Interval": "1", # 1分钟 "Fill": "Original", "calculate": { "SI": "", "MACD": "12,26,9,MACD", # 短周期,长周期,周期,{DIFF/DEA/MACD} "DPTB": "7,000001", # 周期,大盘代码 "OBV": "OBV_XZ", # {OBV/OBV_XZ} "KDJ": "9,3,3,K" # 周期,周期1,周期2,{K/D/J} } } } data = ifind_request("high_frequency", params) ``` **functionpara 说明:** | 名称 | key | 值 | 默认 | |------|-----|------|------| | 时间区间开始 | Limitstart | 限定每个交易日数据的开始时间 | - | | 时间区间结束 | Limitend | 限定每个交易日数据的截止时间 | - | | 时间周期 | Interval | 1(1分钟) 3 5 10 15 30 60 | 1 | | 非交易间隔处理 | Fill | Previous Blank 具体数值 Original(不处理) | Original | | 复权方式 | CPS | -backward1(后复权分红) -backward(前复权交易所) -forward3(后复权交易所) 等 no(不复权) | no | | 时间截格式 | Timeformat | BeiJingTime LocalTime | BeiJingTime | | 复权基点 | BaseDate | `"YYYY-MM-DD"` | - | **常用技术指标参数格式:** 参见 `references/technical-indicators.md` --- ### 5. real_time_quotation — 实时行情 获取当前实时行情快照(对应 WindPy 的 `w.wsq()`)。 **URL:** `https://quantapi.51ifind.com/api/v1/real_time_quotation` | 参数 | 必须 | 说明 | 示例 | |------|------|------|------| | codes | 是 | 代码 | `"300033.SZ,600000.SH"` | | indicators | 是 | 指标 | `"open,high,low,latest"` |
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub