Skip to content

资金快照

接口描述

查询指定代币在指定时间点的资金快照。返回该时间点下,多个统计周期(5分钟、15分钟、30分钟……24小时)的资金快照数据。

数据保留规则(非常重要) 系统为每个统计周期(如5分钟、15分钟、24小时等)分别保留最近100个时间点的数据。

  • 对于5分钟周期:保留最近100个整5分钟时刻(约8.33小时)
  • 对于24小时周期:保留最近100天(每天一个时间点) 其他周期以此类推。

这意味着:

  • 如果您查询的时间点超出了对应周期的100个点范围(例如用5分钟周期查8.33小时前的9:50,或查100天前的日期),接口**无法返回精确数据 **。
  • 此时系统会返回该时间点之前最近的一个有效数据点(例如9:50查不到,则返回9:45的数据),而不会强行返回当天08:00的累计值。

为什么这样设计? 为了保证性能和历史数据的可追溯性,我们只保留最近100个时间点的明细。如果您需要查询更早的数据,请使用更大周期的接口(如日线数据)。

请求URL

  • 方法POST
  • 路径/open/v1/trade/getCoinTradeSnapshot

点数消耗

  • 消耗点数3

前置条件

获取 vsTokenId

条件说明获取方式
已有 vsTokenId直接使用缓存的 vsTokenId,无需重复查询上下文自动提取
未有 vsTokenId调用 POST /vs-token/list 接口获取前置接口调用

请求参数

参数通过请求体(Body)以 JSON 格式传递。

参数名类型必需描述
vsTokenIdinteger代币 ID
datelong指定日期(毫秒时间戳)

响应字段

仅展示 data 对象内的字段结构:

字段类型实际返回类型描述
updateTimeintegerlong更新时间(毫秒时间戳)
vsTokenIdintegerstring代币 ID
symbolstringstring代币符号
namestringstring代币名称
hasSpotGoodsbooleanboolean是否存在现货数据
spotMaxInflownumberstring现货主力资金积累
spotGoodsListarrayarray现货数据
    timeRangestringstring时间范围
    timeParticleEnumintegerinteger统计时间粒度
    tradeInflownumberstring交易净流入金额(USD)
    tradeAmountnumberstring交易量(USD)
hasContractbooleanboolean是否存在合约数据
contractMaxInflownumberstring合约主力资金积累
contractListarrayarray合约数据
    timeRangestringstring时间范围
    timeParticleEnumintegerinteger统计时间粒度
    tradeInflownumberstring交易净流入金额(USD)
    tradeAmountnumberstring交易量(USD)

字段业务含义

字段业务含义使用建议
spotMaxInflow现货主力积累主力资金为现货交易的所有时间窗口中的最大资金净流入,主力积累为各时间窗口的资金数据
contractMaxInflow合约主力积累主力资金为现货交易的所有时间窗口中的最大资金净流入,主力积累为各时间窗口的资金数据
date快照日期查询的历史数据时间点,最小时间颗粒5分钟

请求示例

json
{
  "vsTokenId": 1,
  // 代币 id
  "date": 1773654600000
  // 指定日期(时间戳)
}

cURL 示例(Linux/macOS)

bash
curl --location --request POST 'http://${host}/api/open/v1/trade/getCoinTradeSnapshot' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: xxxxx' \
--header 'X-TIMESTAMP: xxxxx' \
--header 'X-SIGN: xxxxx' \
--header 'Accept: */*' \
--data-raw '{
    "vsTokenId": 1,
    "date": 1773654600000
}'

cURL 示例(Windows CMD)

cmd
curl --location --request POST "http://${host}/api/open/v1/trade/getCoinTradeSnapshot" ^
--header "Content-Type: application/json" ^
--header "X-API-KEY: xxxxx" ^
--header "X-TIMESTAMP: xxxxx" ^
--header "X-SIGN: xxxxx" ^
--header "Accept: */*" ^
--data-raw "{    \"vsTokenId\": 1,    \"date\": 1773654600000}"

成功响应示例

json
{
  "code": 200,
  "message": "success",
  "data": {
    "updateTime": 1773654600000,
    // 更新时间
    "vsTokenId": "1",
    // 代币 ID
    "symbol": "BTC",
    // 代币符号
    "name": "Bitcoin",
    // 代币名称
    "hasSpotGoods": true,
    // 是否存在现货数据
    "spotMaxInflow": "173206257.989364",
    // 现货主力资金积累
    "spotGoodsList": [
      {
        "timeRange": "m5",
        // 时间范围
        "timeParticleEnum": 5,
        // 统计时间粒度
        "tradeInflow": "973669.0454980996",
        // 交易净流入金额(USD)
        "tradeAmount": "4176136.897351299"
        // 交易量(USD)
      },
      {
        "timeRange": "m15",
        "timeParticleEnum": 15,
        "tradeInflow": "1531287.2033347988",
        "tradeAmount": "11822696.069185598"
      },
      {
        "timeRange": "m30",
        "timeParticleEnum": 30,
        "tradeInflow": "2668474.962980899",
        "tradeAmount": "25890934.620040294"
      }
      // ... 更多数据省略
    ],
    "hasContract": true,
    // 是否存在合约数据
    "contractMaxInflow": "5115857220.793299",
    // 合约主力资金积累
    "contractList": [
      {
        "timeRange": "m5",
        // 时间范围
        "timeParticleEnum": 5,
        // 统计时间粒度
        "tradeInflow": "7412113.461600001",
        // 交易净流入金额(USD)
        "tradeAmount": "33097685.519799992"
        // 交易量(USD)
      },
      {
        "timeRange": "m15",
        "timeParticleEnum": 15,
        "tradeInflow": "5682104.7779",
        "tradeAmount": "69809754.7091"
      },
      {
        "timeRange": "m30",
        "timeParticleEnum": 30,
        "tradeInflow": "-6355722.267499994",
        "tradeAmount": "183233913.60549998"
      }
      // ... 更多数据省略
    ]
  },
  "requestId": "xxx-xxx-xxx"
}

重要注意事项

  1. 数据保留范围

    • 每个统计周期只保留最近100个时间点的数据。
    • 查询超出范围的时间点(如100天前),系统会返回该时间点之前最近的一个有效数据点。
  2. 时间对齐 您传入的 date 会被向下取整到最近的整5分钟(例如 15:16 → 15:15)。

  3. 时区 所有时间基于 UTC+8

常见问题

Q: 我查询 4月1日 18:16 的数据,为什么返回的是 4月1日 18:15 的数据?

A: 因为时间会自动对齐到最近的整5分钟(18:16 → 18:15)。如果 18:15 在保留范围内,就会返回该点数据。

Q: 我查询 100 天前的数据,返回的结果是什么?

A: 如果该时间点超出了对应周期的100个点范围,系统会返回该时间点之前最近的一个有效数据点。例如,5分钟周期只保留最近8.33小时,查询更早的时间会返回 8.33 小时前的那个点;24小时周期保留最近100天,查询第101天会返回空值。

Q: 我查询 4月1日 18:16 的数据,为什么返回的是当天 08:00 的数据?

A: 如果该时间点超出了对应周期的100个点范围,系统会返回该时间点之前最近的一个有效数据点,直至当天。