Ticarət təcrübəsi
Swap zamanı slippage neçə faiz olmalıdır? Price impact və minimum received hesabı
DEX təsdiq səhifəsindəki price impact, slippage tolerance və minimum received nə deməkdir? Açıq mübadilə müqaviləsinin düsturu ilə üçünü hesablayır, göndərmədən əvvəl ayarları, icradan sonra yoxlamanı və INSUFFICIENT_OUTPUT_AMOUNT kimi xətaları izah edirik.
DEX-də və ya cüzdanın daxili mübadilə (swap) bölməsində təsdiq düyməsini basmazdan əvvəl ekranda adətən üç rəqəm görünür: Price Impact, Slippage Tolerance və Minimum Received. Bəziləri slippage-i 5%-ə qaldıranda əməliyyat nəhayət keçir, amma gözlədiyindən xeyli az token alır. Bəzilərində isə əməliyyat dəfələrlə uğursuz olur, şəbəkə haqqı isə hər dəfə tutulur. Bu yazıda açıq mənbəli bir mübadilə müqaviləsinin kodu ilə bu üç rəqəmin necə hesablandığını, bir-biri ilə əlaqəsini və göndərməzdən əvvəl nəyi yoxlamaq lazım olduğunu göstəririk.
Bu yazı kimin üçündür və nə lazımdır
Mərkəzləşdirilməmiş birjada (DEX) və ya cüzdan daxilindəki swap funksiyasında token dəyişən, təsdiq səhifəsini oxuya bilən, amma slippage-i neçə faiz qoymağı bilməyən oxucular üçün.
Başlamazdan əvvəl:
- öz açarlarınıza nəzarət etdiyiniz cüzdan və şəbəkə haqqı üçün bir az əsas token (məsələn, ETH);
- mübadilə edəcəyiniz cütlük; swap səhifəsində «Expected output», «Minimum received», «Price impact» kimi sahələr görünməlidir;
- itirsəniz problem olmayacaq kiçik məbləğ: ilk dəfə prosesi kiçik məbləğlə sınayın.
Üç rəqəm: hər biri nəyi göstərir
| Sahə | Mənası | Nədən asılıdır |
|---|---|---|
| Price impact | Sizin bu əməliyyatınızın hovuzdakı qiyməti nə qədər yerindən oynatdığı | Məbləğin hovuzun ölçüsünə nisbəti; göndərməzdən əvvəl hesablanır |
| Slippage tolerance | Kotirovka ilə blokda icra arasında nəticənin ən çox nə qədər pisləşməsinə razı olduğunuz | Özünüz təyin edirsiniz |
| Minimum received | Kotirovka × (1 − slippage); nəticə bundan az olsa, əməliyyat ləğv olunur | Əvvəlki ikisindən hesablanır |
Əsas fikir: price impact əməliyyatın qiymətidir, slippage tolerance isə qoruyucu sərhəddir. Slippage-i artırmaq price impact-i azaltmır, sadəcə daha pis nəticənin də keçməsinə icazə verir.
Price impact necə hesablanır: açıq kodla yoxlayırıq
AMM (avtomatik market-meyker) hovuzlarının çoxu «sabit hasil» qaydası ilə işləyir: hovuzdakı iki aktivin miqdarlarının hasili sabit qalır, yəni x · y = k. Hovuza bir tokendən nə qədər çox qoysanız, qarşılığında hər vahid üçün o qədər az alırsınız.

Şəkildə Uniswap v2-nin açıq kitabxanasında «nə qədər versəm, nə qədər alaram» sualını hesablayan funksiya görünür. Düstur şəklində:
Alınan miqdar = (giriş × 997 × qarşı aktivin ehtiyatı) ÷ (giriş aktivinin ehtiyatı × 1000 + giriş × 997)
Burada 997/1000 0.3% mübadilə haqqının çıxılmasıdır. Başqa protokolların haqqı və əyrisi fərqli ola bilər, amma «məbləğ hovuza nisbətən böyüdükcə qiymət pisləşir» qaydası eynidir.
Nümunə: eyni hovuzda 1 və 10 ETH satmaq
Fərz edək ki, hovuzda 100 ETH və 300,000 USDC var, orta qiymət 1 ETH = 3,000 USDC. Rəqəmlər yalnız nümunədir, real hovuzu göstərmir:
| Satış | Alınan USDC | Orta qiymət | Orta qiymətdən fərq |
|---|---|---|---|
| 1 ETH | 2,961.47 | 2,961.47 | təxminən 1.28% (bunun 0.3%-i haqdır) |
| 10 ETH | 27,198.33 | 2,719.83 | təxminən 9.34% |
Haqqı nəzərə almasaq, sabit hasil hovuzunda price impact təxminən «satılan miqdar ÷ (hovuzdakı həmin aktiv + satılan miqdar)» olur: 1 ETH üçün 1/101 ≈ 0.99%, 10 ETH üçün 10/110 ≈ 9.09%. Məbləğ 10 dəfə artanda price impact təxminən 9 dəfə artır. Kiçik hovuzda böyük sifarişin baha başa gəlməsinin səbəbi budur.
Qeyd: müxtəlif interfeyslər «price impact»-i fərqli hesablayır. Bəziləri haqqı daxil edir, bəziləri yalnız hovuz qiymətinin dəyişməsini göstərir, bəziləri bir neçə hovuzdan keçən marşrutu birlikdə hesablayır. İstifadə etdiyiniz səhifənin izahına baxın və bu rəqəmi həmişə «Minimum received» ilə birlikdə oxuyun.
Slippage tolerance və minimum received necə hesablanır
Kotirovka göndərmədən əvvəlki hovuz vəziyyətinə görə hesablanır. Əməliyyatınız bloka düşənə qədər başqalarının əməliyyatları hovuzu dəyişə bilər, ona görə icra nəticəsi kotirovkadan fərqlənə bilər. Slippage tolerance razı olduğunuz maksimal fərqdir.

