Author

Topic: Маркетмейкер с плавающим спредом (Read 218 times)

legendary
Activity: 2744
Merit: 1588
Quote
... после этого ASK=BID+0.1%=497.50$

Ну, тогда арбитражник настрочит сделку на 1 сатоши чтобы спред схлопнулся и приходим до стандартном ММ Унисвапа.

В блокчейне этот арбитражник не один находится, плюс не забываем, что сейчас комиссия в эфире 3$-5$. Поэтому фактически чередование сделок подряд будет близко к случайному. Плюс мы ничего не теряем при схлопывании спреда, даже этим арбитражником. Так как он его схлопнет для того, чтобы у нас купить эфир, а после покупки как цена BID, так и цена ASK увеличатся. Таким образом даже при схлопывании спреда мы получим 0.1% от комиссии сделки и плюс 0.1% от спреда (ведь продаем мы по цене BID+0.1%), которые в итоге дадут 0.2%, что не так и мало по сравнению с Uniswap у которого 0.3%.
sr. member
Activity: 1026
Merit: 280
🇧🇬 Crypto Since MMXIII
Quote
... после этого ASK=BID+0.1%=497.50$

Ну, тогда арбитражник настрочит сделку на 1 сатоши чтобы спред схлопнулся и приходим до стандартном ММ Унисвапа.
legendary
Activity: 2744
Merit: 1588

1. Плохая новость и везде просело резко до 500... Будем продавать по 750 или что?

2. Еще хуже – у нас упало до 500, а везде до скажем 600 – наша цена ни на покупки, ни на продажи актуальна...

И так по пунктам:

1. Если везде упало до 500$, а у нас продажа по 750$, то конечно по такой цене не будут у нас покупать, но у нас цена 500$ для закупок. Это значит, что нам ещё могут продать эфира и тем самым ещё больше уменьшив цену. Далее у нас произойдет вторая сделка подряд в одном направлении, а значит спред схлопнится до значений BID+0.1%.

Условно у нас было BID=500$ и ASK=750$, мы купили ещё немного эфира следующей сделкой и цена BID ещё немного уменьшилась и стала скажем BID=497$, а вот наш спред сразу же схлопнулся и стал равен после этого ASK=BID+0.1%=497.50$.


2. Почему это хуже. Упала у нас цена закупки эфира BID и она стала 500$, в то время в других местах закупают эфир по 600$. Ничего страшного, у нас значит будет актуальна цена ASK=750$, где мы продаем эфир. Каждая продажа эфира будет происходить по цене ASK и подтягивать вверх цену BID, пока она не станет актуальной и начнутся и сделки по цене BID, либо эта цена BID продолжит расти и превысит значения ASK, тем самым его обновив и схлопнув спред.


Ситуация, когда реальная цена находиться где-то посередине нашего спреда между BID и ASK возможна, но маловероятна, так как для арбитражеров одна из цен будет всегда привлекательна. В таком случае обменник будет просто стоять и ждать, когда реальная цена подойдет к границам этого спреда и опять начнутся сделки.
sr. member
Activity: 1026
Merit: 280
🇧🇬 Crypto Since MMXIII
Quote
У меня же при аналогичной ситуации было бы так. Цена покупки ещё терры была 500 (как и в вашем случае), далее у Вас цена продажи терры тоже была бы 500, а вот у меня благодаря спреду была бы уже 750.

Плохая новость и везде просело резко до 500... Будем продавать по 750 или что?

ПС: Еще хуже – у нас упало до 500, а везде до скажем 600 – наша цена ни на покупки, ни на продажи актуальна...
legendary
Activity: 2744
Merit: 1588

Продавцы ликвидности получают свой % от торговых комиссий и движения курсов...

Вот именно продавцы ликвидности в Uniswap ничего не получают от движения курсов, только от комиссии при обмена.
legendary
Activity: 2249
Merit: 1130
AI Atelier
....
3. Здесь уже надо думать, какой диапазон задать, а это надо иметь квалификацию трейдера или инвестора.
....

Квалификация нужна в любом деле, а уж в финансовые дела без квалификации вообще лучше не соваться...

Не следует рассматривать АММ как нечто, работающее само по себе. Отдельно взятый пул ликвидности с АММ не подвешен в вакууме, вокруг него есть другие пулы и не все эти пулы работают по одинаковому принципу.

