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

# Estimer l'APR d'un CLMM

> Comment Raydium calcule les chiffres d'APR affichés sur les pools CLMM, comment estimer votre propre APR pour une plage hypothétique avant d'ouvrir une position, et les cas particuliers qui rendent l'APR historique trompeur.

<Info>
  **Cette page est traduite automatiquement par IA. La version anglaise fait foi.**

  [Voir la version anglaise →](/algorithms/clmm-apr)
</Info>

<Info>
  L'**APR affiché sur l'interface Raydium** pour un pool CLMM est l'APR de frais réalisé de la **liquidité dans la plage** sur les 24 dernières heures, extrapolé à une année. Ce n'est pas l'APR que **votre position** aurait gagné — cela dépend de votre plage, du temps passé dans la plage, et de votre part de la liquidité active pendant la fenêtre de trading.
</Info>

## La formule de base

Pour un pool CLMM, l'APR quotidien des frais affiché sur Raydium est calculé comme suit :

```
apr_24h = (fees_24h / tvl_in_range_24h) · 365
```

Où :

* `fees_24h` est la somme des frais d'échange côté LP accumulés au cours des 24 dernières heures (en USD).
* `tvl_in_range_24h` est la valeur USD moyenne pondérée dans le temps de la liquidité qui était **dans la plage** pendant la fenêtre.

Le dénominateur est ce qui distingue l'APR CLMM de l'APR CPMM. CPMM utilise la TVL totale du pool car chaque dollar contribue toujours. CLMM utilise uniquement le sous-ensemble dans la plage car les dollars hors plage ne gagnent rien.

## Quel sera réellement votre APR

L'APR de base est une statistique du pool, pas de votre position. Votre APR dépend de quatre multiplicateurs :

```
your_APR = headline_APR
         · (your_in_range_fraction / pool_in_range_fraction)     # bonus de concentration
         · time_in_range                                          # discipline de plage
         · (1 − transfer_fee_haircut)                             # taxe Token-2022
         · compounding_factor                                     # si vous réinvestissez automatiquement
```

* **Bonus de concentration.** Si votre plage est plus serrée que la moyenne du pool, chaque tick actif a plus de votre liquidité par dollar que celle du LP moyen. Plus serré = bonus plus grand (et amplification de l'IL proportionnellement plus grande).
* **Temps dans la plage.** Si vous êtes dans la plage seulement 40 % du temps, multipliez par 0,40.
* **Taxe de frais de transfert.** Pour les mints Token-2022 avec frais de transfert, chaque collection de frais passe par un transfert qui lui-même saigne des points de base.
* **Capitalisation.** Si vous faites `collectFee` et réinvestissez dans la même plage chaque semaine, l'APR effectif est d'environ `(1 + daily_APR)^365 − 1`. Sans capitalisation, c'est linéaire.

### Exemple détaillé

Supposez qu'un pool CLMM SOL/USDC ait :

* Volume 24h : 120M \$
* Frais : 0,05 % (part LP 88 % des frais après prélèvement du protocole)
* TVL total : 40M \$
* TVL dans la plage : 18M \$ (45 % du pool est actuellement dans la plage)

```
fees_24h = 120M · 0.0005 · 0.88 = $52,800
apr_24h  = (52,800 / 18,000,000) · 365 = 107%
```

L'interface Raydium affiche **107 % APR** pour le pool. (Cet exemple utilise un pool profond et à haut volume pour garder les chiffres concrets ; les pools CLMM typiques affichent entre 10 % et 50 % APR, les pools faibles volume étant bien en dessous de 10 %.)

Supposez maintenant que vous envisagez d'ouvrir une position :

* Votre plage : suffisamment serrée pour que vous ayez 2× la concentration moyenne.
* Temps prévu dans la plage : 70 % (vous vérifierez chaque semaine).
* Pas de frais Token-2022. Pas de capitalisation automatique.

```
your_APR ≈ 107% · 2 · 0.70 = 150%
```

C'est une estimation, pas une garantie. Le volume réalisé peut doubler ou être divisé par deux en une semaine.

## Pourquoi l'APR historique est un signal décalé

L'APR CLMM se déplace **rapidement** par rapport à l'APR CPMM car le dénominateur TVL dans la plage se déplace rapidement :

* Un grand mouvement de prix pousse des blocs de positions hors de la plage, rétrécissant le dénominateur. Soudain, votre TVL restant dans la plage semble « APR plus élevé » — mais seulement parce que les concurrents sont partis, et généralement le volume baisse aussi.
* Un pool atteignant un nouveau record peut temporairement afficher 500–1000 % APR pendant une heure car la plupart des positions étaient calibrées pour des prix plus bas et seuls quelques LPs agressifs restent dans la plage.
* Une fois le marché stabilisé, les LPs rééquilibrent et l'APR revient à la moyenne.

Règles de base :

* **Ignorez les APR sur moins de 24 heures.** Trop de bruit.
* **Préférez les fenêtres 7j et 30j.** Raydium expose les deux via [`GET /pools/info/ids`](/fr/sdk-api/rest-api) — champs `week.apr` et `month.apr`.
* **Testez rétroactivement votre plage spécifique** sur les données de volume et de prix historiques avant de mobiliser un capital important.

## Comment fonctionne les mathématiques (étape de tick unique)

À l'intérieur d'un seul tick, le CLMM se comporte comme un CPMM sur la quantité de liquidité `L` active dans ce tick. Les frais s'accumulent dans `fee_growth_global_X` et `fee_growth_global_Y` par unité de liquidité. Pour une position avec liquidité `Lₚ` qui s'étend sur les plages de tick `[i_lo, i_hi]` :

```
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))
```

Où `fee_growth_inside` soustrait la croissance des frais en dessous de `i_lo` et au-dessus de `i_hi` de l'accumulateur global. Les détails se trouvent dans [`algorithms/clmm-math`](/fr/algorithms/clmm-math).

Pour calculer les frais *attendus* sur une période future pour une plage prospective, estimez :

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

Le SDK Raydium expose `getEstimateAprFromPositionAndPool` qui effectue cette estimation en utilisant l'histogramme récent du volume par tick.

## Assistante 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,   // votre plage prévue
  tickUpper:  100,
  volumeUsd24h: pool.poolInfo.day.volume, // ou une estimation personnalisée
});

console.log(`APR attendu : ${apr.feeApr * 100}% (frais uniquement, exclut les incitations de ferme)`);
```

La méthode retourne également séparément tout APR de ferme si le pool a une ferme associée. Votre « APR LP » complet est `feeApr + farmApr`.

## Où s'inscrit l'APR de ferme

Les pools Raydium CLMM peuvent avoir des émissions Farm v6 superposées. Les récompenses de ferme sont payées dans un **mint de récompense** (souvent RAY ou un token partenaire) indépendant des frais d'échange. L'interface Raydium affiche généralement :

```
APR total = APR des frais + APR de ferme [en mints de récompense $X, Y, Z]
```

L'APR de ferme est calculé de la même manière mais en utilisant le calendrier d'émission des récompenses et le prix actuel du mint de récompense en USD. Contrairement à l'APR des frais, il n'est pas dépendant de la volatilité — c'est un calendrier fixe.

Voir [`products/farm-staking/overview`](/fr/products/farm-staking/overview) pour les mathématiques d'émission de ferme.

## Erreurs courantes

* **« L'APR est capitalisé automatiquement. »** Non. Les frais doivent être réclamés via `collectFee`, puis réinvestis manuellement. Raydium ne capitalise pas automatiquement les frais CLMM.
* **« Mon APR = APR de base. »** Seulement si votre concentration est moyenne, votre temps dans la plage est de 100 %, et vous capitalisez au même rythme. Les trois sont généralement faux.
* **« Frais plus élevés = APR plus élevé. »** Seulement si le volume survit aux frais plus élevés. À 1 %, une paire peut afficher 50 % APR mais faire 1/10 du volume ; net inférieur à 0,25 % à 120 % × 0,1 = 12 %.
* **« Les positions hors plage ont zéro risque. »** Elles ont zéro revenu de frais mais une IL complète sur la composition de tokens existante — la position est maintenant « 100 % du côté quel qu'il soit ».

## Références

* [`algorithms/clmm-math`](/fr/algorithms/clmm-math) — dérivation complète de l'accumulateur de croissance des frais.
* [`algorithms/impermanent-loss`](/fr/algorithms/impermanent-loss) — le côté perte de l'équation LP.
* [`user-flows/choosing-a-pool-type`](/fr/user-flows/choosing-a-pool-type) — cadre décisionnel utilisant cette estimation d'APR.
* [`sdk-api/rest-api`](/fr/sdk-api/rest-api) — terminaux de volume / APR en direct.

Sources :

* Implémentation `estimatedApr` du SDK Raydium v2.
* Page de pool de l'interface Raydium (champs d'APR en direct).
* Dérivation des frais Uniswap V3.
