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 個點範圍,系統會回傳該時間點之前最近的一個有效資料點,直至當天。