技术博客
外汇数据查询:日线历史查询接入点实战(OHLC 与 30 天窗口)

外汇数据查询:日线历史查询接入点实战(OHLC 与 30 天窗口)

作者: 万维易源
2026-08-27
外汇数据查询日线历史OHLC金融分析
# 外汇数据查询:日线历史查询接入点实战(OHLC 与 30 天窗口) > 接入点:日线历史查询(1683-2) · 免费 · POST/GET · 返回 JSON · 适用:金融分析、投资者 · 阅读时间:7 分钟 ## TL;DR - 1683-2 返回指定货币对的**日 K 线历史**,每条含 `open/high/low/close` 与日期。 - 三个必填参数:`code`(来自热门列表)、`begin`、`end`,格式 `yyyyMMdd`,**区间不超过 30 天**。 - 更新频率:每天上午 4 点更新昨天的日 K;**节假日无数据**(返回可能为空)。 ## Why:日线历史能解决什么问题 做趋势分析、回测、画 K 线图,第一步就是拿到规整的日频 OHLC。1683-2 直接给你结构化数组,省去自己爬网页。注意它是历史数据接口,不是实时行情,定位在「学习分析」。 ## What:接口速览 | 项 | 说明 | |----|------| | 接口地址 | `https://route.showapi.com/1683-2?appKey={your_appKey}` | | 必填参数 | `code`(String, 如 `USDCNY`,取自热门列表)、`begin`(yyyyMMdd)、`end`(yyyyMMdd, ≤30天) | | 返回核心 | `list: [{date, open, high, low, close, code, forexName, time}]`、`size`、`remark` | | 更新频率 | 每天上午 4 点更新昨天日 K(节假日无数据) | | 数据性质 | 延迟数据,仅供学习分析,不得用于对外展示 | ## How:查询最近 10 天日线(Python) ```python import requests, datetime def daily_history(code: str, days: int, appkey: str) -> list: end = datetime.date.today() - datetime.timedelta(days=1) # 昨天 begin = end - datetime.timedelta(days=days - 1) payload = { "appKey": appkey, "code": code, "begin": begin.strftime("%Y%m%d"), "end": end.strftime("%Y%m%d"), } r = requests.post("https://route.showapi.com/1683-2", data=payload, timeout=10) data = r.json() if data.get("showapi_res_code") != 0: raise RuntimeError(data.get("showapi_res_error")) body = data["showapi_res_body"] if str(body.get("ret_code")) != "0": raise RuntimeError(f"ret_code={body.get('ret_code')}") return body["list"] rows = daily_history("USDCNY", 10, "YOUR_APPKEY") for row in rows: print(row["date"], "收:", row["close"], "高:", row["high"], "低:", row["low"]) ``` **cURL** ```bash curl -X POST "https://route.showapi.com/1683-2?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "code=USDCNY&begin=20250120&end=20250201" ``` **Node.js(fetch)** ```javascript const body = new URLSearchParams({ appKey: "YOUR_APPKEY", code: "USDCNY", begin: "20250120", end: "20250201" }); const resp = await fetch("https://route.showapi.com/1683-2", { method: "POST", body, signal: AbortSignal.timeout(10000) }); const data = await resp.json(); console.log(data.showapi_res_body.list.length, "条日线"); ``` ## 返回示例(节选) ```json { "showapi_res_body": { "ret_code": 0, "remark": "查询成功!", "size": "10", "list": [ { "date": "2025-01-31", "open": "7.2507", "high": "7.2507", "low": "7.2424", "close": "7.2507", "code": "USDCNY", "forexName": "美元兑人民币", "time": 1738252800000 } ] } } ``` ## 进阶 / 边界 - **30 天上限**:`end-begin` 不能超过 30 天,要更长历史请分段循环请求再拼接。 - **节假日空数据**:法定节假日无日 K,列表可能变短甚至为空,前端绘制前要判空。 - **价格是字符串**:计算涨跌幅前先 `float(close)`。 ## FAQ **Q1:为什么今天查不到今天的 K 线?** A:日线每天上午 4 点才更新「昨天」的数据,且节假日不更新,请用历史日期区间。 **Q2:一次最多能查多少天?** A:文档明确区间不超过 30 天;更长需分段。 **Q3:time 时间戳怎么用?** A:13 位毫秒,可用于排序或转本地时间;`date` 字段已是人易读的 `yyyy-MM-dd`。 **Q4:返回的 close 能当今日汇率展示吗?** A:不能,这是历史收盘价且为延迟数据,仅供学习分析。 ## 下一步阅读 - [外汇数据查询:历史分钟K线查询接入点实战](https://www.showapi.com/guides/forex-minute-kline-1683) - [汇率走势可视化:用日线/分钟K线数据画图](https://www.showapi.com/guides/forex-visualization-1683) - [免费档位限制下:如何设计缓存策略节省调用次数](https://www.showapi.com/guides/forex-cache-cost-1683) - **本系列共 13 篇**:查看[外汇数据查询指南总目录](https://www.showapi.com/guides/forex-guides-1683)