Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lp-analysis-toolkit

Research tools for liquidity position analysis, impermanent loss modeling, and AMM microstructure studies.

Models

  • CPMM (ConstantProductPool): Uniswap V2 / SushiSwap x*y=k model with fee accounting and IL calculation
  • Concentrated (ConcentratedPool): Uniswap V3 tick-based model with range tracking and per-position fee distribution
  • StableSwap (StableSwapPool): Curve-style hybrid invariant with amplification coefficient

Simulation

  • Backtester: LP position performance over historical or synthetic price series
  • GBM price generator: Geometric Brownian Motion for Monte Carlo simulations

Data

  • PoolFetcher: On-chain V2/V3 pool data via JSON-RPC (no web3 dependency)

Quick Start

from lptk.models import ConstantProductPool

pool = ConstantProductPool(1000, 3000000, fee_bps=30)
print(f"Price: {pool.price:.2f}")
print(f"IL at 2x: {ConstantProductPool.il_from_price_ratio(2.0)*100:.2f}%")

# simulate trades
pool.swap_0_to_1(10)
print(f"Fees: {pool.accumulated_fees()}")
from lptk.sim import LPBacktester
from lptk.sim.backtest import BacktestConfig

prices = LPBacktester.generate_gbm_prices(3000, mu=0.5, sigma=0.8, steps=365, seed=42)
bt = LPBacktester(BacktestConfig(initial_capital=10000, fee_bps=30))
result = bt.run(prices)
print(result.summary())

Tests

python -m pytest tests/ -v

About

Liquidity position analysis, impermanent loss modeling, and AMM microstructure research tools

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages