三道不同的約束
| 約束 | 回答的問題 | 資料來源 |
|---|---|---|
| 風險曲線 | 目前允許多少理論淨賣出額 | 固定參數模型 |
| TWAP + spot | 哪一部分上漲已獲確認、目前價格是否收縮額度 | V2 累計價格與即時儲備 |
| 可借 Token / 精確輸出 | 庫存能否實際賣出這麼多 BNB | Engine 帳本、Token 餘額、即時 Pair |
最終能開倉的金額取決於三者,而不是某一張市值表。
1. 累計價格與 TWAP
V2 記錄的是 WBNB18 / token18 的累計價格。設 A(t) 是按 2¹¹² 縮放的累計值,兩次觀察間隔為 Δt:
轉換為 native18 市值:
BNB 與 WBNB 均為 18 位,市值直接按累計價格乘固定曲線供應計算,不使用額外的精度轉換系數。當前組曲線供應為 10,000,000,000 Token。
2. 最小視窗不是固定滾動視窗
當前 BSC 經濟組使用 300 秒最小觀察視窗:
Δt < 300 秒:觀察更新 不寫入觀察狀態,不抬升已確認上限。Δt ≥ 300 秒:本次平均涵蓋自上一次已提交觀察起的整個時間段。
3. 已確認上限:只升不降
初始化時,容量上限從固定 M₀ 及 C(M₀) 開始;並不是一開始容量為零。此時還沒有經過時間的 TWAP 樣本。
對成熟樣本,候選市值為:
只有候選值高於歷史上限,才抬升它。用 H 表示已確認市值上限、 表示已確認容量上限:
普通價格下跌不會降低這兩個歷史已確認上限。但實際可用額度仍會被 spot 立即限制。
4. spot 即時約束
如果現有全部部位的淨賣出規模為 O = totalOpenShortNative:
- spot 下跌:即時壓縮可開額度,無需等待新 TWAP。
- spot 恢復:可在已確認上限內立即恢復額度。
- spot 創出更高價格:超出已確認上限的部分仍需成熟 TWAP。
- spot 低於
M₀:模型仍有M₀下限;不能把這裡理解為全市場風險消失。
情境範例
| 目前 spot 市值 | 有效容量(約 BNB) | 剩餘額度(約 BNB) | 含義 |
|---|---|---|---|
| 25,000 | 39.627904792016544177 | 37.627904792016544177 | 超出舊上限的上漲尚未釋放 |
| 1,000 | 6.003373265906041571 | 4.003373265906041571 | spot 下跌即時收縮 |
| 10,000 | 39.627904792016544177 | 37.627904792016544177 | 恢復到舊上限內 |
表中為當前經濟組整數實現復算,不是任何實際市場的實時報價。實際 Pair 借貸庫存、全域性/市場暫停與最小名義本金等檢查可能進一步限制可執行額度。
5. Token 庫存約束
引擎實際 Token 餘額還必須不小於可借帳面餘額。額外轉入 Token 不會自動擴大 L₀;如果餘額不足,Quoter 會報錯,而不是繼續給出看似可用的額度。
設 T 為 Pair Token18 儲備、R 為 WBNB18 儲備、L 為可借 Token18。為保證 V2 精確輸出反算不超過 L,庫存對應的最大 WBNB18 淨賣出量為:
L = 0 時單獨傳回零。
BNB 和 WBNB 精度相同,直接比較預覽風險額度與庫存額度:
Quoter 還會讀取當前 Factory 最小毛名義本金與 Engine 有效暫停狀態。若正在暫停,或算出的最大毛名義本金低於當前下限,回傳的可執行淨賣出額和名義本金均為零;原始風險容量與庫存容量仍可用於診斷。
6. 報價不是成交保證
- 預覽與確認狀態不是同一個欄位;前端應分別展示。
- 報價之後可能發生 swap、別人的開倉、稅 Token 清算或時間推進。
- 可執行名義本金仍不是完整交易報價:使用者還需滿足當前最小毛名義本金、暫停狀態、新增抵押與 Token 借入上限等要求。開/加倉後的區塊鎖是另一個維度:區塊 N 增加敞口後,最早 N+1 才能部分/全平倉或單筆/批次清算,不是等待本頁的 300 秒視窗。