將清算級聯作為交易訊號:解讀被迫且預先宣告的流量
大多數市場流動在印刷前都是秘密。全權賣家在決定時決定出售;事後你可以從磁帶中了解他們的意圖。槓桿清算是個例外,而且這個例外是巨大的。清算是強制的——頭寸持有者對是否發生沒有發言權——而且它是預先宣布的——它觸發的確切價格是參數的確定性函數,這些參數是鏈上的、完全公開的和鏈下的、統計上可估計的。每一筆槓桿多頭都是一個常設市場賣出訂單,其價格向任何願意計算它的人廣播。
這重新建構了整個事情。 關於 Aave 和複合清算機制的配套文章 從清算人的角度處理清算——基礎設施競賽「成為」償還壞帳並收取獎金的人。本文站在交易者的角度看同一對象:不是“我如何贏得強平”,而是“其他人強平價格的總和是未來強制流動的地圖,我可以根據該地圖進行交易”。我們建構了兩個版本的地圖——一個是在鏈上的,一個是在 CEX perps 上的模糊的——量化清算鏈何時會自我強化,並仔細說明由此產生的流動對價格的影響。
鏈上清算深度圖
在貨幣市場上,部位的清算價格是無法估計的。它是衍生出來的。回想力學入門中的健康因素:以下情況時,部位可以清算:
和 抵押品金額, 他們的預言機價格, 清算門檻,以及 債務價值。我們不會重新推導這個;我們顛倒它。以常見情況為例—單一的波動性抵押品 (如 WETH)為穩定債務融資 (USDC)。環境 求解抵押品價格即可得出該頭寸的觸發價格:
這個數字就是藉款人所宣傳的數字。它說:*如果 WETH 接觸 在預言機上,這個部位變成了強制供應。 *而該供應的規模也是可知的-在觸發時,清算人會償還 債務並扣押抵押品價值 ,大致如此
當頭寸觸發時,抵押品價值的價值進入市場(或被對沖)。
從機制入門看具體位置:10 WETH 以 3,000 美元存入,借入 20,000 USDC,清算門檻 ,獎金5%。其觸發因素是 ,並以 50% 的接近係數停車 以此價格強制供應 WETH。一名借款人,圖表上的一根柱。對協議中的每個借款人執行此操作,將結果按 ,並且您有一個直方圖:作為價格函數的名義強制賣出。這就是鏈上清算深度圖——訂單簿的 DEX 原生表親,只不過「訂單」是非自願的,並且它們的價格是計算出來的,而不是報價的。

