> ## 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.

# 估算 CLMM APR

> Raydium 如何計算 CLMM 池顯示的 APR 數字、如何在開倉前估算假設範圍的 APR，以及使追蹤 APR 容易誤導的邊界情況。

<Info>
  **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**

  [查看英文版 →](/algorithms/clmm-apr)
</Info>

<Info>
  Raydium UI 顯示的 **CLMM 池 APR** 是過去 24 小時內**有效流動性**所賺取的已實現費用 APR，投影到一年。這不是你的頭寸會賺到的 APR——那取決於你的範圍、你在範圍內的時間，以及你在交易窗口期間持有的活躍流動性份額。
</Info>

## 核心公式

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`](/zh-Hant/sdk-api/rest-api) 公開兩者——欄位 `week.apr` 和 `month.apr`。
* **在歷史交易量和價格數據上回測你的特定範圍**，然後再投入有意義的資本。

## 數學如何運作（單一刻度步驟）

在單一刻度內，CLMM 的行為像在該刻度內活躍的流動性量 `L` 上的 CPMM。費用在 `fee_growth_global_X` 和 `fee_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`](/zh-Hant/algorithms/clmm-math)。

若要計算*預期*費用在未來時期內針對預期範圍，估算：

```
expected_fees_per_day = Σ_ticks_in_range (volume_at_tick · fee_rate · your_share_at_tick)
```

Raydium 的 SDK 公開 `getEstimateAprFromPositionAndPool`，它使用最近的每刻度交易量直方圖進行此估算。

## SDK 輔助程序

```ts theme={null}
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`](/zh-Hant/products/farm-staking/overview) 了解農場排放數學。

## 常見錯誤

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

## 指針

* [`algorithms/clmm-math`](/zh-Hant/algorithms/clmm-math) ——費用增長累積器的完整推導。
* [`algorithms/impermanent-loss`](/zh-Hant/algorithms/impermanent-loss) ——LP 等式的損失側面。
* [`user-flows/choosing-a-pool-type`](/zh-Hant/user-flows/choosing-a-pool-type) ——使用此 APR 估算的決策框架。
* [`sdk-api/rest-api`](/zh-Hant/sdk-api/rest-api) ——實時交易量 / APR 端點。

來源：

* Raydium SDK v2 `estimatedApr` 實現。
* Raydium UI 池頁面（實時 APR 欄位）。
* Uniswap V3 費用增長推導。
