当前位置: 首页 > news >正文

KlineCharts对接股票k线数据 股票数据源API

使用 KlineCharts 对接 StockTV 印度股票 K 线数据的完整实施方案。
image

核心步骤

  1. 获取股票 PID:首先需要通过“市场列表”接口找到具体印度股票的 ID (pid)。
  2. 请求 K 线数据:使用 /stock/kline 接口获取历史数据。
  3. 数据清洗:将 StockTV 的返回格式转换为 KlineCharts 要求的格式。
  4. 渲染图表:初始化 KlineCharts 并填充数据。

1. 准备工作:获取印度股票 PID

在请求 K 线之前,您必须知道股票的 pid(产品 ID)。
根据 API 文档,印度市场的 countryId14

API 请求示例 (查找 Reliance Industries):

GET https://api.stocktv.top/stock/stocks?countryId=14&pageSize=10&page=1&key=您的KEY

假设返回结果中某个股票的 id12345,这就是我们需要的 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><script src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script><style>body { margin: 0; padding: 0; font-family: sans-serif; }#chart-container { width: 100%; height: 600px; }.controls { padding: 10px; background: #f0f0f0; display: flex; gap: 10px; align-items: center; }</style>
</head>
<body><div class="controls"><h3>印度股票示例</h3><button onclick="loadData(17940, 'P1D')">加载 Nifty 50 (日K)</button><button onclick="loadData(17940, 'PT1H')">加载 Nifty 50 (1小时)</button></div><div id="chart-container"></div><script>// 1. 初始化图表const chart = klinecharts.init('chart-container');// 2. 配置参数const API_BASE = 'https://api.stocktv.top';const API_KEY = '您的KEY'; // TODO: 请在此处填入您的 Key/*** 加载并渲染数据* @param {number} pid - 股票/指数的产品ID* @param {string} interval - 周期 (PT1M, PT15M, PT1H, P1D, P1W, P1M)*/async function loadData(pid, interval) {if (API_KEY === '您的KEY') {alert('请在代码中配置您的 API Key');return;}try {// 显示加载中...chart.createIndicator('VOL'); // 确保显示成交量// 3. 构建 URLconst url = `${API_BASE}/stock/kline?pid=${pid}&interval=${interval}&key=${API_KEY}`;console.log(`正在请求: ${url}`);const response = await fetch(url);const result = await response.json();if (result.code !== 200) {console.error('API Error:', result.message);alert(`API 错误: ${result.message}`);return;}// 4. 数据转换 (关键步骤)// StockTV 返回格式: { time, open, high, low, close, volume }// KlineCharts 需要格式: { timestamp, open, high, low, close, volume }const chartData = result.data.map(item => {return {timestamp: item.time, // StockTV 返回的是毫秒时间戳,直接可用open: Number(item.open),high: Number(item.high),low: Number(item.low),close: Number(item.close),volume: Number(item.volume)};});// 按时间排序(防止 API 返回乱序)chartData.sort((a, b) => a.timestamp - b.timestamp);// 5. 设置数据到图表chart.applyNewData(chartData);console.log(`成功加载 ${chartData.length} 条数据`);} catch (error) {console.error('Fetch Error:', error);alert('请求失败,请检查控制台网络日志');}}// 页面加载默认加载一次数据// 17940 是文档中的 Nifty 50 指数 ID,日线loadData(17940, 'P1D'); // 响应式调整大小window.addEventListener('resize', () => {chart.resize();});</script>
</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 更新逻辑简述:

  1. 连接 wss://ws-api.stocktv.top/connect?key=...
  2. 接收消息,判断 pid 是否匹配当前图表。
  3. 构造数据对象 { timestamp, open, high, low, close, volume }
  4. 调用 chart.updateData(newData)
http://www.jsqmd.com/news/53026/

相关文章:

  • 2025年抗气爆O形圈厂家权威推荐榜单:橡胶扶正器/V3级胶筒/震击器源头厂家精选
  • 2025年ai智能体推荐公司权威推荐榜单:智能体搜索‌/aigeo‌/AIGEO源头公司精选
  • 右击转到定义,f12会跳转到错误的方法上
  • 2025年企业内部知识库私有化部署服务商全景指南:选型必读——聚焦AI模型与Deepseek方案,贯通知识库与智能BI本地部署的技术演进与厂商矩阵
  • 2025年核心年核心方案商遴选指南:企业智能BI私有化部署厂商与AI知识库(含DeepSeek)部署方案商综合解析
  • 2025企业知识管理破局:AI知识库与智能BI私有化部署实战路径(含知识库部署服务商、AI知识库部署方案商、BI私有化部署方案商全景梳理)
  • [H3C/华三]Super VLAN技术简述与配置
  • 2025年工字钢弯管直销厂家权威推荐榜单:圆管弯管‌/铝型材弯管‌/中频热弯管源头厂家精选
  • 留学中介排名TOP10重磅发布,谁是申请服务标杆
  • 推荐几家ins推广公司,五家效果不错的ins营销服务商盘点
  • 2025企业智能BI与知识库本地化部署实力厂商全景透视:从BI私有化、AI知识库到DeepSeek专有方案,方案,谁在定义数据新基座?
  • 排名榜单重磅来袭,关注优质十大留学机构
  • 国际物流公司优选指南:国际物流主流企业综合对比分析
  • 2025年11月优质代运营公司TOP5推荐:Facebook、LinkedIn、TikTok、Google、INS等全平台覆盖
  • 综合评估结果公布,揭晓十大留学机构排名榜单
  • 2025年11月优质推广获客服务商TOP5推荐:覆盖Facebook、LinkedIn、TikTok、Google、INS等平台
  • 留学中介机构排名TOP10新鲜出炉,这家值得选择
  • 留学申请怎么选,留学中介排行榜TOP10表现突出
  • 2025年昆明清洁公司避坑榜:口碑认证+清洁达标率98%测评推荐
  • 深入解析:Flink 并行度与最大并行度从 0 到弹性扩缩容
  • 留学机构排行榜TOP10:2025申请季弯道超车就靠它!
  • iOS 应用测试的全流程 构建从功能验证到性能诊断的多工具协同体系
  • 2025哪家英国留学中介好
  • 2025申请季“决胜关键”:十大留学中介深度解码
  • 2025杭州英国留学费用 排名哪家好
  • 数组切片仅是视图
  • 2025 年苏州无人机培训基地推荐:翼无忧航空 ——CAAC 认证资质与全链条服务的优质之选caac无人机培训/无人机执照培训/超视距无人机培训/无人机驾驶员培训机构推荐
  • 2025知名的成都制冷设备厂家最新TOP排行榜
  • 靠谱过碳酸钠厂家名单盘点,生产厂家、供货商 、批发商优选TOP名单:质量好的过碳酸钠厂家
  • 2025 年义乌保温杯定制厂家源头厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析公司礼品定制保温杯/广告杯定制/纪念品保温杯定制/商务礼品保温杯/企业定制水杯/专属定制保温杯公司推荐