三個誠實的警告可以防止這成為幻想:
- **多重資產部位沒有單一觸發價格。 ** 具有兩種波動性抵押品和兩筆債務的部位在價格空間的「表面」而非點上清算。實際的減少是沿著主要波動性抵押品的軸計算觸發,同時將所有其他預言機價格保持在當前值。對於一項資產的變動來說這是正確的,而對於相關的籃子變動來說則是錯誤的——這一點很重要,因為相關的崩盤恰恰是在許多觸發因素一起變動時發生的。對待單一資產 作為一階邊際,而不是保證。
- **強制出售 ** 有能力的清算人不會盲目地將扣押的抵押品出售到最薄弱的可用抵押品池中;他們透過 DEX 和 CEX 進行交易,並且經常對犯罪分子進行持有和 Delta 對沖,而不是立即變現抵押品(機制入門 詳細討論了退出掉期問題)。所以 是影響價格的流量的“上限”,而不是點估計。其中一些洩漏到從未觸及現場的樹籬。
- **觸發器隨預言機移動,而不是市場。 ** 在 Aave 和Compound 上,當 預言機 交叉時,部位即可清算 ,並且預言機更新偏差和心跳節奏,落後於市場。因此,深度圖是強制流「變得合格」的地圖,由下一個預言傳輸控制——入門書詳細介紹了這一微妙之處。
第三個來源位於貨幣市場圖表與 CEX 熱圖之間:perp DEXs。 Hyperliquid、GMX 和 dYdX v4 像中心化交易所一樣運行槓桿永續合約,但將頭寸狀態保留在鏈上或可查詢的清算所中。這意味著它們的清算價格遵循與 CEX 永續合約相同的逐倉保證金公式,但根據「實際」頭寸(規模、抵押品、入場額)計算,而不是根據總體 OI 估算。 Hyperliquid 的清算所狀態公開了每個帳戶的保證金和標記價格; GMX 部位位於鏈上,並透過保管人以預言機得出的價格進行清算。實際結果是:對於 Perp DEX,您可以建立一個具有 CEX 式槓桿但具有鏈上式精度的清算圖,它更接近 Aave 圖表的準確性,而不是熱圖的猜測。場地發布立場的地方,你永遠不必猜測。
即使有這些警告,鏈上圖表仍然是市場中任何地方都存在的最清晰的強制流動圖:沒有關於槓桿分佈的假設,沒有隱藏的大小,每個輸入都可以從狀態中讀取。
CEX 清算熱圖
中心化的永續交易所給你相反的情況 - 更大的未平倉合約,並且幾乎沒有使鏈上圖表準確的頭寸級別細節。您無法閱讀個別職位。您可以閱讀的是合計未平倉合約和交易量。當您嘗試根據這些聚合和假設重建深度圖時,就會得到清算熱圖,並且這些假設是承載的。
每個位置的算術很簡單。對於按價格輸入的逐倉線性(USDT 結算)多頭 有槓桿 和維持保證金率 ,當權益下降到維持要求時,就會觸發清算:
並且對稱地 。修復一個條目 和 並遍歷槓桿層:
| 槓桿 | 入口下方距離 | |
|---|---|---|
| 5× | 2,415 美元 | −19.5% |
| 10× | 2,715 美元 | −9.5% |
| 25× | 2,895 美元 | −3.5% |
| 50× | 2,955 美元 | −1.5% |
| 100× | 2,985 美元 | −0.5% |
該柱形的形狀就是熱圖在近期價格下方亮起的全部原因:高槓桿頭寸在入場之內就被清算,因此無論最近交易量如何,50-100×觸發器的密集帶都位於不到百分之一的地方。熱圖建構器的作用是:將最近的交易量視為開倉位置的代理(其 ),將該交易量分佈在一組假設的槓桿層級上——5×、10×、25×、50×、100×以及一些假設的權重——將每個切片投影到其 ,並用在那裡清算的估計槓桿名義對價格軸進行陰影。亮帶是密集的估計清算區域。

明確說明為什麼這是一張模糊圖片,而不是鏈上圖表的孿生圖:
- **槓桿分佈不詳。 **整個熱圖是交易量與假設槓桿直方圖的捲積。不同的假設重新定位了亮帶。兩家信譽良好的數據供應商在同一天針對同一市場發布了明顯不同的熱圖,考慮到他們的先驗,兩者都是「正確的」。
- **全倉保證金打破了每個部位公式。 ** 以上是逐倉保證金結果。全倉保證金頭寸會根據「整個帳戶」淨值進行清算,因此其有效觸發因素取決於交易者的其他頭寸、未實現的盈虧以及他們在交易過程中補充的任何抵押品——這些都是不可觀察到的。估計者其實是看不到全倉保證金大小的。
- **隱藏和動態規模。 ** 未平倉合約是淨額加總額;它不會告訴您從 OI 到各個條目的映射。交易者不斷增加、削減和對沖。分級維持保證金( 名目部位上升)會在相同槓桿下改變大部位相對於小部位的觸發因素。
- **清算是分塊的,而不是瞬時的。 ** 交易所逐步清算大量頭寸,並透過保險基金和自動去槓桿化來轉移剩餘風險,因此即使是正確定位的集群也不會作為一份印刷品轉儲。
保存熱圖的正確方法是作為優先於強制流可能集中的地方,透過實現的清算列印來確認或反駁( forceOrder 在下面的管道部分中流),而不是作為分類帳。它確實很有用,但也確實不精確,而假裝不然的話,人們就會被他們正在觀察的集群碾壓。為什麼如此多的槓桿首先堆積在perps上——以及為什麼融資成本不斷將這些頭寸推向觸發點——請參閱[跨交易所的資金利率套利](/blog/funding-rate- Arbitage-cross-exchange)。
級聯動力學,量化
單次清算就是一個數據點。 級聯是反饋循環,它有一個您可以寫下的閾值。這個循環是機械性的:強制拋售影響帳簿→價格影響推動市場→這一舉動推動下一層頭寸超過其觸發點→這些頭寸被清算→更多的強制拋售→重複。無論這件事失敗或消失,都不是感情問題;而是問題。它是您已經建立的兩個數量的比率。
部分降價工作 。兩種成分:
- 清算密度 — 強制出售名目每單位部分價格下降,直接從深度圖/熱圖上讀取: 。它衡量一個價格範圍內堆積了多少燃料。
- 市場深度 — 將價格移動一個單位所需的市場拋售概念 。在線性(凱爾)影響模型下,出售名義 將價格移動 。這是訂單簿吸收強制流量的能力,這正是訂單簿牆和隊列位置分析所涉及的數量—「牆」是局部尖峰 。
現在迭代。外部衝擊導致價格下跌 , 觸發 的強制出售。拋售導致進一步下跌 。定義級聯乘數
遞迴很簡單 。總落差是一個幾何級數:
一切都存在於價值中 :
- — **次臨界。 ** 每輪清算所引發的拋售都比前一輪「少」。級聯自熄;總移動量為有界倍數 最初的震驚。大多數清算事件都在這裡。
- — **超臨界。 ** 每輪至少引發與上一輪一樣多的拋售。幾何級數發散;其變動僅受可清算部位耗盡、低價買入或交易所熔斷的限制。這就是「閃崩/多頭擠壓」狀態。
是 複製數 — 清算流行病。報告稱,當聚集在某個價格區間的強制拋售流動性超過可吸收該流動性的帳面流動性時,級聯就會消失。這就是為什麼對一本薄書上的密集簇的適度衝擊比對空白價格空間的大規模衝擊要危險得多:危險在於 ,而不是衝擊大小。這種自激結構(事件觸發更多同類事件)與霍克斯流程建模訂單流的結構相同,這就是清算以集群形式而不是均勻地出現的原因。

