讀懂爆倉指標的正負號與分布,避開兩個常見誤讀,再放進策略。
急跌之後,爆倉歷史上出現一根很深的負柱——是很多多單被強平,還是這個幣的數值本來就常偏負?爆倉指標只讀 Binance、0 也不是平衡點,這兩點決定你怎麼讀這根柱子。如果你看的是價位上的爆倉地圖,那是另一套模型估算,見爆倉地圖怎麼讀。
爆倉指標是衡量一段時間內空單與多單哪一邊被強平得多的標準化數值,只用 Binance 的公開強平推送。爆倉是槓桿倉位被交易所強制平倉:多單被強平時交易所送出賣單,空單被強平時送出買單。Blave 每 5 分鐘把各幣種兩邊的強平數量(幣數)累加,再分三步計算:
| 步驟 | 算的是什麼 |
|---|---|
| 1. 淨爆倉 | 每 5 分鐘「空單爆倉量 − 多單爆倉量」,單位是幣數,不是美元;沒有強平紀錄的 5 分鐘記為 0。 |
| 2. 滾動加總 | 在選定的 timeframe(預設 24h)內加總。 |
| 3. 標準化 | 除以這個加總近 30 天的滾動標準差。分子不減平均,所以它不是標準的 z-score。 |
數值沒有上下限,正負號代表哪一邊爆得多:
| 數值 | 意思 |
|---|---|
| > 0 | 該 timeframe 內空單爆倉(幣數)多於多單 |
| < 0 | 多單爆倉多於空單 |
| ≈ 0 | 兩邊相抵、那段沒有強平紀錄,或推送中斷;不代表這個幣的多空平衡 |
分布不對稱,下緣(多單爆倉)比上緣深。以下是 Blave 以 Binance 強平推送自算的分位數,1 小時 K 線、timeframe 24h,期間 2024-09-15~2026-09-14,每小時取一個值(n = 17,520):
| 幣種 | p1 | p50 | p99 | 大於 0 的時間比例 |
|---|---|---|---|---|
| BTC | −3.76 | −0.01 | +3.31 | 48.8% |
| ETH | −4.07 | −0.08 | +2.79 | 43.1% |
| SOL | −4.01 | −0.17 | +2.87 | 37.6% |
| DOGE | −4.07 | −0.23 | +2.97 | 31.1% |
爆倉總覽、爆倉歷史與地圖頁的 24 小時爆倉柱,只吃 Binance 的強平推送。Binance 官方規定每個幣種每秒最多推 1 筆,同一秒內的其他強平不會送出,所以這是抽樣,大行情時會低估。
單位是幣數,不同幣的原始爆倉量不能比大小,要跨幣比較請看標準化後的數值。推送中斷期間,數值會像那段沒有爆倉,不會標示缺資料。
數值大於 0 代表空單爆倉多於多單,小於 0 代表多單爆倉多於空單。但標準化時分子不減平均,長期多單爆倉偏多的幣,數值會系統性偏負,0 並不是這個幣的「平常水準」。
在上面的量測期間(1 小時 K 線、timeframe 24h),數值大於 0 的時間比例見上表。同樣是 0,在 BTC 大約是中位數,在 DOGE 已經比多數時候偏向空單爆倉。
目前沒有任何官方策略使用爆倉資料,以下三種用法都是示意、未回測。程式碼裡的門檻借用上面量到的分位數當起點,不是參數掃描的結果,實際使用前都要自己回測。
最直接的寫法是把數值落在分布兩端的時段標出來。因為下緣比上緣深,兩邊門檻不要用同一個絕對值:以 BTC 為例,p1 約 −3.8、p99 約 +3.3。
LONG_FLUSH_TH = -3.8 # 示意:約 BTC 1h × 24h 的 p1 SHORT_FLUSH_TH = 3.3 # 示意:約 BTC 1h × 24h 的 p99 liq = fetch_liquidation(SYMBOL, INTERVAL, START, END, hdrs, timeframe='24h') df['LIQ'] = liq['alpha'] long_flush = df['LIQ'] <= LONG_FLUSH_TH # 多單集中爆倉 short_flush = df['LIQ'] >= SHORT_FLUSH_TH # 空單集中爆倉
標出來之後怎麼交易要自己研究:Blave 沒有驗證過集中爆倉之後價格會反轉還是延續。分位數也因幣而異,ETH、SOL、DOGE 的 p1 都比 BTC 深,換幣要重算。
因為 0 不是平衡點,「大於 0 就算空單爆倉偏多」這種寫法,在 DOGE 這類長期偏負的幣上會失真。改用該幣自己過去一段期間的分位數當門檻,比較不受長期偏向影響:
# 示意:用過去 180 天的分位數當門檻,窗口長度沒有掃描過
lo = df['LIQ'].rolling('180D').quantile(0.01)
hi = df['LIQ'].rolling('180D').quantile(0.99)
extreme = (df['LIQ'] <= lo) | (df['LIQ'] >= hi)
窗口太短,門檻會跟著近期行情漂移;窗口也不要跨進該幣資料起點後約 30 天內的暖機期(BTC、ETH 是 2023-01-31 以前),那段標準差樣本太少,會算出假的極端值。
另一種保守的用法,是把它加在既有策略的進場條件上:數值落在任一端時,先不開新倉。沿用第 1 種用法的兩個門檻,compute_entry 換成你原本策略的進場條件:
# 示意:數值落在任一端時不進場 flush = (df['LIQ'] <= LONG_FLUSH_TH) | (df['LIQ'] >= SHORT_FLUSH_TH) entry = compute_entry(df) & ~flush
這個組合沒有回測,也沒有驗證過避開集中爆倉能改善績效;只是把「剛爆完一波」當成暫停開新倉的條件。
爆倉指標有兩個設定:timeframe 是淨爆倉的加總窗口,可選 15min、1h、4h、8h、24h、3d,預設 24h;週期(period)決定多久取一次值,可選 5min、15min、1h、4h、8h、1d。數值都先在 5 分鐘格上算完,再取每根 K 線的最後一個值。換 timeframe,分布就會變;同一期間改用 timeframe 1h(1 小時 K 線)的量測如下:
| 幣種 | p1 | p50 | p99 | 大於 0 的時間比例 |
|---|---|---|---|---|
| BTC | −2.62 | 0.00 | +2.12 | 52.5% |
| ETH | −2.84 | 0.00 | +2.17 | 48.8% |
| SOL | −3.07 | 0.00 | +2.21 | 45.5% |
| DOGE | −3.50 | 0.00 | +2.09 | 40.3% |
跟 24h 比,1h 的兩端比較窄,中位數都是 0.00,大於 0 的比例也比較接近一半。所以門檻要跟著 timeframe 重算,不能把一組數字套到另一組;15min、4h、8h、3d 本文沒有量測。
| 頁面 | 看什麼 | 誰能看 |
|---|---|---|
| 爆倉總覽 | 下拉切換「空單爆倉」「多單爆倉」兩張排行,各取前 30 名。方塊大小是數值的絕對值(相對自己近 30 天),不是爆倉金額;顏色是該 timeframe 的價格漲跌。 | 登入 |
| 爆倉歷史 | 單一幣種的爆倉指標柱狀圖疊上價格,可選 timeframe 與週期,附 stat 欄位。 | 非 Pro 最近 7 天延後顯示 |
以下是組合思路,不是驗證過的結論:
| 組合 | 用途 |
|---|---|
| 爆倉 + 巨鯨警報 | 用巨鯨警報看未平倉量有沒有反常變動,再看同一段爆倉指標落在哪一端,分辨那次變動是否伴隨集中強平。 |
| 爆倉 + 多空力道 | 爆倉指標只看被強平的一方,用多空力道看同一段主動買賣的力道,補上自願交易的那一半。 |
爆倉指標的端點是 GET /liquidation/get_alpha,參數有 symbol、period、timeframe(預設 24h)與起訖日期(start_date、end_date);Blave Agent 裡對應 fetch_liquidation。只回傳已收盤的 K 線,欄位是 timestamp、alpha 與 stat,區間超過 1 年會自動截短。最早的幣種(BTC、ETH)資料從 2023-01-01 起、之前的數值是 0,其他幣種可能更晚;30 天標準差需要暖機,比較有意義的數值大約從資料起點 30 天後開始(BTC、ETH 約 2023-01-31)。
get_alpha 的 stat 物件描述最新一筆數值,意思跟名字不完全一樣:
| 欄位 | 實際算法 |
|---|---|
up_prob | 用近 365 天的資料訓練邏輯迴歸模型,以爆倉指標預測 24 小時後漲跌,輸出上漲的機率。訓練資料包含當下這段,屬樣本內估計,不是樣本外勝率。 |
avg_up_return /avg_down_return | 近 365 天所有「24 小時後上漲/下跌」時點的平均報酬,不分爆倉指標水位。 |
exp_value | up_prob × avg_up_return +(1 − up_prob)× avg_down_return,是小數,不是百分比。 |
is_data_sufficient | 該幣資料是否早於 365 天前就開始,不是「這個水位的樣本夠不夠」。 |
爆倉地圖、地圖變化與多交易所彙總的端點和欄位,見爆倉地圖怎麼讀。
stat 也是樣本內的估計——任何門檻都要用你自己的回測驗證。