در اینجا ، ما می خواهیم این موارد را به صورت دستی محاسبه کنیم ، اما در یک فصل بعدی ، یک قرارداد این کار را برای ما انجام می دهد. بیایید با یک محدوده قیمت شروع کنیم.
محاسبه دامنه قیمت #
به یاد بیاورید که ، در UNISWAP V3 ، کل محدوده قیمت در کنه ها مشخص می شود: هر کنه با یک قیمت مطابقت دارد و دارای یک شاخص است. در اولین اجرای استخر ما ، ما قصد داریم ETH را برای USDC با قیمت 5000 دلار در هر ETH خریداری کنیم. خرید ETH مقداری از آن را از استخر خارج می کند و قیمت آن را کمی بالاتر از 5000 دلار فشار می دهد. ما می خواهیم نقدینگی را در محدوده ارائه دهیم که شامل این قیمت باشد. و ما می خواهیم مطمئن باشیم که قیمت نهایی در این محدوده باقی خواهد ماند (ما در یک نقطه عطف بعدی مبادله های چند برد را انجام خواهیم داد).
ما باید سه کنه پیدا کنیم:
- کنه فعلی با قیمت فعلی (5000 USDC برای 1 ETH) مطابقت دارد.
- مرزهای پایین و بالایی از محدوده قیمت که نقدینگی را در آن فراهم می کنیم. بگذارید قیمت پایین تر 4545 دلار و قیمت بالایی 5500 دلار باشد.
از مقدمه نظری ما می دانیم که:
از آنجا که ما توافق کرده ایم که از ETH به عنوان ذخیره X $ $ و USDC به عنوان ذخیره $ $ $ استفاده کنیم ، قیمت هر یک از کنه ها عبارتند از:
جایی که $ p_c $ قیمت فعلی است ، $ p_l $ پایین تر از محدوده است ، $ p_u $ محدوده بالایی از محدوده است.
اکنون می توانیم کنه های مربوطه را پیدا کنیم. ما می دانیم که قیمت ها و کنه ها از طریق این فرمول به هم وصل می شوند:
بنابراین ، ما می توانیم $ I $ $ را از طریق پیدا کنیم:
ریشه های مربع در این فرمول لغو می شود ، اما از آنجا که ما با $ sqrt کار می کنیم
$ ما باید آنها را حفظ کنیم.
بیایید کنه ها را پیدا کنیم:
- Current tick: $i_c = log_>70. 71 = 85176 $
- Lower tick: $i_l = log_>67. 42 = 84222 $
- Upper tick: $i_u = log_>74. 16 = 86129 $
برای محاسبه این موارد ، من از پایتون استفاده کردم:
وارد كردنریاضی دنباله Price_to_tick(پ): برگشتریاضی.کف (ریاضی.ورود به سیستم (P ،1. 0001)) Price_to_tick (5000) > 85176
این برای محاسبه دامنه قیمت است!
آخرین نکته در اینجا این است که UNISWAP از شماره Q64. 96 برای ذخیره $ sqrt $ استفاده می کند. این یک عدد نقطه ثابت است که 64 بیت برای قسمت عدد صحیح و 96 بیت برای قسمت کسری دارد. در محاسبات فوق ، قیمت ها شماره های نقطه شناور هستند: 70. 71 ، 67. 42 ، 74. 16. ما باید آنها را به Q64. 96 تبدیل کنیم. خوشبختانه ، این ساده است: ما باید اعداد را 2^$ $ ضرب کنیم (q-number یک شماره ثابت باینری است ، بنابراین باید اعداد اعشار خود را با پایه Q64. 96 ضرب کنیم ، که 2^$ است). میگیریمش:
Q96= 2**96 دنباله Price_to_sqrtp(پ): برگشتint (ریاضی.SQRT (P)*Q96) price_to_sqrtp (5000) > 5602277097478614198912276234240
توجه کنید که ما قبل از تبدیل به عدد صحیح ضرب می کنیم. در غیر این صورت ، ما دقت را از دست خواهیم داد.
محاسبه مقدار توکن #
قدم بعدی تصمیم گیری در مورد چند نشانه ما می خواهیم به استخر واریز کنیم. پاسخ این است: به همان اندازه که می خواهیم. مبالغ کاملاً تعریف نشده است ، ما می توانیم به همان اندازه که برای خرید مقدار کمی از ETH بدون ایجاد قیمت فعلی ، واریز می کنیم ، واریز می کنیم و محدوده قیمت فعلی را که نقدینگی را در آن قرار داده ایم ، واریز می کنیم. در طول توسعه و آزمایش ، ما قادر خواهیم بود تا هر مقدار نشانه را نعناع کنیم ، بنابراین دریافت مبالغ مورد نظر ما مشکلی نیست.
برای اولین تعویض ما ، اجازه دهید 1 ETH و 5000 USDC را واریز کنیم.
به یاد بیاورید که نسبت ذخایر استخر فعلی قیمت نقطه فعلی را نشان می دهد. بنابراین اگر می خواهیم نشانه های بیشتری را در استخر قرار دهیم و همان قیمت را حفظ کنیم ، مبالغ باید متناسب باشد ، به عنوان مثال: 2 ETH و 10،000 USDC. 10 ETH و 50،000 USDC و غیره
محاسبه مبلغ نقدینگی #
در مرحله بعد ، ما باید $ L $ را بر اساس مبالغی که واریز می کنیم محاسبه کنیم. این یک قسمت دشوار است ، بنابراین محکم نگه دارید!
از مقدمه نظری ، به یاد دارید که: $ $ l = sqrt $ $
با این حال ، این فرمول برای منحنی نامحدود است فارکس پرشین...
ما را در سایت فارکس پرشین دنبال می کنید
برچسب :
نویسنده : الیزابت امینی
بازدید : <-PostHit->
تاريخ : شنبه
21 مرداد
1402 ساعت: 20:05