← Terug naar artikelen
July 28, 2026
5 min leestijd

Uniswap v3-LP-strategieën en hedging

Uniswap v3-LP-strategieën en hedging
#uniswap
#defi
#market making
#delta hedging
#lvr
#jit liquidity
#quant
#ethereum

Een passieve Uniswap v3-positie is een reeks rustlimietorders die u niet kunt annuleren. Een actief boek – gekozen bereik, opnieuw gecentreerd op een schema, afgedekt tegen een dader – is een marktmakend boek, en het zou als één boek moeten worden beheerd. Dat herkaderen verandert elke beslissing. Een marktmaker beoordeelt citaten op basis van een volatiliteitsvoorspelling, niet op basis van een onderbuikgevoel. Een marktmaker beschouwt elke prijsopgave als een kostenpost en niet als een reflex. Een market maker kent te allen tijde zijn voorraaddelta en besluit doelbewust of hij deze meeneemt of afdekt. En een market maker weet dat sommige van zijn tegenpartijen sneller en beter geïnformeerd zijn, en dat prijzen daar ook in passen.

Het geconcentreerde-liquiditeitsartikel bouwde de primitieven: ticks, liquiditeit LL, de formules voor tokenbedragen, feeGrowthInside, en het feit dat een LP-positie een korte-volatiliteitsuitbetaling is waarvan de lopende kosten verlies-versus-herbalancering (LVR) zijn. Dit stuk is de gebruikershandleiding bovenop dat fundament. We schatten het bereik op basis van een variantievoorspelling, kaderen het besluit tot herbalancering als een expliciete transactie met verwachte winstwinst versus gerealiseerde kosten, leiden de positiedelta rechtstreeks af van de waardefunctie en neutraliseren deze met eeuwigdurende futures, bekijken just-in-time (JIT)-liquiditeit als het extreme geval van actieve LPing, en sluiten af ​​met de manieren waarop een eerlijke on-chain backtest van dit alles tegen u kan liegen. Het mentale model is altijd Avellaneda–Stoikov met twee brutale wijzigingen: uw offertes staan ​​in een grootboek voordat ze vol zijn, en elke requote kost benzine.

Bereikbreedte van een volatiliteitsvoorspelling

De meest consequente parameter van een actieve LP is de bereikbreedte, en het is een pure volatiliteitsweddenschap. Te breed en u verdunt uw liquiditeit over ticks die zelden worden verhandeld, waardoor u vergoedingen verdient tegen het bloedeloze tarief van een v2-pool. Te smal en je concentreert de diepte prachtig - tot het moment dat de prijs buiten je bereik komt, ga je 100% in op het verliezende actief, en verdien je niets totdat je weer in evenwicht bent (waardoor het divergentieverlies onderweg wordt gekristalliseerd). De optimale breedte is degene die de prijs binnen het bereik houdt, vaak genoeg zodat het geconcentreerde vergoedingstarief meer dan betaalt voor de LVR die de concentratie versterkt. Dat is een uitspraak over de verdeling van toekomstige rendementen, dus u beoordeelt deze op basis van een voorspelling van die verdeling.

Modellogprijs over een holdingshorizon TT als ongeveer ln(PT/P0)N(0,σ2T)\ln(P_T/P_0) \sim \mathcal{N}(0, \sigma^2 T), met σ\sigma de volatiliteit per periode. Een symmetrische kk-sigma-bereik in logprijs is

ln ⁣pbP0=kσT,ln ⁣paP0=kσT,\ln\!\frac{p_b}{P_0} = k\,\sigma\sqrt{T}, \qquad \ln\!\frac{p_a}{P_0} = -\,k\,\sigma\sqrt{T},

Dus pb=P0ekσTp_b = P_0\,e^{k\sigma\sqrt{T}} En pa=P0ekσTp_a = P_0\,e^{-k\sigma\sqrt{T}}. Kiezen kk is het kiezen van de waarschijnlijkheid om binnen bereik te blijven: k=1k=1 houdt de prijs binnen voor ongeveer 68% van de horizon, k=2k=2 voor ~95%. Breder kk handelsvergoedingen voor de tijd binnen het bereik, en de goede plek hangt af van het tariefniveau en het vol-regime – wat precies de hoeveelheid is die een marktmaker voorspelt in plaats van te raden.

De vertaling naar on-chain parameters is één regel, omdat ticks * log-prijs zijn. Sinds p(i)=1.0001ip(i) = 1.0001^i, de tick-index is i=lnP/ln1.0001i = \ln P / \ln 1.0001, En ln1.0001104\ln 1.0001 \approx 10^{-4}, dus de halve breedte in ticks is ongeveer kσT×104k\sigma\sqrt{T}\times 10^4. Ga naar de tick-afstand van het zwembad en je hebt je grenzen:

import numpy as np

TICK = np.log(1.0001)   # ≈ 1.0000e-4, one tick in log-price