Нужно понимать что на людей, которые хотят заработать на АММ или чём то другом, всегда найдутся люди, которые будут зарабатывать на их активности. В данном случае кроме трейдеров и продавцов ликвидности есть ещё арбитражеры, без которых эта система не работает.

Продавцы ликвидности получают свой % от торговых комиссий и движения курсов, трейдеры получают свой % от волатильности активов, арбитражеры получают свой % на выравнивании котировок на разных пулах ликвидности. Размер прибыли или убытка у всех зависит от их квалификации.
legendary
Activity: 2744
Merit: 1588
И так в мире DeFi произошли изменения и Uniswap назвала дату запуска третьей версии протокола.

Нужно понимать, что объявление о том, что ваши деньги будут работать в 4000 раз есть лишь рекламный трюк, говорят правду, но не договаривают условия.

Для начала я прошу Вас перейти к калькулятору комиссии на этой странице Introducing Uniswap V3

Он находится под абзацем:

Quote
The tool below calculates the capital efficiency gains of a concentrated liquidity position (centered around the current price) relative to allocating capital across the entire price curve.

И там сразу ваше депо (Liquidity Deposit Value, Value of paired tokens) начинается с 15000$.

Даже тот условный пример, если ничего не трогать показывает, что если мы зададим промежуток для ликвидности от цены Эфира 1200$ до 2800$ при текущей 1820$, то комиссия будет всего лишь в 5.25 раза больше, чем была до этого.

Видны следующие недостатки:

1. Вы видите, что не так всё красиво, как заявлено.

2. Надо понимать, что получать комиссию Вы будите пока цена находиться в заданном Вами диапазоне.

3. Здесь уже надо думать, какой диапазон задать, а это надо иметь квалификацию трейдера или инвестора.


Я приводил примерные расчеты и сравнивал свой вариант с вариантом Uniswap, так вот мой вариант дает на всём диапазоне, без всякой концентрированной ликвидности своим инвесторам примерно в 25.8 раз больше комиссии, чем у Uniswap.
legendary
Activity: 2744
Merit: 1588
full member
Activity: 411
Merit: 139

Мне интересна тема AMM, но я опять прошу прощения я ничего не понял.
Но сразу скажу что у меня есть уже опыт - я недавно создал DeFi, который совмещает с собой стейблкоин (USD) и Своп. Своп классический - аналогичен uniswap, поэтому я думаю что хорошо представляю как  работает uniswap. В нем AMM - стандартный. Добавлены только варианты защиты от манипуляций курсом.

Вот пример работы этого свопа:

Quote
Обмен
Смарт-контракт содержит резервы ликвидности TERA и USD, и сделки совершаются непосредственно против этих резервов. Цены устанавливаются автоматически с помощью механизма маркет-мейкера (x*y=k), который поддерживает общие резервы в относительном равновесии. Обмен ведется в предположении постоянства значения TeraSwapPool * USDSwapPool = Invariant. Этот инвариант не изменяется и остается практически одной и той же константой при всех обменах (комиссия незначительно влияет на инвариант), существенно он изменяется только при добавлении или удалении ликвидности.

Обмен Тера на USD

При таком обмене увеличивается TeraSwapPool и уменьшается USDSwapPool

var AmountFee=AmountTera*KFee;
var Invariant=TeraSwapPool * USDSwapPool;
var TeraSwapPoolNew = TeraSwapPool + AmountTera;
var USDSwapPoolNew = Invariant/(TeraSwapPoolNew - AmountFee);
var USDOut = USDSwapPool - USDSwapPoolNew;

TeraSwapPool = TeraSwapPoolNew;
USDSwapPool = USDSwapPoolNew;

