使用 KlineCharts 对接 StockTV 印度股票 K 线数据的完整实施方案。
核心步骤
- 获取股票 PID:首先需要通过“市场列表”接口找到具体印度股票的 ID (pid)。
- 请求 K 线数据:使用 /stock/kline 接口获取历史数据。
- 数据清洗:将 StockTV 的返回格式转换为 KlineCharts 要求的格式。
- 渲染图表:初始化 KlineCharts 并填充数据。
1. 准备工作:获取印度股票 PID
在请求 K 线之前,您必须知道股票的 pid(产品 ID)。
根据 API 文档,印度市场的 countryId 为 14。
API 请求示例 (查找 Reliance Industries):- GET https://api.stocktv.top/stock/stocks?countryId=14&pageSize=10&page=1&key=您的KEY
复制代码 假设返回结果中某个股票的 id 为 12345,这就是我们需要的 pid。
2. 完整代码示例 (HTML + JS)
您可以直接创建一个 .html 文件,将以下代码复制进去。代码中包含了从 API 获取数据、格式转换以及渲染图表的完整逻辑。
注意:请将代码中的 YOUR_API_KEY 替换为您从 StockTV 获取的真实 Key。- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>StockTV 印度股票 K线图 (KlineCharts)</title>
-
-
- </head>
- <body>
-
- <h3>印度股票示例</h3>
- <button onclick="loadData(17940, 'P1D')">加载 Nifty 50 (日K)</button>
- <button onclick="loadData(17940, 'PT1H')">加载 Nifty 50 (1小时)</button>
-
-
-
- </body>
- </html>
复制代码 3. 关键对接说明
A. 字段映射 (Data Mapping)
根据您的 Postman 文件中的 /stock/kline 响应示例,字段对接如下:
StockTV 字段说明KlineCharts 字段处理方式time时间戳 (1719818400000)timestamp直接赋值 (Key名称不同)open开盘价open建议 Number() 转换high最高价high建议 Number() 转换low最低价low建议 Number() 转换close收盘价close建议 Number() 转换volume成交量volume建议 Number() 转换B. 周期参数 (interval)
StockTV 使用 ISO 8601 风格的时间周期格式,在调用 loadData 时需要传入正确的字符串:
- 5分钟: PT5M
- 15分钟: PT15M
- 30分钟: PT30M
- 1小时: PT1H
- 1天: P1D
- 1周: P1W
- 1月: P1M
4. 进阶建议:WebSocket 实时更新
您的文档中包含 【股票】WebSocket 接口。若要让 K 线图实时跳动,您需要在 applyNewData 之后,使用 WebSocket 监听该 PID 的推送,并使用 KlineCharts 的 updateData() 方法更新最后一条数据。
WebSocket 更新逻辑简述:
- 连接 wss://ws-api.stocktv.top/connect?key=...。
- 接收消息,判断 pid 是否匹配当前图表。
- 构造数据对象 { timestamp, open, high, low, close, volume }。
- 调用 chart.updateData(newData)。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |