跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
Raydium UI 顯示的 CLMM 池 APR 是過去 24 小時內有效流動性所賺取的已實現費用 APR,投影到一年。這不是你的頭寸會賺到的 APR——那取決於你的範圍、你在範圍內的時間,以及你在交易窗口期間持有的活躍流動性份額。

核心公式

Raydium 計算 CLMM 池的每日費用 APR 如下:
apr_24h = (fees_24h / tvl_in_range_24h) · 365
其中:
  • fees_24h 是過去 24 小時內累積的 LP 側交換費用(以美元計)。
  • tvl_in_range_24h 是在該時間段內有效範圍內流動性的時間加權平均美元價值。
分母是 CLMM APR 與 CPMM APR 的區別之處。CPMM 使用總池 TVL,因為每一美元都始終在貢獻。CLMM 只使用有效範圍內的子集,因為範圍外的美元不賺取任何費用。

你的 APR 實際上會是多少

標題 APR 是池的統計數據,而不是你頭寸的統計數據。你的 APR 取決於四個乘數:
your_APR = headline_APR
         · (your_in_range_fraction / pool_in_range_fraction)     # 集中度獎勵
         · time_in_range                                          # 範圍紀律
         · (1 − transfer_fee_haircut)                             # token-2022 稅
         · compounding_factor                                     # 如果你自動複投
  • 集中度獎勵。 如果你的範圍比池整體平均範圍更緊湊,每個活躍刻度都會有更多你的流動性,相對於每美元的平均 LP 而言。更緊湊 = 更大的獎勵(以及按比例更大的無常損失放大)。
  • 時間在範圍內。 如果你僅在 40% 的時間內有效,則乘以 0.40。
  • 轉賬費用折扣。 對於具有轉賬費用的 Token-2022 鑄幣,每次費用收取都會通過本身損失基點的轉賬進行。
  • 複合。 如果你每週 collectFee 並重新部署到相同範圍,有效 APR 約為 (1 + daily_APR)^365 − 1。沒有複合則是線性的。

工作示例

假設一個 SOL/USDC CLMM 池有:
  • 24 小時交易量:$120M
  • 費用層級:0.05%(LP 在協議扣除後獲得 88% 的費用)
  • 總 TVL:$40M
  • 有效範圍內 TVL:$18M(池的 45% 目前有效)
fees_24h = 120M · 0.0005 · 0.88 = $52,800
apr_24h  = (52,800 / 18,000,000) · 365 = 107%
Raydium UI 為池顯示 107% APR。(此示例使用一個深層、高交易量的池來保持數字具體;典型的 CLMM 池顯示任何地方從 10% 到 50% APR,低交易量池遠低於 10%。) 現在你正在考慮開一個頭寸:
  • 你的範圍:夠緊湊,使得你有 2 倍的平均集中度。
  • 預期時間在範圍內:70%(你將每週檢查一次)。
  • 無 Token-2022 費用。無自動複合。
your_APR ≈ 107% · 2 · 0.70 = 150%
這是一個估計值,不是保證。已實現的交易量可能在一周內翻倍或減半。

為什麼追蹤 APR 是一個滯後信號

相對於 CPMM APR,CLMM APR 移動很快,因為有效範圍內的 TVL 分母移動很快:
  • 大的價格波動會將許多頭寸推出範圍,縮小分母。突然你的剩餘有效範圍內 TVL 看起來「更高的 APR」——但那只是因為競爭對手離開了,通常交易量也會下降。
  • 池達到新歷史高點時,當大多數頭寸是為較低價格校準而只有少數激進的 LP 仍在範圍內時,可能會暫時顯示 500–1000% APR 一小時。
  • 一旦市場穩定,LP 會重新平衡,APR 會回歸均值。
經驗法則:
  • 忽略短於 24 小時的 APR。 噪音太多。
  • 偏向 7 天和 30 天窗口。 Raydium 通過 GET /pools/info/ids 公開兩者——欄位 week.aprmonth.apr
  • 在歷史交易量和價格數據上回測你的特定範圍,然後再投入有意義的資本。

數學如何運作(單一刻度步驟)

在單一刻度內,CLMM 的行為像在該刻度內活躍的流動性量 L 上的 CPMM。費用在 fee_growth_global_Xfee_growth_global_Y 中每單位流動性累積。對於跨越刻度範圍 [i_lo, i_hi] 且流動性為 Lₚ 的頭寸:
fees_earned_X = Lₚ · (fee_growth_inside_X(i_lo, i_hi, now) − fee_growth_inside_X(i_lo, i_hi, t_open))
fees_earned_Y = Lₚ · (fee_growth_inside_Y(i_lo, i_hi, now) − fee_growth_inside_Y(i_lo, i_hi, t_open))
其中 fee_growth_inside 從全局累積器中減去低於 i_lo 和高於 i_hi 的費用增長。詳見 algorithms/clmm-math 若要計算預期費用在未來時期內針對預期範圍,估算:
expected_fees_per_day = Σ_ticks_in_range (volume_at_tick · fee_rate · your_share_at_tick)
Raydium 的 SDK 公開 getEstimateAprFromPositionAndPool,它使用最近的每刻度交易量直方圖進行此估算。

SDK 輔助程序

import { Raydium, TxVersion } from "@raydium-io/raydium-sdk-v2";

const raydium = await Raydium.load({ owner, connection });
const pool = await raydium.clmm.getPoolInfoFromRpc({ poolId });

const apr = await raydium.clmm.estimatedApr({
  poolInfo: pool.poolInfo,
  poolKeys: pool.poolKeys,
  tickLower: -100,   // 你的預期範圍
  tickUpper:  100,
  volumeUsd24h: pool.poolInfo.day.volume, // 或自訂估算
});

console.log(`Expected APR: ${apr.feeApr * 100}% (僅費用,不含農場獎勵)`);
該方法還分別返回任何農場 APR(如果池有附加農場)。你完整的「LP APR」是 feeApr + farmApr

農場 APR 如何適應

Raydium CLMM 池可以有 Farm v6 排放堆疊在頂部。農場獎勵以獎勵鑄幣(通常是 RAY 或合作夥伴代幣)支付,獨立於交換費用。Raydium UI 通常顯示:
Total APR = Fee APR + Farm APR [用 $X, Y, Z 獎勵鑄幣]
農場 APR 的計算方式類似,但使用獎勵排放計劃和當前獎勵鑄幣的美元價格。與費用 APR 不同,它不依賴於波動性——它是一個固定計劃。 products/farm-staking/overview 了解農場排放數學。

常見錯誤

  • 「APR 自動複合。」 不是。費用必須通過 collectFee 領取,然後手動重新部署。Raydium 不會自動複合 CLMM 費用。
  • 「我的 APR = 標題 APR。」 僅當你的集中度是平均水平、你的時間在範圍內是 100%,以及你以相同的節奏複合時才成立。這三個通常都不成立。
  • 「更高費用層級 = 更高 APR。」 僅當交易量在更高費用下存活時才成立。在 1% 時,一對可能引用 50% APR 但交易量只有 1/10;淨少於 0.25%,在 120% × 0.1 = 12%。
  • 「範圍外的頭寸沒有風險。」 它們沒有費用收入,但在現有代幣組合上有完整的無常損失——頭寸現在是「100% 無論哪一側」。

指針

來源:
  • Raydium SDK v2 estimatedApr 實現。
  • Raydium UI 池頁面(實時 APR 欄位)。
  • Uniswap V3 費用增長推導。