Calcolatore di perdita impermanente
Se il prezzo di un token raddoppia rispetto all'altro, una posizione in un pool 50/50 finisce circa il 5,72% dietro al semplice possesso; se quadruplica, il 20%. Inserisca il prezzo iniziale e quello successivo per vedere la sua perdita impermanente. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Prezzo iniziale
- 100
- Prezzo finale
- 200
- Rapporto tra i prezzi
- 2
- Variazione di prezzo (%)
- 100
- Fattore di valore LP
- 1,414214
- Fattore di valore di mantenimento
- 1,5
I fornitori di liquidità sui market maker automatici a prodotto costante incassano commissioni di swap, ma assumono anche un rischio di inventario nascosto chiamato perdita impermanente: il divario tra il valore dei token rimasti nel pool e il valore dello stesso inventario iniziale tenuto fuori dal pool dopo che il rapporto di prezzo dei due asset si è mosso. Trader, docenti e dashboard DeFi hanno bisogno di quel divario come numero in forma chiusa, non come un percorso Monte Carlo.
Che cos’è la perdita impermanente e come funziona la formula 50/50
La perdita impermanente è il costo opportunità di fornire liquidità a un pool a due asset a prodotto costante —il classico market maker automatico xy = k usato dalle sedi in stile Uniswap v2— rispetto al semplice detenere la stessa suddivisione iniziale dei due token. Al deposito il pool prende valore uguale di ciascun asset. Lo stesso inventario iniziale tenuto fuori dal pool vale il deposit moltiplicato per uno più k, diviso per due.
Dividere quei due valori e sottrarre uno produce l’identità da manuale: IL è uguale a due volte la radice quadrata di k, diviso per uno più k, meno uno. Il risultato è sempre minore o uguale a zero. Un cambiamento di prezzo al doppio produce circa meno 5.72 per cento, un cambiamento al quadruplo produce esattamente meno 20 per cento, e un prezzo invariato (k uguale a uno) produce zero.
Si chiama impermanente perché scompare se il rapporto di prezzo torna al livello di ingresso prima che Lei prelevi; diventa realizzata nell’istante in cui esce al nuovo rapporto.
Domande frequenti
Che cosa cambia il campo facoltativo deposit?
Se omette deposit, quelle chiavi vengono omesse (non null).
Include commissioni di swap o range di Uniswap v3?
No. Il calcolatore è solo l’identità da manuale 50/50 xy=k. Non aggiunge commissioni di swap, tick di liquidità concentrata né pesi sbilanciati del pool.
Perché si chiama perdita impermanente?
Perché scompare se il rapporto di prezzo torna al livello del deposito prima che lei ritiri. Diventa una perdita realizzata solo nel momento in cui esce dal pool al nuovo rapporto.
Posso vedere la perdita come importo invece che in percentuale?
Sì. Aggiunga il deposito iniziale e il risultato mostra anche quanto vale la posizione nel pool, quanto varrebbe tenere i token e la differenza, tutto nella stessa unità del deposito.
La perdita impermanente può essere positiva?
No. Il risultato è sempre zero o negativo: zero quando il prezzo non si è mosso, e una perdita maggiore quanto più il rapporto di prezzo si allontana dal livello del deposito.
Quali prezzi devo inserire?
Il prezzo di un token del pool espresso nell'altro, prima al momento del deposito e poi nel momento che vuole controllare. Passare da 100 a 200 è un rapporto di 2; entrambi i prezzi devono essere maggiori di zero.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"initial_price": 100,
"final_price": 200
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.crypto_impermanent_loss",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Questo calcolatore di perdita impermanente accetta initial_price e final_price di un asset del pool quotato nell’altro, in opzione un deposit, e restituisce il rapporto di prezzo, la frazione e la percentuale con segno della perdita impermanente, i fattori di valore LP e di detenzione e —quando è indicato un deposit— il valore LP, quello di detenzione e l’importo della perdita in unità di quotazione.
Che cos’è la perdita impermanente e come funziona la formula 50/50
Quando il prezzo esterno dell’asset A quotato nell’asset B passa da initial_price a final_price, l’arbitraggio ribilancia le riserve così che il prodotto resti costante e il rapporto di valore segua il nuovo prezzo. Dopo quel movimento la posizione LP vale il deposit originale moltiplicato per la radice quadrata di k, dove k è final_price diviso per initial_price. Commissioni di swap, liquidità concentrata, pesi sbilanciati e pool multi-asset restano fuori ambito: questo endpoint risponde alla domanda di IL 50/50 a prodotto costante in forma chiusa a partire da un solo cambio di rapporto di prezzo tra i due asset del pool.
Contratto di input, arrotondamento e comportamento degli errori
Entrambi devono essere maggiori di zero. In opzione invii decimals come intero da zero a otto che controlla l’arrotondamento half-up di ogni campo numerico (predefinito sei). Invii in POST un oggetto JSON con due numeri finiti obbligatori: initial_price, la quotazione di un asset del pool nell’altro al deposito, e final_price, la stessa quotazione al momento successivo. In opzione invii deposit come un importo finito positivo in qualsiasi unità di quotazione perché la risposta scali i fattori in lp_value, hold_value e impermanent_loss_value; ometta deposit e quelle tre chiavi vengono omesse anziché restituite come null. Le stringhe numeriche che si interpretano come valori finiti sono accettate come i numeri JSON. Gli alias start_price e p0 corrispondono a initial_price; end_price e p1 a final_price; amount e principal a deposit. Campi mancanti, valori non finiti, prezzi o deposit non positivi e decimals fuori intervallo falliscono con invalid_input e non vengono fatturati. In caso di successo il corpo ripete i prezzi arrotondati, price_ratio k, price_change_percent, lp_value_factor (radice quadrata di k), hold_value_factor ((1+k)/2), impermanent_loss_fraction e impermanent_loss_percent con segno, e una breve stringa formula che Lei può mostrare accanto ai numeri. Abbini questa API al Suo modulo di commissioni o di range se le serve la performance netta del LP; il calcolatore non aggiunge commissioni di swap né tick di Uniswap v3.
Dove un calcolatore di perdita impermanente crea valore
Le pagine formative DeFi e i blog di finanza personale si posizionano su calcolatore di perdita impermanente quando offrono uno strumento live allineato all’articolo. Le piattaforme di coaching lasciano agli studenti inserire un movimento di prezzo da manuale al doppio o al quadruplo e verificare che la percentuale con segno coincida con l’identità in forma chiusa invece che con un percorso simulato. I sandbox di onboarding dei portafogli mostrano l’IL del primo deposito senza montare un simulatore AMM completo. Gli script di portafoglio e di analitica marcano un libro LP a un nuovo rapporto e necessitano di un endpoint parse deterministico invece di un incolla su foglio. Poiché l’implementazione è parse puro di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita, e la validazione fallita non consuma saldo. Vari final_price in un ciclo dal Suo codice per tabelle di scenari; fissi impermanent_loss_percent e, quando invia deposit, impermanent_loss_value nei test; mantenga le richieste piccole. Il percorso gratuito del browser usa lo stesso modulo puro dell’API, così demo e produzione non divergono. Questo strumento non recupera prezzi di oracolo in tempo reale, non modella range di liquidità concentrata, pesi in stile Balancer né compensazione delle commissioni: solo il divario 50/50 a prodotto costante in forma chiusa tra la posizione LP e la detenzione dopo un cambio di rapporto di prezzo.
Casi di integrazione
Scenario prima del deposito per i fornitori
Prima di aggiungere liquidità, inserisca l’initial_price odierno e un final_price di stress per vedere la percentuale di IL con segno e, con deposit, il divario in unità di quotazione rispetto alla detenzione.
Widget per aula e contenuti
Incorpori il calcolatore gratuito del browser nelle pagine educative così gli studenti verificano i casi classici da manuale al doppio (−5.72%) e al quadruplo (−20%).
Marcatura di un libro LP al nuovo rapporto
Marchi in batch le voci del pool a un nuovo rapporto di prezzo negli script operativi, senza foglio di calcolo, fissando impermanent_loss_percent nei test.
Domande tecniche
Come si calcola la perdita impermanente da un cambio di prezzo?
Invii initial_price e final_price (entrambi obbligatori e maggiori di zero). L’API imposta k = final_price / initial_price e restituisce IL = 2*sqrt(k)/(1+k) − 1 come frazione e percentuale con segno per un pool 50/50 a prodotto costante.
Perché impermanent_loss_percent è zero o negativo?
L’IL in forma chiusa rispetto alla detenzione non è mai positiva. È zero quando k = 1 (prezzo invariato) ed è negativa quando il rapporto sale o scende. Un movimento al doppio è circa −5.72%; uno al quadruplo è esattamente −20%.
Quanto costa il calcolatore di perdita impermanente?
Lo strumento del browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; un input non valido non viene fatturato.