def range_from_vol(price, sigma_per_day, horizon_days, k=1.0, spacing=10):
    """Symmetric k-sigma range -> tick bounds for a v3 position.
    `price` is the RAW pool price (token1/token0, base units)."""
    sig_h = sigma_per_day * np.sqrt(horizon_days)     # vol over the horizon
    i0 = round(np.log(price) / TICK)                  # current tick
    half = round(k * sig_h / TICK)                    # half-width in ticks
    lower =  ((i0 - half) // spacing) * spacing        # floor to spacing
    upper = -(-(i0 + half) // spacing) * spacing       # ceil  to spacing
    return lower, upper, np.exp(lower*TICK), np.exp(upper*TICK)

Een uitgewerkt nummer herstelt de intuïtie. Neem ETH met een voorspeld dagelijks volume van 4%, een hercentrerende horizon van één week (T=7T = 7 dagen), en k=1k = 1. Dan σT=0.047=0.1058\sigma\sqrt{T} = 0.04\sqrt{7} = 0.1058, dus het bereik omvat e±0.1058e^{\pm 0.1058}, d.w.z. ongeveer [0.90,1.11]×P0[0.90,\,1.11]\times P_0 – over een ±10.6%\pm 10.6\% bandje, of ±1058\pm 1058 tikken zijn op afstand gesprongen. De breedte is lineair in de volvoorspelling (tot de eerste bestelling in de logruimte), wat het hele punt is: uw liquiditeitsconcentratie zou moeten ademen met die van de markt, en niet op een statische "±10%", omdat dat vorige maand goed voelde. Varieer met de twee knoppen: het regime en het vertrouwen kk – en de band beweegt zoals de geciteerde spread van een marktmaker beweegt:

Voorspelling dagelijks σ\sigma Regie k=1k=1 halve breedte k=2k=2 halve breedte Ongeveer. tikken (k=1k=1)
2% kalm ±5,3% ±10,6% ±529
4% normaal ±10,6% ±21,2% ±1058
6% verhoogd ±15,9% ±31,8% ±1587
8% benadrukt ±21,2% ±42,3% ±2116

Lees de tabel als een citaatbeleid, niet als een opzoeking. Een strakkere band verdient een hogere vergoeding per dollar terwijl deze zich binnen het bereik bevindt (meer diepte per tick), maar verlaat het bereik eerder en wordt vaker opnieuw gecentreerd; een bredere band is het tegenovergestelde. De geconcentreerde liquiditeitsvermenigvuldiger is de hefboom – a ±5%\pm 5\% band noteert grofweg een orde van grootte meer diepte per tick dan een full-range v2-positie, en verdient vergoedingen voor dat veelvoud terwijl binnen bereik – maar het is ook datzelfde veelvoud dat meer is blootgesteld aan LVR. De bereikbreedte is waar u uw punt op de grens van het tarief versus de tijd binnen bereik kiest, en de volvoorspelling is wat u vertelt waar die grens zich vandaag bevindt.

Eén beperking begrenst het krappe einde: de tick-afstand. Uw grenzen moeten zich aanpassen aan de afstand van de tariefniveaus, dus het minimale bereik dat u kunt uitdrukken wordt bepaald door de pool die u hebt gekozen: ongeveer ±10 bp op het niveau van 0,05% (afstand 10), ±60 bp op het niveau van 0,30% (afstand 60), ±2% op het niveau van 1% (afstand 200). Dat koppelt twee beslissingen die onafhankelijk lijken: selectie van vergoedingen is selectie op basis van bereikresolutie. Een stabiel paar waarvan de volumevoorspelling een bandbreedte van ±0,3% wil, kan dit alleen realiseren op het niveau van 0,05%; Probeer het op de 1%-laag en het tick-raster dwingt je minstens acht keer te breed, waardoor de concentratie waarvoor je de hogere vergoeding betaalde, verwatert. Zorg ervoor dat de granulariteit van het niveau overeenkomt met de breedte waar uw prognose om vraagt, en niet andersom.

In kaart gebracht van een GARCH-volatiliteitsvoorspelling naar de tick bounds van Uniswap v3, waarbij het bereik groter wordt in regimes met een hoog volume en kleiner wordt in regimes met een rustig volume

Waar wel σ\sigma vandaan komen? Gerealiseerde volatiliteit over een trailing window is het ruwe antwoord en het is slecht terugkijkend: het vertelt u de bandbreedte die u vorige week had moeten instellen. Het juiste hulpmiddel is een conditioneel variantiemodel dat reageert op het huidige regime: een GARCH(1,1)-voorspelling geaggregeerd tot aan de horizon, zoals ontwikkeld in GARCH volatility forecasting for crypto. GARCH geeft je σ^t+12\hat\sigma^2_{t+1} en, door de recursie te herhalen, an hh-stap-vooruit variantie waarvan de wortel de is σT\sigma\sqrt{T} jij wilt. Het hefboomeffect van Crypto – vol springt meer bij neerwaartse bewegingen – pleit voor een asymmetrische variant, en dezelfde vol-targeting machine die een directionele positie aanpast met 1/σ^1/\hat\sigma verkleint een LP-bereik met σ^\hat\sigma: tegengestelde richting, identieke voorspelling. Voer die serie in range_from_vol bij elke hercentrering volgt de concentratie van de positie de voorspelling automatisch. Dat roept de vraag op waar dit artikel vervolgens op ingaat: hoe vaak moet je opnieuw centreren?

Herbalancering: de transactie met vergoedingen versus gerealiseerde kosten

Overmatig opnieuw in evenwicht brengen is de grootste vernietiger van retourzendingen van LP's in de detailhandel, en het is een subtiele moordenaar omdat elk individueel re-center zich verantwoordelijk voelt. De prijs dreef naar de rand van uw bereik, dus u heeft zich opnieuw gecentreerd om 'actief te blijven'. Maar een v3-re-center is niet gratis requoting op een CEX. Het zijn drie gestapelde kosten:

  1. Gas — verbrand de oude positie, munt de nieuwe en (meestal) een ruil om de voorraad opnieuw in evenwicht te brengen. Op Mainnet zijn dat niet-triviale vaste kosten per cyclus, brutaal voor kleine posities.
  2. Swapkosten — om opnieuw te centreren moet u uw scheve voorraad terugverhandelen naar de verhouding van het nieuwe bereik, waarbij u de swapkosten en de prijsimpact op die transactie betaalt.
  3. Gekristalliseerde LVR — dit is de onzichtbare. Terwijl de prijs afdwaalde, accumuleerde de positie op papier divergentieverlies. Als je een prijsstijging doorloopt, zou je er veel van terugkrijgen (je behoudt de kosten, geeft de voorraadschommeling terug). Door opnieuw te centreren realiseert u dat verlies: u verkoopt het bezit waar u nu zwaar in zit, tegen de lage prijs, en reset het. Elke recenter zet papieren LVR om in geboekte LVR.

De beslissing om het evenwicht te herbalanceren is dus niet: "Ben ik dichtbij de rand?" maar de rekensom van een marktmaker: is de verwachte toekomstige stijging van de vergoedingen vanuit een beter gecentreerde positie groter dan de gerealiseerde kosten om daar te komen? Dit is structureel het probleem van de controle van de transactiekosten – het optimale beleid is een geen-herbalanceringsband rond het centrum, geen struikeldraad. Binnen de band laat je de voorraad drijven en blijf je vergoedingen innen; u komt pas in actie als het verwachte voordeel de kosten opweegt.

(rfeecenteredrfeenow)VE[τ]expected fee uplift over next holding period τ    >    ggas+cswap+ΔLVRrealizedcost of re-centering now\underbrace{\big(r_{\text{fee}}^{\text{centered}} - r_{\text{fee}}^{\text{now}}\big)\cdot V \cdot \mathbb{E}[\tau]}_{\text{expected fee uplift over next holding period } \tau} \;\;>\;\; \underbrace{g_{\text{gas}} + c_{\text{swap}} + \Delta\text{LVR}_{\text{realized}}}_{\text{cost of re-centering now}}

def should_rebalance(pos, price, fee_apr, sigma, gas_usd, swap_bps):
    """Rebalance only if expected fee uplift beats the realized recenter cost."""
    V = pos.value(price)
    recenter_cost = (gas_usd
                     + swap_bps * 1e-4 * pos.inventory_to_swap(price)  # fee+impact
                     + pos.crystallized_lvr(price))                    # the hidden one
    tau = pos.expected_time_in_range(price, sigma)   # horizon until next recenter
    fee_uplift = (pos.fee_rate_centered(price) - pos.fee_rate_now(price)) \
                 * fee_apr * V * tau
    return fee_uplift > recenter_cost

Een herbalanceringsbeslissing met cijfers

Maak het concreet. Stel dat u een positie van 50.000heeftineenETH/USDCpoolvan0,0550.000 heeft in een ETH/USDC-pool van 0,05%, dan is de prijs naar de rand van uw bereik gedaald en zou opnieuw centreren uw effectieve vergoedingen uit een bloedarmoede tillen. r^{\text{now}} = 8%APR(jebentnauwelijksbinnenbereik)terugnaarAPR (je bent nauwelijks binnen bereik) terug naarr^{\text{centered}} = 30%april.UwGARCHvoorspellingzegtdateenversgecentreerdbereikvandezebreedteongeveergeldtapril. Uw GARCH-voorspelling zegt dat een vers gecentreerd bereik van deze breedte ongeveer geldt\mathbb{E}[\tau] \approx 5dagendagen= 0.0137$ jaren voordat je weer zou recenteren. De bruto stijging is

(0.300.08)×$50,000×0.0137    $150.(0.30 - 0.08)\times \char36 50{,}000 \times 0.0137 \;\approx\; \char36 150.

Daartegenover staan ​​de kosten van het hercentreren: $25 aan gas (mint + burn + swap), een ruil van de scheve inventaris - zeg 20.000 kruist bij 5 bp aan vergoeding plus impact voor \10 - en de gekristalliseerde LVR van de verkoop in de verhuizing, nog eens $60. Totale gerealiseerde kosten $95\approx \char36 95. Sinds $150>$95\char36 150 > \char36 95, je recenter - maar let op hoe dichtbij het is, en hoe een gaspiek van $ 5 of een kortere verwachte hold het teken omdraait. Verklein nu de positie naar €5.000 met dezelfde percentages: de stijging daalt naar €15, terwijl de gasprijs €25 blijft, en de handel is nooit de moeite waard. De term voor tariefverhoging schaalt met de notionele waarde; de gasterm niet. Die enkele asymmetrie is de reden waarom kleine mainnet-LP's ofwel een breed, zelden aangeraakt bereik moeten hebben, ofwel buiten moeten blijven.

Drempel versus periodiek

Twee regimes vallen buiten deze ongelijkheid, en zij zijn het eerlijke antwoord op de vraag ‘op drempels gebaseerd versus periodiek’. Herbalancering van de drempel (band) – handelen wanneer de prijs een tolerantieband verlaat – is de theoretisch correcte vorm, omdat het afhankelijk is van de staat die er werkelijk toe doet. Periodieke herbalancering — elke keer recenter NN blokken of uren ongeacht – is een ruwe benadering die alleen verdedigbaar is omdat deze eenvoudiger uit te voeren is en gemakkelijker te redeneren; de pathologie ervan is het hercentreren tijdens een karbonade die gratis zou zijn teruggekeerd, benzine betalen en LVR kristalliseren voor een retour die je zou hebben gewonnen door niets te doen. Empirisch gezien geldt dat hoe breder uw tariefniveau en hoe hoger het gas, hoe breder uw band zou moeten zijn en hoe zeldzamer uw herbalanceringen - een dagelijks opnieuw gecentreerde pool van 1% zet bijna altijd geld in vuur en vlam. Het ongemakkelijke gevolg hiervan: voor veel kleine posities op het mainnet geldt dat de term 'fee-uplift' nooit de term 'gas' opheft, en het juiste aantal herbalanceringen is nul - stel één keer een breed bereik in en laat het staan, of LP helemaal niet.

Dit is ook de reden waarom de locatie net zo belangrijk is als de strategie. De hele ongelijkheid wordt gedomineerd door de gasterm op het Ethereum-mainnet, waar een herbalanceringscyclus echt geld kost; op een L2 (Arbitrum, Base, Optimism) kost dezelfde cyclus centen, dus ggasg_{\text{gas}} stort in, de band die het opruimt wordt smaller, en actieve LP's met een beperkt bereik en veelvuldig opnieuw centreren worden haalbaar voor precies de kleine posities die zich dat nooit zouden kunnen veroorloven op L1. Dat is geen voetnoot – het is de reden waarom serieuze actieve LP-strategieën grotendeels zijn gemigreerd naar L2-strategieën, en waarom ‘hoe vaak opnieuw in evenwicht brengen’ op elke keten een ander antwoord heeft. De LVR- en swapkostenvoorwaarden krimpen echter niet bij gas, dus goedkoop gas verlaagt de drempel voor overmatig evenwichtsherstel evenzeer als voor verstandig herstel; de discipline van de ongelijkheid doet er meer toe waar het gas ophoudt het voor jou af te dwingen.

Er is een derde optie die hercentreren volledig vermijdt: het eenzijdige bereik. In plaats van een symmetrische band die u verschuift om de koers te volgen, plaatst u een asymmetrische bandbreedte die een visie weergeeft: de liquiditeit ligt alleen onder de spot als u het actief op de weg naar beneden wilt accumuleren, en alleen daarboven als u het op de weg naar boven wilt verdelen. Dit is het gebruiksscenario voor limietorders op de keten, en het verandert een "herbalancering" in een "aanvulling": wanneer een eenzijdig bereik volledig wordt gevuld (de prijs overschrijdt dit), hebt u uw beoogde koop of verkoop uitgevoerd tegen een hogere gemiddelde prijs, en de beslissing is of u zich opnieuw moet bewapenen, niet of u moet achtervolgen. Voor accumulatie- en distributiemandaten domineert het de symmetrische hercentrering, omdat de voorraadschommeling die u met een hedge zou bestrijden de positie is die u eigenlijk wilde.

Een band zonder herbalancering rond het positiecentrum, die op drempels gebaseerde recentering contrasteert met periodieke rebalancering en waarbij gas plus gekristalliseerde LVR wordt weergegeven als de kosten die moeten worden verrekend

Het verband met LVR is de moeite waard om scherp te vermelden, omdat het deze hele reeks met elkaar verbindt: de som van uw gerealiseerde re-centerverliezen gedurende de levensduur van een positie, correct gebenchmarkt, convergeert naar de LVR die de IL/LVR-analyse voorspelt op basis van de gerealiseerde variantie van het prijspad. Herbalancering vermijdt LVR niet; het kiest wanneer het wordt betaald en in welke valuta. Herbalanceer te vaak en je betaalt ook gas- en swapkosten bovenop de LVR die je toch al zou betalen. Dat is de reden waarom overmatig evenwicht de faalwijzen domineert: het is LVR plus een zelfopgelegde belasting.

Delta-hedging van de LP met eeuwigdurende futures

Als de bereikbreedte uw vol-inzet is en de herbalanceringsband uw voorraadbeleid is, is de delta-hedge de manier waarop u de twee scheidt, zodat u een marktmakend boek hanteert (kort vol, verzamel de spread) en niet een directioneel boek (per ongeluk long of short ETH). Om je te hedgen heb je de delta van de positie nodig, en het mooie van v3 is dat deze rechtstreeks uit de waardefunctie komt, zonder numerieke gegevens.

De waarde van een positie binnen het bereik, in eenheden van token1 (de numeraire, bijvoorbeeld USDC), is de uitdrukking die is afgeleid in het stuk met geconcentreerde liquiditeit:

V(P)=L(2PpaPpb).V(P) = L\left(2\sqrt{P} - \sqrt{p_a} - \frac{P}{\sqrt{p_b}}\right).

Onderscheid op prijs PP van de risicovolle activa (token0, bijvoorbeeld ETH):

Δ  =  VP  =  L(1P1pb)  =  x(P).\Delta \;=\; \frac{\partial V}{\partial P} \;=\; L\left(\frac{1}{\sqrt{P}} - \frac{1}{\sqrt{p_b}}\right) \;=\; x(P).

De positiedelta is gelijk aan de hoeveelheid token0 die de positie momenteel bevat. Dit is geen toeval en het is de moeite waard om even stil te staan ​​bij: V=xP+yV = x\cdot P + y, Dus VP=x+PxP+yP\tfrac{\partial V}{\partial P} = x + P\tfrac{\partial x}{\partial P} + \tfrac{\partial y}{\partial P}, en de AMM-invariant maakt de marginale on-curve handelswaarde neutraal tegen de huidige prijs, d.w.z. Px+y=0P\,\partial x + \partial y = 0. De twee volgende termen vervallen en de delta is slechts de ETH-inventaris. Een LP is long de risicovolle asset met precies de hoeveelheid ervan die zich momenteel in de positie bevindt – een getal dat krimpt naarmate de prijs stijgt (de positie verkoopt ETH in kracht) en groeit naarmate de prijs daalt (het koopt de dip). Houd een korte dader van grootte vast om te neutraliseren x(P)x(P) in ETH-termen.

def lp_delta(L, price, pb):
    """dV/dP for an in-range v3 position == token0 (ETH) currently held."""
    sp, spb = price**0.5, pb**0.5
    return L * (1.0/sp - 1.0/spb)      # short this many ETH on a perp to neutralize

def lp_gamma(L, price):
    return -L / (2.0 * price**1.5)     # < 0: short gamma -> hedge must be re-shorted

De delta over het hele bereik, in cijfers

Hergebruik de exacte positie uit het geconcentreerde-liquiditeitsvoorbeeld: L=738.37L = 738.37 op het bereik [2500,3500][2500, 3500], geslagen bij P=3000P = 3000. De delta x(P)=L(1/P1/pb)x(P) = L(1/\sqrt{P} - 1/\sqrt{p_b}) is de short die je moet dragen, en deze loopt monotoon van een volle ETH-tas onderaan naar plat bovenaan:

PP (USDC/ETH) Positie ETH =Δ= \Delta Perp-haag
2500 (ondergrens) 2.287 kort 2.287 ETH
2750 1.599 kort 1.599 ETH
3000 (hier geslagen) 1.000 kort 1.000 ETH
3250 0,471 kort 0,471 ETH
3500 (bovengrens) 0.000 geen afdekking

De hedge is niet "kort 1 ETH en vergeet het maar." Terwijl de prijs stijgt van 3000 naar 3250, verkoopt de positie de helft van zijn ETH in kracht en daalt uw vereiste short van 1,0 naar 0,47 – dus moet u 0,53 ETH aan hedge terugkopen tegen de hogere prijs. Bij een uitverkoop naar 2750 koopt de positie ETH en uw short moet groeien naar 1,60, verkocht tegen de lagere prijs. Buy-high, sell-low op de hedge, elke keer weer: dat is een negatieve gamma die de cashflow reëel maakt, en de lopende kosten zijn de LVR-regel in het onderstaande grootboek.

De gamma is negatief - 2V/P2=L/(2P3/2)<0\partial^2 V/\partial P^2 = -L/(2P^{3/2}) < 0 – wat de short-straddle-uitbetaling is, gezien vanaf de risicokant. Negatief gamma betekent dat de afdekking nooit statisch is: naarmate de prijs stijgt, daalt de delta van de positie (er zit minder ETH in), dus een short die je hebt gedimensioneerd op de prijs van gisteren is nu te groot en je moet wat terugkopen; naarmate de prijs daalt, stijgt de delta en moet u meer short gaan. U handelt altijd in de verliezende richting om neutraal te blijven, en de cumulatieve kosten van dat voortdurende herhedging zijn precies LVR. Die kosten hebben een gesloten vorm voor een v3-positie, wat de moeite waard is om af te leiden, omdat hierdoor de hedge wordt omgezet in een getal dat u kunt voorspellen. De IL/LVR-analyse geeft het momentane LVR-tarief onder een GBM-prijs van volatiliteit σ\sigma als =12σ2P2x(P)\ell = \tfrac{1}{2}\sigma^2 P^2\,|x'(P)|, en we hebben het net berekend x(P)=L/(2P3/2)|x'(P)| = L/(2P^{3/2}) — de omvang van het gamma van de positie. Vervanging:

(P)  =  σ2P22L2P3/2  =  σ2LP4.\ell(P) \;=\; \frac{\sigma^2 P^2}{2}\cdot\frac{L}{2P^{3/2}} \;=\; \frac{\sigma^2 L \sqrt{P}}{4}.

Dat is de dollar per tijdseenheid die de delta-hedge vastlegt – evenredig aan LL (concentratie is zowel een vermenigvuldiger op de afloop als op de kosten) en op het kwadraat van de volvoorspelling die uw bereik heeft bepaald. Het levert u ook direct de break-even-test op: de positie is +EV vóór financiering en gas, alleen als de vergoedingsinkomsten dit goedkeuren.

ϕνin-rangefee rate  >  σ2LP4,\underbrace{\phi \cdot \nu_{\text{in-range}}}_{\text{fee rate}} \;>\; \frac{\sigma^2 L \sqrt{P}}{4},

waar ϕ\phi is het tariefniveau en νin-range\nu_{\text{in-range}} is het swapvolume dat per tijdseenheid door uw bereik stroomt. Beide zijden schalen met LL, dus de concentratie verdwijnt in de ratio – wat de diepe reden is dat de bereikbreedte alleen een verliezende pool nooit winstgevend maakt. Wat LVR opruimt is het vergoedingengenererende volume in verhouding tot de volatiliteit, d.w.z. een pool waar handelaars sneller churnen dan arbitrageurs u uitkiezen. Een perfect delta-hedge LP is niet risicovrij; het heeft het prijsrisico ingewisseld voor de zekerheid van betaling \ell – en de P&L wordt teruggebracht tot een schoon grootboek:

P&Lhedged  =  feespremium    LVRre-hedge cost    fundinghedge carry    gasoperations.\text{P\&L}_{\text{hedged}} \;=\; \underbrace{\text{fees}}_{\text{premium}} \;-\; \underbrace{\text{LVR}}_{\text{re-hedge cost}} \;-\; \underbrace{\text{funding}}_{\text{hedge carry}} \;-\; \underbrace{\text{gas}}_{\text{operations}}.

Die financieringstermijn is de huur die u betaalt om de haag in stand te houden, en deze verdient respect. De prijs van een eeuwigdurende future wordt aan de spot gekoppeld door periodieke financieringsbetalingen; een shortpositie betaalt financiering wanneer de rente negatief is en ontvangt deze wanneer deze positief is. Zoals besproken in hoe financieringstarieven uw hefboomwerking doden, is crypto-perp-financiering gemiddeld positief – longs pay shorts in het typische contango-regime – wat betekent dat de delta-hedging short LP vaak betaald wordt om de hedge te dragen, een echte rugwind die de hele handel positief kan maken. Maar het is regime-afhankelijk en ‘mean-reverting’; bij een aanhoudende uitverkoop wordt de financiering negatief en begint uw afdekking u bovendien geld te kosten. Stem de afdekking af op uw gerealiseerde delta, markeer de financiering als een reëel regelitem en ga er nooit vanuit dat de historische positieve financieringswind in de rug een constante is.

Het grootboek, in cijfers

Zet het hele boek op één pagina voor de 6,523.69positionfromtheworkedexample(6,523.69 position from the worked example (L=738,37,range, range [2500,3500],, P=3000),helddeltahedgedforoneweekata4), held delta-hedged for one week at a 4%-daily vol forecast. Using \ell = \sigma^2 L\sqrt{P}/4withthedailywith the daily\sigma$, de LVR-bloeding is

day=0.042×738.37×30004$16.18,week$113.\ell_{\text{day}} = \frac{0.04^2 \times 738.37 \times \sqrt{3000}}{4} \approx \char36 16.18, \qquad \ell_{\text{week}} \approx \char36 113.

Dat is 1,74% van de positie in één week – en tegen een full-range v2-positie zou hetzelfde kapitaal alleen maar bloeden σ2/80.14%\sigma^2/8 \approx 0.14\%, A 12.4×12.4\times verhouding die precies de concentratievermenigvuldiger van dit bereik is. Concentratie is een hefboom op beide bladen: 12,4× het tarief binnen bereik, 12,4× de LVR. Om \char36 113/week te clearen heeft de positie een vergoedingsrendement nodig in de orde van 90% APR – ontnuchterend, en de eerlijke reden waarom krappe ranges in hoge volumes zo vaak verliezen. Financiering is hier intussen een afrondingsfout: het afdekken van ruwweg 1 ETH aan nominale waarde tegen een typisch tarief van +0,01%/8 uur verdient ongeveer \char36 6 gedurende de week (de shortposities worden verzameld in regimes met positieve financiering), een milde rugwind die de transactie niet maakt of breekt. En bij elke herbalancering zou er nog eens extra gas bijkomen. De les die het grootboek in één oogopslag leert: vergoedingen zijn het enige regelitem dat u kan redden, LVR is degene die u zal laten zinken, en financiering en gas zijn de details — bepaal het bereik zodat de eerste de tweede verslaat, of zet de transactie niet op gang.

De delta van de v3-positie binnen het bereik als een functie van de prijs, gelijk aan de token0-inventaris, met een korte eeuwigdurende futures-hedge die deze neutraliseert en de financiering wordt weergegeven als de boekwaarde

Twee praktische opmerkingen. Ten eerste is de granulariteit van de hedge zijn eigen kostenafweging: het opnieuw hedgen van elke tick minimaliseert de tracking error, maar maximaliseert de transactiekosten en het financieringsverloop, dus de meeste bureaus hedgen opnieuw op een deltaband, dezelfde logica van geen handelsregio als de LP-herbalancering. Ten tweede neutraliseert de hedge alleen delta binnen bereik; zodra de prijs verdwijnt, wordt de positie 100% één actief met een vlakke of volledig lineaire delta, en een hedge die is gedimensioneerd voor het binnen-bereikregime is nu verkeerd – nog een reden waarom de bandbreedte en het herbalanceringsbeleid niet onafhankelijk van de hedge kunnen worden ontworpen.

Waar de haag plaatsen

Het hedge-instrument is een live beslissing, geen detail. Een gecentraliseerde valuta-perp (Binance, Bybit) geeft de grootste liquiditeit en krapste spreads, maar introduceert opnieuw bewaar- en overbruggingsrisico's: uw LP is on-chain, uw hedge niet, en de twee benen kunnen uit elkaar vallen in een snelle markt of bij een opnamestop. Een dader op de keten (Hyperliquid, GMX, dYdX) houdt alles in één nederzettingsdomein en kan worden samengesteld met de LP-positie, ten koste van dunnere boeken en zijn eigen orakel en financieringseigenaardigheden. Hoe dan ook, u draagt ​​basisrisico: de dader volgt een index die niet identiek is aan de prijs van uw pool, dus een perfect delta-neutraal boek heeft nog steeds een klein residu dat groter wordt precies wanneer u het zich het minst kunt veroorloven. En een korte gamma is een gevaar voor liquidatie; een hedge die op weg naar beneden moet groeien heeft dezelfde richting als een margin call, dus bepaal het onderpand van de dader voor het gestresste volume uit het eerste deel, niet voor het kalme deel, anders liquideert een gap-beweging de hedge en laat de LP op het slechtste moment naakt achter.

JIT-liquiditeit: de one-block market maker

Duw actieve LPing tot het logische uiterste – herbalanceer elk blok, houd de positie vast voor de duur van een enkele swap – en je krijgt just-in-time liquiditeit, de scherpste strategie op het gebied van LP-ontwerp. Een JIT-aanbieder houdt de mempool in de gaten voor een grote inkomende swap, en in hetzelfde blok: bouwt een extreem krappe, extreem diepe liquiditeitspositie op die de huidige prijs omvat onmiddellijk vóór de slachtofferruil, laat de swap uitvoeren tegen die muur van liquiditeit (waarbij hij het leeuwendeel van zijn vergoeding vastlegt, aangezien het JIT LL verkleint het passieve LL al in de teek), brandt vervolgens de positie onmiddellijk daarna — alles binnen één blok.

De economie is opvallend. Omdat mint en burn zich over één enkele swap uitstrekken en er in wezen geen prijsontwikkeling tussen hen bestaat, verdient de positie de volledige vergoeding op een enorme notionele waarde, terwijl er vrijwel geen vergankelijk verlies is – er was geen tijd om de prijs te laten uiteenlopen. De rentevermenigvuldiger van geconcentreerde liquiditeit, tot het uiterste doorgevoerd: biedt bijvoorbeeld duizenden keren de passieve diepte voor het exacte moment waarop het wordt verdiend, en verdwijnt voordat enige ongunstige selectie kan bijten. Het komt in de keten het dichtst in de buurt van risicovrije marktwerking, en dat is de reden waarom JIT bestaat.

De kostenverdeling is slechts een liquiditeitsaandeel. Een \char36 10M swap via een 0,05% pool betaalt \char36 5.000 aan vergoedingen, pro rata gedeeld door binnen de bandbreedte LL. Als passieve LP's standhouden LpassiveL_{\text{passive}} in de gekruiste tikken en de JIT-botmuntjes Ljit=100LpassiveL_{\text{jit}} = 100\,L_{\text{passive}} voor het blok legt de JIT-positie vast

$5,000×LjitLjit+Lpassive=$5,000×100101$4,950,\char36 5{,}000 \times \frac{L_{\text{jit}}}{L_{\text{jit}} + L_{\text{passive}}} = \char36 5{,}000 \times \frac{100}{101} \approx \char36 4{,}950,

de passieve LP's achterlatend die er de hele week waren met \char36 50. De bot deed niets voor 99,99% van het blok en nam 99% van de vergoeding voor de enige ruil die er toe deed - wat precies is waarom de passieve vergoedingsinkomsten, eerlijk gemeten, achterblijven bij de totale inkomsten van de pool.

En zoals elke leesbare rand in de keten is JIT geconcurreerd. Zodra verschillende bots dezelfde grote lopende swaps bekijken en dezelfde vergoeding simuleren, bieden ze elkaar op in de bouwersveiling voor het recht om voor de stroom te zitten, en de fooi die aan de bouwer wordt betaald, convergeert naar de ontvangen vergoeding – dezelfde behuizing die is gebeurd met [on-chain liquidaties] (/blog/onchain-liquidations-aave-compound) en atomaire arb. Wat overblijft is het residu: swaps die andere bots hebben gemist, pools met onvolwassen bouwmarkten en de operationele kwaliteit om grote inactieve inventaris aan te houden en nooit meer een burn te missen. Het is een echte strategie en een echt bedrijf; het is geen detailhandel.

Het addertje onder het gras, en de reden waarom JIT een specialistisch spel is en geen gratis geld, is drieledig. Het heeft een echte inventaris nodig. In tegenstelling tot de atomic arbitrage with flash Loans die zichzelf financiert en binnen één transactie terugbetaalt, omvat een JIT mint-swap-burn drie afzonderlijke transacties in het blok (de munt, de ruil van het slachtoffer, de burn), dus een flitslening – die binnen één transactie moet worden terugbetaald – kan de LP-poot niet financieren. De JIT-bot moet het onderliggende kapitaal, vaak miljoenen in beide tokens, inactief en gereed houden. Het is een bundel in de MEV-toeleveringsketen. Om de bestelling binnen te halen – mint vlak voor de ruil, direct daarna branden – vereist het indienen van een bundel bij een blokbouwer via precies de aanbieder-bouwer-scheidingsleidingen die zijn ontleed in [het MEV- en mempool-artikel] (/blog/mev-sandwich-frontrunning-mempool); JIT concurreert om blokruimte en betaalt de bouwer zoals elke andere zoeker, en de winst na dat bod is mager. Het is averechtse selectie voor passieve LP's. JIT-bots afromen de grootste, meest goedaardige stroom – de dikke ongeïnformeerde swaps waarbij de vergoedingen sappig zijn en de toxiciteit laag – en verlaten passieve posities met de kleinere transacties en de giftige, geïnformeerde stroom die LVR genereert. De gerealiseerde vergoedingsinkomsten van een passieve LP zijn lager dan de totale vergoedingsinkomsten van de pool, juist omdat JIT de beste segmenten binnenhaalde. Dat laatste punt is niet slechts een economische voetnoot; het is een landmijn in het volgende gedeelte.

JIT-liquiditeit binnen één blok: verkrijg diepe liquiditeit vóór een grote inkomende swap, vang de vergoeding en verbrand deze in hetzelfde blok, weergegeven als een bundel in de toeleveringsketen van de indiener-bouwer-scheiding

LP backtesten op basis van gegevens uit de keten, eerlijk gezegd

Elke bovenstaande claim – vol-size bereiken verslaan statische, bandherbalancering verslaat periodiek, afgedekte LP’s zijn +EV in regime X – is een hypothese die je moet testen aan de hand van de geschiedenis van de keten voordat je kapitaal investeert. De gegevens zijn daar: swapgebeurtenissen en liquiditeitsgebeurtenissen in de logboeken van het poolcontract, of vooraf geaggregeerd in de Uniswap-subgrafiek. De valkuil is dat een naïeve LP-backtest systematisch optimistisch is, en dat de vooroordelen allemaal in dezelfde richting wijzen. Drie moet je hanteren, anders is je Sharpe fictie.

Toeschrijving van vergoedingen. De verleidelijke kortere weg is om de vergoedingsinkomsten te schatten als (poolvolume) × (vergoedingsniveau) × (uw aandeel in de pool-TVL). Dit is op twee punten onjuist. Er worden alleen kosten in rekening gebracht voor de liquiditeit die binnen bereik ligt op het moment van elke swap, dus de juiste noemer is uw aandeel van binnen bereik LL, niet uw aandeel in TVL – en die verschillen wanneer de prijs buiten uw centrum ligt. En de groei van de kosten is padafhankelijk: het hangt af van de exacte volgorde van de swaps en waar elke swap de prijs verliet ten opzichte van uw grenzen. De enige eerlijke methode is om swaps opnieuw af te spelen en het verschil te maken feeGrowthInside accumulatoren over uw bereikgrenzen heen, precies zoals het contract doet: de O(1)-boekhouding van het geconcentreerde liquiditeitsstuk. Het proportionele volume via TVL kan in beide richtingen met een groot veelvoud afwijken, en het is meest goed wanneer de prijs langs uw randen afdwaalt, wat het regime is dat u het meest nodig heeft om correct te modelleren.

Prijs-versus-pool-tick uitlijning. Er bestaan ​​op elk moment twee prijzen en deze zijn niet gelijk: de eigen tick van de pool (waar de marginale prijs van de AMM staat na de laatste swap) en de externe/CEX mid (waar het actief daadwerkelijk wordt verhandeld). Markeer uw positie bij de pool tick en u bouwt de winst van de arbitrageur op in uw eigen rendement, omdat de pool tick oud is tussen arbitragetransacties; markeer halverwege de CEX en je moet tijdstempels op verschillende locaties uitlijnen met verschillende klokken en bloktijden. De cadans van momentopnamen verergert dit: subgraaf-snapshots per uur missen stilzwijgend bereikoverschrijdingen binnen een uur - een positie die binnen een uur uw bereik verliet en weer binnenkwam, ziet eruit alsof hij de hele tijd binnen bereik heeft gezeten, waarbij de vergoedingen worden overschat en de LVR wordt onderschat. Alles wat je beweert over time-in-range of LVR moet afkomstig zijn van swap-level, herhaling met bloktijdstempel, en niet van uurmarkeringen.

In-pool MEV en JIT vervuilen de schatting van de vergoedingen. Dit is het subtielste en gevaarlijkste, en daarom zit de JIT-sectie vlak voor deze. Als je de provisie-inkomsten van een passieve strategie schat op basis van de historisch gerealiseerde provisie-inkomsten van de pool, crediteer je je passieve positie met vergoedingen die JIT-bots daadwerkelijk hebben binnengehaald – inkomsten die een echte passieve LP nooit zou hebben gezien, omdat de JIT-liquiditeit daarvoor werd geslagen voor die exacte swaps. Uw backtest neemt fantoomkosten over. Dezelfde swaps dragen de andere helft van de vervorming: een groot deel van het poolvolume is arbitrage – de giftige, geïnformeerde stroom die *uw LVR is – dus als u dit allemaal beschouwt als een ‘goed’ volume dat vergoedingen genereert, terwijl u de ongunstige selectie negeert die het oplegt, flatteert het resultaat dubbel. Een eerlijke LP-backtest moet (a) de liquiditeit binnen het bereik inclusief tijdelijke JIT-posities reconstrueren om vergoedingen correct toe te wijzen, (b) de LVR afzonderlijk in rekening brengen van het gerealiseerde prijspad in plaats van aan te nemen dat vergoedingen gratis geld zijn, en (c) arbitrage en JIT-skimmed swaps behandelen als wat ze zijn: de kostenkant van het grootboek, niet de inkomstenkant. Sla dit over en uw prachtige vol-sized, band-hergebalanceerde, delta-hedge-strategie zal op papier winstgevend lijken en in de productie bloeden, om redenen die de krant u nooit heeft laten zien.

Al deze vooroordelen stuwen het geschatte rendement omhoog, wat de slechtst mogelijke faalwijze is – een backtest die flatteert:

Biasbron Naïeve snelkoppeling Eerlijke werkwijze Effect op geschatte winst- en verliesrekening
Toeschrijving van vergoedingen volume × TVL-aandeel verschil feeGrowthInside bij swap-herhaling over- of onderwaarde, slechtste nabij randen
Prijsmarkering poolvinkje CEX midden, bloktijdstempel uitgelijnd overdrijft (bakt in arb-winst)
Momentopnamecadans momentopnamen per uur swap-niveau, blok-tijdstempel overschat de tijd binnen bereik
JIT-skim credits fantoomkosten reconstrueren tijdelijke JIT LL overschat vergoedingsinkomsten
Arbitragestroom telt als "goed" volume afzonderlijk als LVR overdrijft (negeert ongunstige selectie)

De discipline is dezelfde die een echte backtest van een handelsstrategie scheidt van een fantasie: modelleer de kosten met dezelfde nauwkeurigheid als de inkomsten, en wees het meest achterdochtig als het cijfer er het beste uitziet.

Wat mee te nemen

Voer een v3-positie uit zoals een bureau een boek doorneemt, en de vijf beslissingen komen op één lijn:

  1. Breedte is een volledige inzet. Grootte van het bereik als a kk-sigma-band van een voorwaartse variantievoorspelling – GARCH, niet gerealiseerd – dus de concentratie ademt met het regime mee in plaats van op een statische standaard te blijven zitten. De kaart voor teken is één regel, omdat teken een logprijs zijn.
  2. Herbalanceren is een requote-kostprijs, geen reflex. Handel alleen wanneer de verwachte tariefverhoging gas + swap + gekristalliseerde LVR vrijmaakt; de juiste vorm is een band zonder herbalancering, en de juiste frequentie is veel lager dan instinct suggereert. Een overmatige herbalancering betekent LVR plus een zelf opgelegde belasting, en voor veel kleine posities is het optimale herbalanceringsaantal nul.
  3. De delta is de inventaris. Voor een positie binnen bereik V/P=x(P)\partial V/\partial P = x(P), de ETH die u momenteel bezit; kortom dat het een dader is om een ​​marktmakend boek te runnen in plaats van een toevallig richtinggevend boek. Negatief gamma betekent een voortdurende herdekking, waarvan de kosten LVR zijn, en financiering de regime-afhankelijke huur – vaak een wind in de rug, nooit een garantie.
  4. JIT is de limiet van één blok van actieve LP's: diepe liquiditeit rond een enkele swap, bijna nul IL, vereist echt kapitaal (geen flitslening) en een bundel in de MEV-toeleveringsketen die de beste stroom weghaalt van passieve LP's.
  5. De backtest is optimistisch tenzij u van mening verschilt feeGrowthInside gebruik voor attributie markeringen met bloktijdstempel op swapniveau en behandel JIT-skimmed en arbitrageflow als de kostenkant. Fantoomkosten plus genegeerde LVR is hoe een verliezende strategie de beoordeling doorstaat.

De rode draad van deze reeks is dat een LP-positie een exacte analytische structuur heeft – waarde, delta, gamma, LVR – en op het moment dat u deze opschrijft, is LP niet langer ‘storten en bidden’ en wordt het een hedgebare, omvangrijke, testbare transactie. De wiskunde was in geconcentreerde liquiditeit; de winstgevendheidscalculus bevindt zich in impermanent verlies en LVR; dit stuk is hoe je feitelijk de positie tussen die twee bedient. Niets hiervan neemt het risico weg. Het vertelt u tot op de kern precies voor welk risico u betaald wordt.

Referenties

  • Adams, H., Zinsmeister, N., Salem, M., Keefer, R., Robinson, D. (2021). Uniswap v3 Core (whitepaper).
  • Milionis, J., Moallemi, C., Roughgarden, T., Zhang, AL (2022). Geautomatiseerde marktontwikkeling en verlies-versus-herbalancering. arXiv:2208.06046.
  • Milionis, J., Moallemi, C., Roughgarden, T. (2023). Complexiteit-aanpassingsafwegingen in uitwisselingsmechanismen: AMM's versus LOB's, en gerelateerd LVR-met-vergoedingenwerk. arXiv:2302.11737.
  • Cartea, Á., Drissi, F., Monga, M. (2023). Voorspelbare verliezen van de liquiditeitsvoorziening in constant functionerende markten en geconcentreerde liquiditeitsmarkten. arXiv:2309.08431. -Fritsch, R., et al. (2023). Analyseren en benchmarken van Just-in-Time (JIT)-liquiditeit op Uniswap v3.
  • Uniswap-subgrafiek en kernbibliotheken: Position.sol, Tick.sol, SqrtPriceMath.sol (vergoedingsgroei en bedragberekening voor eerlijke herhaling).
  • Bollerslev, T. (1986). Gegeneraliseerde autoregressieve voorwaardelijke heteroskedasticiteit — de GARCH(1,1)-voorspelling achter de bereikgrootte.
Disclaimer: De informatie in dit artikel is uitsluitend bedoeld voor educatieve en informatieve doeleinden en vormt geen financieel, beleggings- of handelsadvies. Het handelen in cryptovaluta brengt een aanzienlijk risico op verlies met zich mee.

Auteurs

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Blijf de markt voor

Abonneer je op onze nieuwsbrief voor exclusieve AI-handelsinzichten, marktanalyses en platformupdates.

We respecteren je privacy. Je kunt je op elk moment afmelden.