Tóm tắt · 9 phút đọc

Price Impact Estimation – Tính Slippage Trước Khi Swap — Điểm mấu chốt

Price impact là mức độ giá thay đổi do chính swap của bạn gây ra trong AMM pool. Với Uniswap V2, công thức constant product (x·y=k) cho phép tính chính xác price impact trước khi swap chỉ bằng bốn số: swap amount, pool reserve X, pool reserve Y, và fee. Hiểu công thức này giúp bạn chọn đúng swap size và tránh những trade với cost ẩn quá cao.

Price Impact là gì — Chi phí thực ẩn trong mỗi swap

Price impact là mức giá thay đổi do chính transaction của bạn gây ra trong pool AMM. Không phải market movement ngoài — mà là kết quả trực tiếp của việc bạn swap. Swap càng lớn so với pool reserve, price impact càng cao.

Price impact khác với slippage: price impact là expected (có thể tính trước), trong khi slippage là difference giữa expected execution price và actual price do market move trong lúc transaction pending. Price impact = cost ẩn; slippage = risk của timing.

Price Impact vs Fee
Uniswap V2 có fee 0.3% — đây là phần nhỏ của total cost. Với pool $200k TVL và swap $5k, price impact có thể là 2.5% — gấp 8 lần fee. Phần lớn retail chỉ nhìn fee mà bỏ qua price impact — đây là sai lầm phổ biến nhất trong meme trading.

Công thức Constant Product — Toán học đằng sau AMM

Uniswap V2 và hầu hết AMM dùng constant product formula: x · y = k, trong đó x và y là reserve của hai token trong pool và k là hằng số không đổi sau mỗi swap.

Ví dụ số cụ thể

Pool: 100 ETH + 10,000,000 TOKEN (k = 10^9). Bạn swap 5 ETH vào (fee 0.3%):

BướcTính toánKết quả
ETH vào (after fee)5 × (1 − 0.003)4.985 ETH
New ETH reserve100 + 4.985104.985 ETH
New TOKEN reserve10^9 / 104.9859,525,174 TOKEN
TOKEN nhận được10,000,000 − 9,525,174474,826 TOKEN
Spot Price (before)10,000,000 / 100100,000 TOKEN/ETH
Execution Price474,826 / 594,965 TOKEN/ETH
Price Impact(100,000 − 94,965) / 100,0005.03%

Tính Thực tế — Không cần tự tính — tools làm hộ

Mặc dù công thức trên hữu ích để hiểu mechanics, trong thực tế bạn không cần tính tay. Uniswap interface hiển thị "Price Impact" tự động khi bạn nhập swap amount.

Đọc Price Impact trên Uniswap

Khi bạn nhập swap amount trên app.uniswap.org, phần "Price Impact" hiển thị dưới ô swap. Màu sắc: xanh = thấp (<0.1%), vàng = trung bình (0.1–3%), đỏ = cao (>3%). Nếu impact >15%, Uniswap sẽ warning bạn phải confirm thêm.

Price Impact Check Routine Mở Uniswap với token cần swap // app.uniswap.org Nhập swap amount dự định // Chưa cần confirm Đọc 'Price Impact' hiển thị // < 1%: OK | 1–3%: cân nhắc | > 3%: reconsider size Nếu cao: thử chia nhỏ swap // Simulate $1k → $5k → $10k, track impact Chọn size tối ưu dựa trên cost/benefit // Impact < 1% cho most trades là target

Benchmark Price Impact theo Pool Size

Swap SizePool $100kPool $500kPool $2MPool $10M
$5002.4%0.5%0.12%0.025%
$2,0009.1%1.98%0.50%0.10%
$5,00020%4.76%1.23%0.25%
$10,00033%9.1%2.44%0.50%

Uniswap V3 — Concentrated Liquidity — Price impact phức tạp hơn

Trong Uniswap V3, price impact không đơn giản như V2 vì liquidity không phân bổ đều. Trong range active của LP, price impact thấp hơn đáng kể; nhưng nếu swap đủ lớn để price đi ra ngoài range LP, liquidity đột ngột bằng 0 và price impact trở nên cực cao (hoặc swap fail).

V3 Tick Boundary Effect
Trong V3, nếu swap của bạn đẩy price vượt qua tick boundary của LP range, thực tế bạn chỉ nhận được liquidity đến điểm đó. Phần còn lại execute với liquidity cực thấp → price impact spike đột ngột. GeckoTerminal depth chart cho thấy rõ điều này: tìm 'cliff' trong depth visualization.

