Calculateur de perte impermanente
Si le prix d'un jeton double par rapport à l'autre, une position dans un pool 50/50 finit environ 5,72 % derrière la simple détention ; s'il quadruple, 20 %. Saisissez le prix de départ et le prix ultérieur pour voir votre perte impermanente. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Prix initial
- 100
- Prix final
- 200
- Rapport des prix
- 2
- Variation de prix (%)
- 100
- Facteur de valeur LP
- 1,414214
- Facteur de valeur de conservation
- 1,5
Les fournisseurs de liquidité sur les teneurs de marché automatisés à produit constant perçoivent des frais d’échange, mais ils prennent aussi un risque d’inventaire caché appelé perte impermanente : l’écart entre la valeur des jetons restés dans le pool et la valeur du même inventaire de départ conservé hors du pool après que le ratio de prix des deux actifs a bougé. Traders, formateurs et tableaux de bord DeFi ont besoin de cet écart comme un nombre en forme fermée, pas comme une trajectoire Monte Carlo.
Ce qu’est la perte impermanente et comment fonctionne la formule 50/50
La perte impermanente est le coût d’opportunité de fournir de la liquidité à un pool à deux actifs à produit constant —le teneur de marché automatisé classique xy = k utilisé par les places de style Uniswap v2— plutôt que de simplement conserver la même répartition de départ des deux jetons. Au dépôt, le pool prend une valeur égale de chaque actif. Le même inventaire de départ conservé hors du pool vaut le deposit multiplié par un plus k, divisé par deux.
Diviser ces deux valeurs et retrancher un donne l’identité des manuels : IL égale deux fois la racine carrée de k, divisé par un plus k, moins un. Le résultat est toujours inférieur ou égal à zéro. Un changement de prix au double produit environ moins 5.72 pour cent, un changement au quadruple produit exactement moins 20 pour cent, et un prix inchangé (k égal à un) produit zéro.
On l’appelle impermanente parce qu’elle disparaît si le ratio de prix revient au niveau d’entrée avant que vous retiriez ; elle devient réalisée dès que vous sortez au nouveau ratio.
Où un calculateur de perte impermanente justifie sa place
Les pages pédagogiques DeFi et les blogs de finance personnelle se positionnent sur calculateur de perte impermanente lorsqu’ils offrent un outil en direct aligné sur l’article. Les plateformes de coaching laissent les élèves saisir un mouvement de prix de manuel au double ou au quadruple et vérifier que le pourcentage signé correspond à l’identité en forme fermée plutôt qu’à une trajectoire simulée. Les sandboxes d’accueil de portefeuilles montrent l’IL du premier dépôt sans déployer un simulateur AMM complet.
Cet outil ne récupère pas de prix d’oracle en direct, ne modélise pas les fourchettes de liquidité concentrée, les pondérations de style Balancer ni la compensation des frais : uniquement l’écart 50/50 à produit constant en forme fermée entre la position LP et la conservation après un changement de ratio de prix.
Cas d’usage
Widgets de cours et de contenus
Intégrez le calculateur gratuit du navigateur sur des pages éducatives afin que les apprenants vérifient les cas classiques de manuel au double (−5.72%) et au quadruple (−20%).
Questions fréquentes
Que change le champ facultatif deposit ?
Si vous omettez deposit, ces clés sont omises (pas null).
Cela inclut-il les frais d’échange ou les fourchettes Uniswap v3 ?
Non. Le calculateur n’est que l’identité de manuel 50/50 xy=k. Il n’ajoute ni frais d’échange, ni ticks de liquidité concentrée, ni pondérations déséquilibrées du pool.
Pourquoi parle-t-on de perte impermanente ?
Parce qu'elle disparaît si le rapport de prix revient au niveau du dépôt avant que vous ne retiriez vos fonds. Elle ne devient une perte réalisée qu'au moment où vous quittez le pool au nouveau rapport.
Puis-je voir la perte en montant plutôt qu'en pourcentage ?
Oui. Ajoutez votre dépôt initial et le résultat indique aussi la valeur de la position dans le pool, celle de la simple détention et l'écart entre les deux, dans la même unité que le dépôt.
La perte impermanente peut-elle être positive ?
Non. Le résultat est toujours nul ou négatif : nul quand le prix n'a pas bougé, et d'autant plus négatif que le rapport de prix s'éloigne du niveau auquel vous avez déposé.
Quels prix faut-il saisir ?
Le prix d'un jeton du pool exprimé dans l'autre, d'abord au moment du dépôt, puis au moment que vous voulez vérifier. Passer de 100 à 200 correspond à un rapport de 2 ; les deux prix doivent être supérieurs à zéro.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/finance/crypto-impermanent-loss \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"initial_price":100,"final_price":200}'const res = await fetch("https://api.kit.forhosting.com/finance/crypto-impermanent-loss", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"initial_price": 100,
"final_price": 200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/crypto-impermanent-loss",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"initial_price": 100,
"final_price": 200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/crypto-impermanent-loss", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"initial_price":100,"final_price":200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"initial_price":100,"final_price":200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/crypto-impermanent-loss", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"initial_price": 100,
"final_price": 200
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.crypto_impermanent_loss",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ce calculateur de perte impermanente accepte initial_price et final_price d’un actif du pool coté dans l’autre, éventuellement un deposit, et renvoie le ratio de prix, la fraction et le pourcentage signés de la perte impermanente, les facteurs de valeur LP et de conservation et —lorsqu’un deposit est fourni— la valeur LP, la valeur conservée et le montant de perte en unités de cotation.
Ce qu’est la perte impermanente et comment fonctionne la formule 50/50
Lorsque le prix externe de l’actif A coté dans l’actif B passe de initial_price à final_price, l’arbitrage rééquilibre les réserves pour que leur produit reste constant et que leur ratio de valeur suive le nouveau prix. Après ce mouvement, la position LP vaut le deposit d’origine multiplié par la racine carrée de k, où k est final_price divisé par initial_price. Frais d’échange, liquidité concentrée, pondérations déséquilibrées et pools multi-actifs sont hors périmètre : ce endpoint répond à la question d’IL 50/50 à produit constant en forme fermée à partir d’un seul changement de ratio de prix entre les deux actifs du pool.
Contrat d’entrée, arrondi et comportement d’erreur
Les deux doivent être strictement positifs. Envoyez éventuellement decimals comme un entier de zéro à huit contrôlant l’arrondi half-up de chaque champ numérique (six par défaut). L’arrondi half-up s’applique une fois à chaque champ de sortie depuis le calcul flottant, pour des goldens stables entre runtimes. Envoyez en POST un objet JSON avec deux nombres finis obligatoires : initial_price, la cotation d’un actif du pool dans l’autre au dépôt, et final_price, la même cotation au moment ultérieur. Envoyez éventuellement deposit comme un montant fini positif dans n’importe quelle unité de cotation pour que la réponse convertisse les facteurs en lp_value, hold_value et impermanent_loss_value ; omettez deposit et ces trois clés sont omises plutôt que renvoyées à null. Les chaînes numériques qui se parsent en valeurs finies sont acceptées comme les nombres JSON. Les alias start_price et p0 correspondent à initial_price ; end_price et p1 à final_price ; amount et principal à deposit. Champs manquants, valeurs non finies, prix ou deposit non positifs et decimals hors plage échouent avec invalid_input et ne sont pas facturés. En cas de succès le corps renvoie les prix arrondis, price_ratio k, price_change_percent, lp_value_factor (racine carrée de k), hold_value_factor ((1+k)/2), impermanent_loss_fraction et impermanent_loss_percent signés, et une courte chaîne formula que vous pouvez afficher à côté des chiffres. Associez cette API à votre propre module de frais ou de fourchette si vous avez besoin de la performance nette du LP ; le calculateur n’ajoute ni frais d’échange ni ticks Uniswap v3.
Où un calculateur de perte impermanente justifie sa place
Les scripts de portefeuille et d’analytique marquent un livre LP à un nouveau ratio et ont besoin d’un endpoint parse déterministe plutôt que d’un collage dans un tableur. Comme l’implémentation est parse pur de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant, et une validation échouée ne consomme pas le solde. Faites varier final_price dans une boucle de votre code pour des tableaux de scénarios ; figez impermanent_loss_percent et, lorsque vous envoyez deposit, impermanent_loss_value dans les tests ; gardez les requêtes légères. Le chemin gratuit du navigateur utilise le même module pur que l’API, ainsi démonstrations et production ne divergent pas.
Cas d'intégration
Scénario avant dépôt pour les fournisseurs
Avant d’ajouter de la liquidité, saisissez l’initial_price du jour et un final_price de stress pour voir le pourcentage d’IL signé et, avec deposit, l’écart en unités de cotation face à la conservation.
Marquage d’un livre LP au nouveau ratio
Marquez en lot les entrées du pool à un nouveau ratio de prix dans des scripts d’exploitation, sans tableur, en figeant impermanent_loss_percent dans les tests.
Questions techniques
Comment calcule-t-on la perte impermanente à partir d’un changement de prix ?
Envoyez initial_price et final_price (tous deux obligatoires et strictement positifs). L’API pose k = final_price / initial_price et renvoie IL = 2*sqrt(k)/(1+k) − 1 comme fraction et pourcentage signés pour un pool 50/50 à produit constant.
Pourquoi impermanent_loss_percent est-il nul ou négatif ?
L’IL en forme fermée face à la conservation n’est jamais positive. Elle vaut zéro lorsque k = 1 (prix inchangé) et elle est négative lorsque le ratio monte ou descend. Un mouvement au double vaut environ −5.72% ; un mouvement au quadruple vaut exactement −20%.
Combien coûte le calculateur de perte impermanente ?
L’outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.