把數字放在上面。假設帳簿中 1000 萬美元的市場拋售使 ETH 移動了 1%,所以 名目每單位分數價格。現在比較一下點下方 1% 寬頻帶的兩種制度:
- **密集帶,\rho = 30\text{M} / 0.01 = \char36 3\text{B}g = \rho/\Delta = 3g$ 但無論位置用完。
- **稀疏帶,$6M 的群集概念。 **然後 , ,總移動量為 - 放大但有限的下降。同樣的衝擊,同一本書,五倍薄的簇,結果從崩潰轉變為可購買的燈芯。
離散版本是對排序集群的簡短模擬,值得編寫,因為它使閾值變得有形:
def cascade(p0, clusters, kyle_lambda):
"""
p0: price after the exogenous shock
clusters: {trigger_price: forced_notional} for long positions
kyle_lambda: fractional price impact per $ of market sell (1/depth)
Returns the floor price and total liquidated notional.
"""
p, sold, fired = p0, 0.0, set()
while True:
new = [(tp, n) for tp, n in clusters.items()
if tp not in fired and tp >= p]
if not new:
break
q = sum(n for _, n in new) # this round's forced sell
fired.update(tp for tp, _ in new)
p *= (1 - kyle_lambda * q) # linear price impact of the round
sold += q
return p, sold
兩個實用筆記。第一的, 是本地——它沿著價格軸變化,因為兩者 (簇密度)和 (書深度)做。可交易的問題不是“市場是否脆弱”,而是“具體價格在什麼水平時會脆弱”? 其次,相同的機制在上漲過程中對空頭來說是相反的(空頭擠壓是符號翻轉的級聯),因此該圖有兩個側面:現貨下方的多頭清算燃料,上方的空頭清算燃料。強制拋售產生價格影響產生強制拋售循環是甩賣文獻(Cont&Wagalat)中形式化的內生風險機制,其中不良清算產生其自身的相關性和影響。
訊號:作為磁鐵和反轉區的簇
強制流圖會產生兩個不同的、幾乎相反的、可交易的讀數,取決於相對於級聯的時間。
**之前:集群是價格磁鐵。 ** 密集的清算集群是有保證的、對價格不敏感的流量池。這對兩類參與者有吸引力:尋求流動性的交易者,他們想要填補被迫交易對手的規模,以及掠奪性交易者,他們將價格推向集群,專門引發流動(在協議規模上的止損狩獵)。結果是,價格有一種有據可查的趨勢,即「傾向於」大型集群——該水平就像磁鐵一樣——因為存在拉近距離的長期激勵。當您看到光點在低信念下向亮帶漂移時,該帶本身就是解釋的一部分。隨著價格接近,預測訂單的反應(牆會吸收流量還是折疊)正是一種短期訂單簿預測問題,其模型類似於 DeepLOB 攻擊。
之後:群集是反轉區。 ** 這是更有價值、更容易被濫用的讀物,所以請仔細陳述。從結構上看,強制平倉流是非資訊性的**——賣方不出售,因為他們認為價格太高;他們出售是因為利潤引擎告訴他們這樣做。非資訊流暫時影響價格。一旦聚集的部位耗盡,機械拋售就會突然停止,如果在下跌過程中級聯超過公允價值,價格往往會回調——「清算燈芯」。這個機制並非民間傳說:這是標準結果,即強制、不知情的拋售對價格的影響具有短暫性,一旦資金流動停止,這種影響就會恢復,這與股票廉價拋售文獻中產生暫時混亂和隨後部分恢復的拋售邏輯相同。

盡可能簡單地說明這一點所要求的紀律:
- **級聯後的均值回歸是一種記錄在案的趨勢,而不是定律,也不是數字。 ** 它的條件是流確實是非資訊性的,並且在級聯期間沒有新資訊到達。清算級聯「也是」市場對真實新聞的重新定價(脫鉤、利用、宏觀衝擊)不會逆轉——強制流和資訊流是疊加的,只有前者是短暫的。不存在普遍的「買燈芯」優勢,您看到的任何特定的回歸百分比,如果沒有規定的樣本、地點和製度,都應被視為行銷。
- **訊號是耗盡,而不是下跌。 ** 可交易的時刻是當已實現的清算列印變薄時 - 當
forceOrder磁帶在爆炸後就會安靜下來——因為那時機械賣家就走了。進入超臨界級聯的中間()正走在前一節所警告的回饋循環的前面。 - **兩個讀數需要相同的圖形。 ** 磁鐵和反轉是在不同階段看到的相同簇;如果不先建立深度圖和熱圖並不斷將它們與已實現的列印進行協調,您就無法進行交易。
雙面地圖的「不對稱」也有較慢的定向讀取。多頭清算燃料位於現貨下方,空頭清算燃料位於現貨上方;當一側的負載比另一側重得多時,市場就會機械地偏向重的一側,因為這是衝擊最能自我強化的流動的地方。無論敘述如何,一個多頭清算牆下跌 3% 且幾乎沒有任何上漲的市場在結構上很容易受到下行影響——阻力最小的路徑是燃料最多的路徑。持續的、單邊的融資往往是造成這種不對稱的首要原因:支付多頭以保持空頭(深度負融資)的市場積累了擁擠的空頭,這些空頭的清算集群然後位於“高於”價格作為擠壓燃料,反之亦然。融資磁帶和清算圖是同一槓桿的兩種視圖。
資料管道
該系統是兩個具有相反特徵的來源的融合:一個前瞻性鏈上頭寸指數(其中強制流將成為合格的)和一個已實現的 CEX清算流(其中強制流現在正在打印)。一個告訴你燃料在哪裡;另一個告訴你燃料在哪裡。另一個告訴你它已經著火了。
**前向地圖 — 鏈上位置索引。 ** 從 Aave/Compound 事件歷史記錄中引導 (Supply, Borrow, Repay, Withdraw, LiquidationCall),透過重播日誌或查詢 The Graph 上的子圖,並將它們折疊到當前的每用戶餘額中 - mechanics prime 為清算機器人描述的確切索引子系統,此處重用用於聚合而不是執行。根據餘額加上目前風險參數,計算每個頭寸的 和 ,並將其放入深度圖直方圖中。刷新新區塊;一旦餘額生效,直方圖的增量維護成本就很便宜。
實現的磁帶—幣安 forceOrder 流。 ** 幣安期貨透過 websocket 發布實際清算, wss://fstream.binance.com/ws/!forceOrder@arr (全符號數組)或 <symbol>@forceOrder,每個事件都攜帶強平訂單的方、價格和數量。一個記錄在案的陷阱,說實話,這正是一種不精確的情況:公共流被限制為每秒每個符號最多一個清算事件** - 在劇烈的級聯過程中,當清算到達的速度遠遠快於 1/s 時,流“採樣”而不是報告每次填充,因此在最重要的時候系統地從它重建的聚合清算量低估了清算量低估了。使用流來確定級聯的「時間和方向」(它是發射,哪一側,是加速還是變薄),而不是作為精確的交易量帳本。
一個最小的攝取框架-兩個非同步生產者寫入一個標準化匯流排:
import asyncio, json, websockets
async def binance_liquidations(bus):
url = "wss://fstream.binance.com/ws/!forceOrder@arr"
async with websockets.connect(url) as ws:
async for msg in ws:
o = json.loads(msg)["o"] # order payload
await bus.put({
"src": "binance", "kind": "realized",
"symbol": o["s"],
"side": o["S"], # SELL = long liquidation
"price": float(o["p"]),
"qty": float(o["q"]), # NB: stream is sampled at 1/s
})
async def onchain_positions(bus, subgraph, poll=12):
while True:
positions = subgraph.fetch_open_positions() # balances + risk params
chart = {}
for pos in positions:
p_liq = pos.debt / (pos.collateral * pos.liq_threshold)
q = pos.close_factor * pos.debt * (1 + pos.liq_bonus)
chart[round(p_liq, 2)] = chart.get(round(p_liq, 2), 0.0) + q
await bus.put({"src": "aave", "kind": "forward", "chart": chart})
await asyncio.sleep(poll) # ~1 block cadence
async def main(subgraph):
bus = asyncio.Queue()
await asyncio.gather(
binance_liquidations(bus),
onchain_positions(bus, subgraph),
consumer(bus), # reconcile forward map vs realized tape, emit signals
)
這 consumer 是策略所在:持有前向圖(鏈上圖加上估計的 CEX 熱圖),估計本地級聯乘數 對照即時訂單簿深度,並觀察已實現的 forceOrder 膠帶檢測點火和 - 可交易部分 - 耗盡。當磁帶破裂然後變薄,而價格低於地圖所說的集群時,就會出現非資訊性超調,強制賣家消失:反轉設定。當磁帶加速並 前面,你需要避開超臨界級聯。相同的地圖,相反的動作,磁帶可以即時消除它們的歧義。
拿走什麼
清算扭轉了市場通常的資訊不對稱:強制拋售的價格和規模是可以提前計算的,而不是在列印之前隱藏流量 - 完全在鏈上,大約在 CEX perp 上。建構地圖(鏈上深度圖與路由和預言機延遲完全一致;CEX 熱圖是基於未知槓桿分佈且對全倉保證金視而不見的先驗),並且地圖的脆弱性降低到一個比率:級聯乘數 ,強制銷售密度與書本深度的關係,這是一個低於 1 的亞臨界複製數,高於 1 則失控。訊號按相位分裂——之前的簇是磁鐵,之後是反轉區——而反轉邊緣的存在只是因為強制流是非資訊性的,因此是短暫的,這種記錄在案的趨勢在級聯與真實新聞重合的那一刻就消失了。交易的是疲憊,而不是下跌;尊重 ;永遠不要將模糊熱圖誤認為是屍體埋藏地點的分類帳。
參考文獻
-Qin、Zhou、Gamito、Jovanovic、Gervais (2021),*DeFi 清算的實證研究:激勵、風險和不穩定性。 * arXiv:2106.06389。
- Kyle, A. S. (1985),*連續拍賣與內線交易。 * Econometrica 53(6) — 線性價格影響係數 用於級聯模型。
- Cont, R. 和 Wagalath, L. (2016),*拋售取證:衡量內生風險。 *數學金融 26(4) — 強制清算和內生相關性的價格影響。
- Bacry, E.、Mastromatteo, I.、Muzy, J.-F. (2015),*霍克斯金融流程。 *市場微觀結構與流動性 1(1) — 訂單和清算流的自激集群。
- 幣安期貨 API 文件 — 清算訂單流 (
!forceOrder@arr,<symbol>@forceOrder),包括每個符號每秒 1 個事件限制註釋。 - The Graph 上的 Aave v3 和Compound III 子圖;阿夫
getUserAccountData並預留風險參數。
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.