Hệ quả thực tế: với V3 pool, simulate swap trên Uniswap interface là bắt buộc — không thể estimate đơn giản từ TVL như V2. Interface sẽ show chính xác price impact dựa trên actual tick liquidity distribution.

Reduce Price Impact — Chiến lược tối ưu

Cách 1: Giảm swap size

Đơn giản nhất: chia swap lớn thành nhiều swap nhỏ hơn (TWAP). Price impact giảm phi tuyến theo size — chia làm 4 lần giảm impact nhiều hơn ¼ so với một lần.

Cách 2: Tìm pool liquidity cao hơn

Cùng một token có thể có pool trên nhiều DEX: Uniswap, SushiSwap, Curve. So sánh TVL và dùng aggregator như 1inch để route qua pool tốt nhất. Aggregator tự động tìm path với price impact thấp nhất.

Cách 3: Dùng DEX aggregator

1inchCoW Swap split route qua nhiều pool để giảm price impact tổng. Ví dụ swap $10k có thể được split: 60% qua pool A, 40% qua pool B — cả hai pool chịu impact thấp hơn so với dồn hết vào một pool.

1inch vs CoW — Khi nào dùng gì
1inch: tốt cho quick swap, route optimization tức thì. CoW: tốt hơn cho large swap vì dùng intent-based settlement (batch settlement giữa các user, giảm price impact và MEV). Với swap > $5k trên meme pool mỏng, CoW thường cho kết quả tốt hơn.

Price Impact vs Slippage — Phân biệt để không nhầm

Khái niệmĐịnh nghĩaCó thể tính trước?Ai kiểm soát?
Price ImpactGiá thay đổi do swap của bạn✅ CóBạn (chọn swap size)
SlippageChênh lệch expected vs actual price❌ Không (market risk)Market volatility
Slippage ToleranceMax chênh lệch bạn chấp nhậnN/ABạn set trong UI

Khi Uniswap hiển thị "Minimum received" — đây là output nếu slippage đúng bằng tolerance bạn set. Nhưng price impact đã được tính vào expected output — nên "minimum received" đã bao gồm cả price impact và slippage tolerance rồi.

FAQ — Câu hỏi thường gặp

Price impact là mức giá thay đổi do chính swap của bạn gây ra trong pool. Càng swap nhiều so với pool reserve, giá bạn nhận càng tệ hơn spot price. Price impact khác slippage: impact có thể tính trước, slippage là risk do market move trong lúc pending.
Uniswap V2 dùng constant product x·y=k. Với pool có x ETH + y TOKEN, swap Δx ETH vào: token nhận được Δy = y − k/(x + Δx×(1−fee)). Price impact = (Execution Price − Spot Price) / Spot Price. Uniswap interface tính tự động — không cần tính tay.
Dưới 0.5%: tốt, 0.5–1%: chấp nhận, 1–3%: cân nhắc kỹ, trên 3%: cost cao, cần justify bằng expected profit lớn. Trên 5%: chỉ swap khi không có lựa chọn khác hoặc expected profit đủ lớn để bù.
Có — V3 phức tạp hơn vì concentrated liquidity. Trong range active, impact thấp hơn V2. Nhưng nếu swap đủ lớn để đẩy price ra ngoài range LP, impact tăng đột ngột. Luôn simulate trên Uniswap interface với V3 pool — không thể estimate đơn giản từ TVL.
Ba cách: (1) Chia swap lớn thành nhiều swap nhỏ (TWAP); (2) Dùng aggregator như 1inch để route qua nhiều pool; (3) Tìm pool có TVL cao hơn cùng token. CoW Protocol đặc biệt hiệu quả cho swap lớn vì batch settlement giữa nhiều user.
Không — là hai khái niệm riêng biệt. Price impact được tính vào expected output trước. Slippage tolerance là buffer thêm cho market move trong lúc pending. 'Minimum received' trên Uniswap = expected output (after price impact) × (1 − slippage tolerance).

Tài liệu tham khảo

Nguồn chính

  1. Adams, H. et al. Uniswap v2 Core. 2020. uniswap.org
  2. Zhang, Y. et al. An analysis of Uniswap markets. 2021.
  3. 1inch. Pathfinder Algorithm Documentation. docs.1inch.io

Bài viết liên quan

Market Microstructure — PEPE.VN Research

Xem toàn bộ research →