Более подробно в документации (RUS: https://docs.google.com/document/d/1iTp9gjpwa4KTqkh1TCy_-kccPdTDFDH2uSD-vWgZqQs/edit?usp=sharing )



Обратная операция фактически симметрична, поэтому не буду приводить.  Таким образом я хочу сказать что нет никакой цены ASK или BID. Есть только движение по кривой x*y=k


P.S.
Кстати мне еще ОЧЕНЬ интересна тема про манипуляции курсом на AMM (для создания защит от них). Какие вы знаете (особенно те которые не вошли в документ указанный выше)?


legendary
Activity: 2744
Merit: 1588

Кстати, у тебя в тексте комиссия унисвопа указана 0,03%  хотя на самом деле она у них 0,3%
А вот в принскринах(видимо в расчетах) - нормальная.
Подправь плиз.

Спасибо, что указали, где ошибся. Уже исправил.



Дима, я так и не понял в чем твое предложение, чтобы вручную не нащупывать цену.
Может ты предлагаешь централизовано устанавливать текущий курс (и спред)?  В этому вся суть?

Задачи не нащупывать цену не ставилось, у нас ведь пассивный обменник на смарт-контракте, без подключения оракулов. Поэтому, то что он нащупывает цену - это нормально, так и должно быть.

Ни о каком ручном регулировании цены речи не идет, я же показал алгоритм, как определяются две этих цены.

Суть вот в чем:

1. Наш обменник не особо реагирует на краткосрочные всплески цены, любая большая заявка лишь раздвинет спред. И получиться, что если нам продавали эфир ETH, то теперь мы будем покупать по ещё меньшей цене, а вот если уже мы продаем эфир ETH, то мы не продаем по этой маленькой цене, а продаем по более высокой цене, которая зависит от спреда.

2. Основная наша цена которая подчиняется начальной формуле ценообразования к=ETH*USDC - это цена BID, а вот цена ASK - она двигается за этой ценой, как хвостик. В случает падения условно цены BID на 50% вниз, она падает только на 25%. Также в случае схлопывания спреда, по какой либо причине, она все равно привязывается к цене BID+0.1%. В случае, если цена BID в расчетах начинает превышать цену ASK, то происходит, то что цена BID становиться, как получилась в расчетах, а вот цена ASK привязывается к цене BID+0.1%.


Таким образом при минимальном спреде, наш обменник зарабывает на самом спреде 0.1% и плюс комиссия 0.1%. Что в итоге дает при минимальном раскладе 0.2% с тразакции ( у Uniswap напомню 0.3%), а вот если произошла раздвижка спреда, то обменники типа Uniswap не зарабатывают, а теряют деньги на арбитражерах, а вот наш обменник именно, что и зарабатывает.


Ну сравните сами, если брать расчеты и это получились результаты за сутки (примеры с комиссией 0.1% не беру):

Вот результаты и подсчет при курсе расчета ETH/USDC=2000:

- Обменник с комиссией 0.3% от суммы обмена, пример Uniswap,принес 10,500.00 USDC;
- Обменник с комиссией 0.1% от суммы обмена плюс плавающий спред, принес 271,267.50 USDC;

У нас начальный капитал был всего при курсе ETH/USDC=1000, тогда 1,000*ETH+USDC=1,000*1,000+1,000,000=2,000,000 USDC.


Смотрим прибыльность в процентах за сутки и за 365 дней:

- Обменник с комиссией 0.3% от суммы обмена, пример Uniswap,принес за сутки 10,500.00/2,000,000*100=0.525%, за 365 дней 0.525*365=191.625%;

- Обменник с комиссией 0.1% от суммы обмена плюс плавающий спред, принес за сутки 271,267.50/2,000,000*100=13.56%, за 365 дней 13.56*365=4,949.4%;


Сравните разницу по прибыльности такого пула, а я напомню, что при минимальном спреде здесь человек платит 0.2% от тразакции, а не 0.3%, как у Uniswap.


full member
Activity: 411
Merit: 139
Фактически такой обменник, как в темноте нащупывает цену.

Дима, я так и не понял в чем твое предложение, чтобы вручную не нащупывать цену.
Может ты предлагаешь централизовано устанавливать текущий курс (и спред)?  В этому вся суть?



В отличие от комиссии на обмен у Uniswap 0.03%

Кстати, у тебя в тексте комиссия унисвопа указана 0,03%  хотя на самом деле она у них 0,3%
А вот в принскринах(видимо в расчетах) - нормальная.
Подправь плиз.
legendary
Activity: 2744
Merit: 1588
Мне не давала покоя мысль, что инвесторы взаимных пулов теряют деньги в таких обменниках. Поэтому поставил цель придумать такой обменник, где нет постоянной потери, что ж это оказалось невозможно, тогда решил хотя бы попытаться максимально её снизить.
legendary
Activity: 2744
Merit: 1588
И так господа приветствую. Изначально данную тему я задумывал так, чтобы избавить автоматического маркетмейкера от непостоянной потери, однако, это в силу фундаментальных причин оказалось невозможно.

Тем не менее факт остается фактом, такие обменники с автоматическим маркетмейкером торгуют себе в убыток. Это происходит из за того, что ценообразование происходит в пассивном режиме.

Посмотрите на картинку, это обычный велосипедный механический счетчик расстояния:



Он работает, только когда к боковой звездочке прикладывается усилие и проворачивает её в определенном направлении. Без кручения этой боковой звездочки расстояние не считается.

Также и у нас, есть некий обменник с таким же механическим принципом, пока обмен криптовалюты не совершился – цена не изменяется. Фактически такой обменник, как в темноте нащупывает цену.

Однако, если мы пойдем с вами в любой банк, то увидим там обменник не с одной, а с двумя ценами, тоже самое есть и на бирже.
Разница между этими ценами и называется спред. Спред выполняет важную функцию, он не только помогает обменнику зарабатывать, ведь обменник продает нам  по более дорогой цене ASK, а покупает у нас по более дешевой BID, но и показывает состояние рынка.
Если спред  узкий, то рынок ведет себя спокойно и там нет неопределенности в цене, такая цена устраивает, как покупателей, так и продавцов.

Но вот, появляется какое-то неожиданное и важное событие или новость и цена либо резко пошла вверх, либо вниз.
У любого банковского обменника вверх или вниз резко пойдет одна цена, спред расшириться и тем самым показывая, что на рынке сейчас появилась неопределенность и не совсем понятно по какой цене считать.
У обменника типа Uniswap только одна цена и она пойдет вверх или вниз. И именно в условиях неопределенности такие обменники и теряют деньги на обменах.

Просто представьте, что кто-то по ошибке загрузил большую сумму крипты на продажу в обменник типа Uniswap, цена скажем просела с 1000 до 500. В то время, как у остальных этого не было и цена где-то в пределах 900-1000. Вот тут и появляются арбитражеры, которые видят, что могут у этого обменника купить дешевле по 500 и продать другим уже за 1000.

Именно из за отсутствия спреда инвесторы пулов ликвидности и теряют деньги на таких обменах, давая заработать хорошо арбитражерам.
Вот именно эту проблему и решает мой тип автоматического маркетмейкера с плавающим спредом.

Давайте сразу перейдем к скриншоту и я буду всё объяснять с расчетами:



В нашем обменнике применяется также классическое ценообразование с коэффициентом:
 k=ETH*USDC=1,000*1,000,000=1,000,000,000

В отличие от комиссии на обмен у Uniswap 0.03% мы применяем более меньшую комиссию в 0.01%, плюс минимальный спред также в 0.01% (посмотрите на начальные цены BID=1000 и ASK=1010).

Как вы видите из расчетов у нас в обменнике было 1,000.00 эфира ETH и вот кто-то решил продать для нашего обменика эфира ETH равную всему нашему запасу. Давайте теперь подсчитаем курс по которому мы купим этот эфир у него:

- для начала подсчитаем сколько у нас всего будет эфира, после покупки:
1,000+1,000=2,000.00 ETH;

- подсчитаем сколько всего должно получиться стейблкоинов с таким новым количеством эфира:
USDC=k/ETH=1,000,000,000/2,000=500,000.00 USDC;

- теперь подсчитаем сколько денег у нас пойдет на покупку 1,000 ETH:
1,000,000-500,000=500,000.00 USDC;

- теперь подсчитаем курс по которому пройдет данная сделка, а это количество стейблкоинов, которые мы хотим потратить на покупку эфира, разделить на количество покупаемого эфира:
500,000/1,000=500.00.

Теперь посмотрите наш скриншот , строка с зеленой 1,000.00. Зеленый цвет означает покупку 1,000.00 эфира ETH, далее столбец в этой строке USDC означает сколько денег у нас должно остаться, а именно 500,000.00, чуть вправо число 500,000.00 это разница между первоначальным значением USDC и текущим, а фактически означающим сколько денег и идет на покупки этих эфиров.

Теперь обратите внимание в этой строке на столбец BID, там значение 500.00 это и есть наш вычисленный курс.

Таким образом до текущего момента всё это работало одинаково, как и у обменников типа Uniswap.

Однако Вы видите в этой строке и столбец с ценой ASK. Первоначально он был равен 1010.00, а теперь стал 757.50.
Цена ASK – это цена по которой вам обменник продает эфиры. После резкого падения цены, курс BID – покупки эфиров этим обменником рухнул на 50%, а вот уже курс продажи эфиров ASK этим обменником рухнул только на 25%.

Такая ситуация со спредом дает нам следующее: если мы будет опять покупать эфиры, то будем вести отчет от цены BID, а вот если мы будем продавать эфиры, то будем вести отчет от цены BID, но продавать по цене ASK.

Чтобы было наглядно и понятно, предлагаю обратить внимание на следующую строку вниз от зеленой, там вы видите уже значение 500 красным, что означает, что мы теперь продаем 500 эфира от имеющихся у нас 2000 эфиров.

Давайте теперь подсчитаем данные по продаже этих 500 эфиров:

- для начала подсчитаем сколько у нас всего будет эфира, после продажи:
2,000-500=1,500.00 ETH;

- подсчитаем сколько всего должно получиться стейблкоинов с таким новым количеством эфира:
USDC=k/ETH=1,000,000,000/1,500=666,666.67 USDC;

- теперь подсчитаем сколько денег у нас пойдет на продажу 500 ETH:
666,666.67-500,000=166,666.67 USDC;

- теперь подсчитаем курс по которому пройдет данная сделка, а это количество стейблкоинов, которые мы хотим потратить на покупку эфира разделить на количество покупаемого эфира:
166,666.67/500=333.33.

И так мы видим, что курс продажи эфира намного меньше, чем наш курс покупки эфира, поэтому цену BID не меняем, а оставляем прежней 500, а вот продаем мы по цене ASK и именно по этой цене и видит человек продажу ему эфиров и пока скажем так внутренний расчетный курс не перебьет цену ASK по ней и продаем.

В этой строке прошу обратить внимание впрво, на красное выделенное число 378,750.00 это именно столько денег нам принесет продажа по цене ASK.

Теперь сравните, продажа эфира, как у Uniswap, нам принесла бы только 166,666.67 USDC в то же время продажа по нашей модели по цене ASK принесет 378,750.00 USDC.

Теперь, чтобы наши расчеты не сбивались, то мы считаем, что наш обменник продал только на сумму 166,666.67 USDC, а остальная сумма (крайняя справа выделенная красным) 212,083.33 уйдет на дивиденды.

Продажа второй партии 500 эфиров, пройдет аналогичным образом. Обратите внимание, что спред изменился, наша цена продажи ASK не изменилась, а вот цена BID подтянулась до значения 666.67. Излишки денег опять ушли на дивиденды.

Теперь обратите внимание на продажу следующей партии 500 эфиров, здесь уже внутренний курс перебил цену ASK и стал 2,000, тогда мы подтянули цену ASK к цене BID добавили 0.01% и получили новую цену ASK, по которой и продали эти 500 эфиров. Излишки денег опять отправили на дивиденды.

Также хочу пояснить одну вещь, в модели этого обменника важен порядок прохождения заявок. Условно прошла заявка на продажу нам большой суммы эфиров, курсы стали BID=500 и ASK=757,50. Если проходит ещё одна заявка на продажу нам эфиров, то есть получается 2 заявки подряд на продажу нам эфира, то спред схлопывается до своего минимального значения допустим уже становиться после 500 и последующей еще продажи, следующим  BID=450.00 и ASK=450.05. В данном случае важен принцип: лучше лишний раз схлопнуть спред до минимального, чем потерять на обороте. Так как если цены станут не выгодны, обмен прекратиться и надо будет ждать момента, когда цены выйдут из диапазона и они существенно изменится, чтобы наши цены были снова выгодны или хотя бы адекватны рынку.

Теперь предлагаю сравнить различные обменики по прибыльности, для инвесторов взаимных пулов.
Напомню, что комиссия берется всегда в том, в какой валюте вы отсылаете. При нашем обмене, комиссия будет браться при продаже эфира обменнику в эфирах, а при покупке эфиров у обменника в стейблкоинах USDC.

В скриншоте приведены 3 модели:

- Обменник с комиссией 0.1% от суммы обмена;
- Обменник с комиссией 0.3% от суммы обмена, пример Uniswap;
- Обменник с комиссией 0.1% от суммы обмена плюс плавающий спред;

Вот результаты и подсчет при курсе расчета ETH/USDC=2000:

- Обменник с комиссией 0.1% от суммы обмена принес  3,767.50 USDC;
- Обменник с комиссией 0.3% от суммы обмена, пример Uniswap,принес 10,500.00 USDC;
- Обменник с комиссией 0.1% от суммы обмена плюс плавающий спред, принес 271,267.50 USDC;

Вот и сравните сами результаты, но самое главное не это. Данный обменик, как бы диверсифицирует наш доход, он позволяет комиссией зарабатывать на объеме, а вот спредом уже зарабатывать на разнице цен при больших раздвижках.

Jump to: