xtraderClient/docs/api/cryptoChart.md
2026-03-20 19:01:14 +08:00

1.9 KiB
Raw Blame History

cryptoChart.ts

路径src/api/cryptoChart.ts

功能用途

加密货币价格走势图 API使用 Binance REST + WebSocket 实现细粒度1 分钟)实时走势。当事件类型为加密货币时,详情页可切换显示 YES/NO 分时走势图与加密货币实时价格走势图。

核心能力

  • isCryptoEvent:判断事件是否为加密货币类型(通过 tags/series slug、ticker
  • inferCryptoSymbol从事件信息推断币种符号btc、eth 等)
  • fetchCryptoChart:从 Binance 获取 1 分钟 K 线历史(优先);当范围超出 Binance 单次限制时,自动切换到 CoinGecko
  • subscribeCryptoRealtime:订阅 Binance 归集交易aggTradeWebSocket实时推送每笔成交比 K 线(约 1s更细内部 80ms 节流 + RAF 批处理,避免频繁 setOption 卡顿;支持 PING/PONG 保活

币种映射

COINGECKO_COIN_IDS 支持btc、eth、sol、bnb、xrp、doge、ada、avax、matic、dot、link、uni、atom、ltc、near、apt、arb、op、inj、sui、pepe、wif、shib 等。

使用方式

import { isCryptoEvent, inferCryptoSymbol, fetchCryptoChart } from '@/api/cryptoChart'

if (isCryptoEvent(eventDetail)) {
  const symbol = inferCryptoSymbol(eventDetail) ?? 'btc'
  const res = await fetchCryptoChart({ symbol, range: '1D' })
  const points = res.data ?? []
}

30 秒走势(仅加密货币)

  • 30S 选项仅在加密货币走势图显示YES/NO 分时与 EventMarkets 不包含
  • 30S 数据:拉取 1H60 分钟)走势,过滤保留最近 30 秒内的点展示

扩展方式

  • 新增币种:在 COINGECKO_COIN_IDS 中追加映射
  • 更换数据源:修改 fetchCryptoChart 内部实现,或通过后端代理 CoinGecko 以规避 CORS
  • 实时流参考:Binance WebSocket 归集交易