(Не)много математики: как работает Price Impact в обменах?
Если вы мажор и обменивали большие суммы токенов (или хотя бы вбивали их в агрегатор, чтобы посмотреть, что будет), то могли заметить, что цена обмена будет ниже рыночной. Почему так?
Сегодня разберемся, как работает обмен в LP-пулах. Предположим, есть пул с x токенами $A и y токенами $B. Тогда рыночная цена ДО обмена, очевидно, равна Pmid=y/x, что довольно логично. Но как обмен повлияет на цену?
Для примера возьмем одну из самых популярных стратегий AMM «Constant Product», которая используется в 🎲 Dedust. Она выглядит так: x * y = k, где k — определенная константа. Этот инвариант поддерживается при всех обменах. Предположим, мы делаем обмен Δx токенов $A на Δy токенов $B. Как мы помним, равенство должно сохраняться:
(x + Δx) * (y - Δy) = k.
Отсюда новое количество токенов $A в пуле: x' = x + Δx
а новое количество токенов $B в пуле: y'=k/x'=(x * y) / (x + Δx)
Так мы узнаем реальную цену, по которой исполнится наш обмен. Она будет равна Pexec=Δy/Δx=y / (x + Δx).
Разобрались, почему при обмене цена падает, а что такое Price Impact? А это как раз показатель, насколько падает цена. Считается он так: Impact = (Pmid - Pexec) / Pmid = Δx / (x + Δx) * 100%.
Как-то так! Но теперь хочется применить новые знания и проверить, что формула корректная. Как это сделать? Пойдем в пул 💎 TON/ 🪙 USDT на Dedust и узнаем его примерные объемы: x = 345,100 (Toncoin), y = 1,160,000 (USDT). Попробуем узнать Price Impact при обмене 10,000 TON на USDT. Предварительно вычтем комиссию агрегатора, и получим "чистый обмен" 10,000 - 87.5 = 9 912.5 💎 Toncoin на 🪙 USDT.
Посчитаем цену 💎 Toncoin до сделки: Pmid = y/x = 1,160,000 / 345,100 = 3.3613.
Посчитаем новые резервы в пулах:
x' = x + Δx = 345,100 + 9912.5 = 355,012.5 💎 Toncoin
y' = k / x' = 345,100 * 1,160,000 / 355,012.5 = 1,127,611 🪙 USDT.
Отсюда найдем, сколько 🪙 USDT мы получим:
Δy = y - y' = 1,160,000 - 1,127,611 = 32389 🪙 USDT
Теперь мы можем узнать фактическую цену исполнения обмена:
Pexec = Δy / Δx = 32389 / 9912.5 ≈ 3.2675
И отсюда Price Impact = (Pmid - Pexec) / Pmid = (3.3613 - 3.2675) / 3.3613 = 2.79%
Можно сверить полученные цифры с скриншотом в 💎 MyTonWallet и убедиться, что они почти совпадают. Небольшие отличия связаны с тем, что мы взяли округленный объем пула с страницы 🎲 Dedust, не учли его собственную комиссию и флуктуации цены во время расчетов.
Ставь лайк, если взорвалась голова 💥
Post #59
478

- 🔥 10
- 👍 7