Uniswap v2-nin rəsmi sənədi bunu açıq yazır: interfeys müşahidə olunan qiymətə görə miqdarları hesablayır, router müqaviləsi isə nəticənin həmin qiymətdən «x%-dən çox pis olmayacağına» zəmanət verir; x istifadəçinin seçdiyi slippage tolerance-dır, sənəddəki standart dəyər 0.5%-dir. Eyni səhifədə qeyd olunur ki, belə alt sərhəd qoyulmadan cari ehtiyatlara görə icra edilən əməliyyat qabaqlayıcı əməliyyatlara (front-running) qarşı həssasdır.
Nümunəyə qayıdaq: kotirovka 2,961.47 USDC, slippage 0.5%:
Minimum received = 2,961.47 × (1 − 0.005) ≈ 2,946.67 USDC
İcra zamanı alınacaq məbləğ 2,946.67-dən azdırsa, müqavilə bütün əməliyyatı geri qaytarır. Router kodunda bu yoxlamanın xəta mesajı belədir: UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT. Slippage-i 1% etsəniz, minimum təxminən 2,931.86 olur, yəni təxminən 15 USDC əlavə pisləşməyə razılaşırsınız.
Swap-ı göndərməzdən əvvəl ayarlar
- Məbləği yazın və əvvəlcə price impact-ə baxın. Göstərici gözə çarpacaq qədər yüksəkdirsə (məsələn, 1%-dən çox), dayanın: məbləği hissələrə bölün, likvidliyi daha dərin cütlük seçin və ya marşrutun az tanınan hovuzdan keçib-keçmədiyini yoxlayın.
- Standart və ya aşağı slippage ilə başlayın. Likvid, populyar cütlüklərdə adətən onu artırmağa ehtiyac olmur.
- «Minimum received»-i qəbul edə bilib-bilmədiyinizə qərar verin. Bu rəqəmi ən pis nəticə kimi qiymətləndirin, «Expected output»-u yox.
- Son müddəti (deadline) yoxlayın. Bəzi interfeyslərdə vaxt limiti var; müddət keçəndə router
UniswapV2Router: EXPIREDxətası ilə əməliyyatı rədd edir ki, uzun gözləmədən sonra köhnəlmiş qiymətlə icra olunmasın. - Cüzdanda açılan imza pəncərəsini oxuyun. Token, miqdar və hədəf müqavilə swap səhifəsi ilə uyğun olmalıdır. Şəbəkə haqqının necə hesablandığını Gas və şəbəkə komissiyası necə hesablanır yazısında izah etmişik.
- Tanımadığınız tokeni ilk dəfə alırsınızsa, kiçik məbləğlə yoxlayın: həm alına, həm də geri satıla bildiyinə əmin olun.
İcradan sonra nəticəni necə yoxlamaq
- Əməliyyatı blok kəşfiyyatçısında açın və statusun Fail/Reverted yox, Success olduğunu təsdiqləyin.
- Cüzdana daxil olan token miqdarına baxın və orta qiyməti hesablayın: verilən miqdar ÷ alınan miqdar (və ya əksinə).
- Faktiki alınanı «Expected output» və «Minimum received» ilə müqayisə edin: ikisinin arasındadırsa normaldır. Gözləniləndən çox da ola bilər, bu, qiymətin sizin xeyrinizə dəyişdiyini göstərir.
- Mübadilə haqqını və şəbəkə haqqını da qeyd edin. Bütün xərcləri necə ayırmaq olar, ticarət xərcləri: haqq, spread, slippage və zəncir xərcləri yazısına baxın.
Tez-tez rast gəlinən problemlər
| Vəziyyət | Ehtimal olunan səbəb | Nə etməli |
|---|---|---|
Əməliyyat uğursuz oldu, xətada INSUFFICIENT_OUTPUT_AMOUNT var, gas tutulub |
Göndərdikdən sonra qiymət slippage həddindən çox dəyişib | Yeni kotirovka alıb yenidən göndərin; səbəbi anlayandan sonra slippage-i bir az artırın, birbaşa 5%-ə və yuxarı qaldırmayın |
Əməliyyat uğursuz oldu, xətada EXPIRED var |
Əməliyyat çox gözləyib, son müddət keçib | Yeni kotirovka alın, lazım olsa şəbəkə haqqını artırın ki, əməliyyat tez bloka düşsün |
| Müəyyən token həmişə uğursuz olur, yalnız slippage artırılanda keçir | Token köçürmə zamanı vergi tutur və ya başqa məhdudiyyəti var, faktiki daxil olan kotirovkadan azdır | Əvvəlcə tokenin qaydalarını öyrənin; slippage-i artırmaq yalnız daha çox tutulmanın da keçməsinə icazə verir |
| Əməliyyat uğurlu oldu, amma gözləniləndən xeyli az alındı | Slippage çox yüksək qoyulub, icra ən pis hədd yaxınlığında olub | Növbəti dəfə «Minimum received»-ə görə ayarlayın ki, qabaqlayıcı əməliyyatlara (MEV) yer qalmasın |
| Price impact çox yüksək göstərilir | Hovuz kiçikdir və ya marşrut likvidliyi zəif hovuzdan keçir | Məbləği bölün, cütlüyü dəyişin və ya order kitabı olan birjadan istifadə edin; sifariş növlərinin fərqi bazar, limit və stop sifariş yazısındadır |
Risk sərhədləri
- Slippage-i artırmaq əməliyyatı ucuzlaşdırmır, sadəcə daha pis nəticənin də icra olunmasına imkan verir. Hədd nə qədər yüksəkdirsə, qabaqlayıcı əməliyyatlar üçün bir o qədər çox yer qalır.
- Price impact yüksək olan hovuzda sonradan satmaq da çətin olacaq.
- Burada Uniswap v2-nin açıq düsturu göstərilib; digər protokollarda haqq, əyri və kotirovka üsulu fərqlidir, istifadə etdiyiniz interfeys və müqavilə əsas götürülməlidir.
- Yazı yalnız mexanizmi izah edir, investisiya tövsiyəsi deyil.
Suallar və cavablar
Slippage 0.5% olsa, itki də ən çox 0.5% olacaq? Xeyr. 0.5% yalnız kotirovkadan sonrakı əlavə pisləşmənin həddidir. Price impact və mübadilə haqqı kotirovkaya artıq daxildir.
Price impact və slippage eyni şeydir? Xeyr. Price impact sizin öz əməliyyatınızın yaratdığı təsirdir və göndərməzdən əvvəl hesablanır. Slippage kotirovka ilə icra arasında bazarın dəyişməsindən yaranan fərqdir.
Əməliyyat uğursuz olub, niyə gas tutulub? Əməliyyat bloka düşüb və müqavilə yoxlama addımına qədər icra olunub, sonra ləğv edilib. Validatorun gördüyü iş yenə ödənilir, sadəcə tokenləriniz dəyişdirilmir.
Stablecoin-lər arasında (məsələn, USDC-dən USDT-yə) mübadilədə də slippage-ə baxmaq lazımdır? Bəli. Dərin stablecoin hovuzlarında price impact adətən çox kiçikdir, amma az istifadə olunan şəbəkələrdəki kiçik hovuzlarda qiymət yenə də fərqlənə bilər.
Rəsmi və ilkin mənbələr
- Uniswap v2-periphery kodu,
UniswapV2Library.sol(getAmountOutdüsturu, şəklin mənbəyi): github.com/Uniswap/v2-periphery - Uniswap v2-periphery kodu,
UniswapV2Router02.sol(INSUFFICIENT_OUTPUT_AMOUNTvəEXPIREDyoxlamaları): github.com/Uniswap/v2-periphery - Uniswap v2 Pricing rəsmi sənədi (slippage tolerance və standart 0.5%, şəklin mənbəyi): developers.uniswap.org/docs/protocols/v2/concepts/pricing
Bu sənədlər ümumi mexanizmin ilkin mənbəyi kimi bir protokol nümunəsində verilib; protokollar və interfeyslər arasında fərq var, istifadə etdiyiniz platformanın izahını əsas götürün.
