币安加密货币数据 (Crypto Market)对接指南
2026/4/16 15:15:45 网站建设 项目流程

与股票接口不同,加密货币接口对接币安 (Binance)数据,使用Symbol (如 BTCUSDT)作为唯一标识,且 K 线数据的返回格式为数组格式(而非对象格式),这一点在解析时需要特别注意。


StockTV API 对接文档:加密货币 (Crypto)##1. 基础配置*接口域名:https://api.stocktv.top

  • 加密货币基础路径:/crypto
  • 主要数据源: 币安 (Binance)
  • 认证方式: URL 参数key=您的API密钥

##2. 核心接口流程###第一步:获取交易对列表 (Pair List)获取支持的加密货币交易对列表。

  • 接口:/crypto/pairlist

  • 方法:GET

  • 关键参数:

  • key:您的API Key

  • marketId:338(代表币安交易所数据)

  • page:1

  • 请求示例:

GET https://api.stocktv.top/crypto/pairlist?key=YOUR_KEY&marketId=338&page=1
  • 响应关键字段:
  • symbol:交易对代码(如 “BTC”, “ETH”)
  • pair:完整交易对(如 “BTC/USDT”)
  • price: 最新价格

###第二步:获取 K 线数据 (Klines)注意:加密货币的 K 线数据返回的是数组格式 (Array),而非 JSON 对象。

  • 接口:/crypto/getKlines

  • 方法:GET

  • 参数:

  • symbol:交易对(格式为BTCUSDT, 去掉中间的/)

  • interval:周期(1m,5m,1h,4h,1d,1w,1M)

  • 请求示例:

GET https://api.stocktv.top/crypto/getKlines?symbol=BTCUSDT&interval=1d&key=YOUR_KEY
  • 响应数据结构 (数组索引映射):
  • Index0:开盘时间戳(毫秒)
  • Index1:Open(开盘价)
  • Index2:High(最高价)
  • Index3:Low(最低价)
  • Index4:Close(收盘价)
  • Index5:Volume(成交量)

###第三步:获取最新价格 (Ticker)如果不需要 K 线,只需获取当前价格。

  • 接口:/crypto/tickerPrice
  • 参数:symbols=BTCUSDT,ETHUSDT(支持批量)

##3. 完整代码示例 (HTML + KlineCharts)此代码演示了如何处理加密货币特有的数组格式 K 线数据并渲染图表。

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>加密货币 K线演示 (Crypto)</title><scriptsrc="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script><style>body{font-family:sans-serif;padding:20px;background-color:#1e1e1e;color:#fff;}.control-panel{background:#2d2d2d;padding:15px;margin-bottom:20px;border-radius:8px;display:flex;gap:10px;align-items:center;}#chart{width:100%;height:600px;border:1px solid #444;}button{padding:8px 15px;cursor:pointer;background:#007bff;color:white;border:none;border-radius:4px;}select, input{padding:8px;background:#444;color:white;border:1px solid #666;border-radius:4px;}.price-display{margin-left:auto;font-size:1.2em;font-weight:bold;color:#00ff00;}</style></head><body><h2>StockTV 加密货币对接 (Binance Source)</h2><divclass="control-panel"><label>交易对:</label><selectid="symbolSelect"onchange="loadCryptoData()"><optionvalue="BTCUSDT">BTC/USDT</option><optionvalue="ETHUSDT">ETH/USDT</option><optionvalue="SOLUSDT">SOL/USDT</option><optionvalue="BNBUSDT">BNB/USDT</option><optionvalue="DOGEUSDT">DOGE/USDT</option></select><label>周期:</label><selectid="intervalSelect"onchange="loadCryptoData()"><optionvalue="1m">1分钟</option><optionvalue="15m">15分钟</option><optionvalue="1h">1小时</option><optionvalue="4h">4小时</option><optionvalue="1d"selected>日线</option></select><buttononclick="loadCryptoData()">刷新图表</button><divid="priceInfo"class="price-display">--</div></div><divid="chart"></div><script>// === 配置区域 ===constAPI_KEY='YOUR_API_KEY';// TODO: 替换您的 KeyconstBASE_URL='https://api.stocktv.top';// 初始化图表 (黑色主题)constchart=klinecharts.init('chart');chart.setStyles('dark');// 使用暗色主题适配加密货币风格/** * 加载数据主函数 */asyncfunctionloadCryptoData(){constsymbol=document.getElementById('symbolSelect').value;constinterval=document.getElementById('intervalSelect').value;constdisplay=document.getElementById('priceInfo');display.innerText="加载中...";// 1. 请求 K 线数据consturl=`${BASE_URL}/crypto/getKlines?symbol=${symbol}&interval=${interval}&key=${API_KEY}`;console.log("请求地址:",url);try{constres=awaitfetch(url);constjson=awaitres.json();if(json.code===200&&json.data){// === 关键步骤:数据格式转换 ===// 加密货币接口返回的是数组: [time, open, high, low, close, volume, ...]// 需要映射为对象格式constdataList=json.data.map(item=>{return{timestamp:Number(item[0]),// 索引0: 时间戳open:parseFloat(item[1]),// 索引1: 开盘high:parseFloat(item[2]),// 索引2: 最高low:parseFloat(item[3]),// 索引3: 最低close:parseFloat(item[4]),// 索引4: 收盘volume:parseFloat(item[5])// 索引5: 成交量};});// 排序dataList.sort((a,b)=>a.timestamp-b.timestamp);// 渲染图表chart.applyNewData(dataList);// 更新页面上的最新价if(dataList.length>0){constlast=dataList[dataList.length-1];display.innerText=`${symbol}:${last.close}`;}}else{alert("API 返回错误: "+json.message);}}catch(err){console.error(err);alert("网络请求失败");}}// 页面加载默认执行一次loadCryptoData();</script></body></html>

##4. 常见问题 (FAQ)Q1: 为什么 K 线图表是空白的?

A: 加密货币接口返回的数据是字符串类型的数组(例如["66895.35", ...]),前端必须使用parseFloat()转换为数字,且必须按照正确的数组索引(0=时间, 1=开, 2=高, 3=低, 4=收, 5=量)进行提取。如果直接传给图表库通常会解析失败。

Q2: 如何获取更多交易对?

A: 调用/crypto/pairlist?marketId=338&key=...接口。返回的列表非常长,建议在前端做分页处理或搜索功能。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询