Botų mūšis: kaip rinkos formuotojai kovoja su juo kriptovaliutų biržoje

Per mėnesius nuo 2017 m. Gruodžio mėn. Iki 2018 m. Kovo mėn. Aš sukūriau robotą, kuris įvykdė maždaug 50 mln. USD vertės kriptovaliutų rinkos sudarymo sandorius. Tai pasakojimas apie tai, kaip aš įsitraukiau į rinkos kūrimą, apie roboto algoritmų teoriją ir apie konkurenciją, išaugusią tarp rinkos formuotojų.

FOMO

Tai yra 2017 m. Lapkričio mėn. - „Bitcoin“ kaina sparčiai kyla link 10 000 USD ribos. Dėl eksponentinio kainų kilimo kiekvieną savaitę ji vis labiau įsisąmonina, pritraukia dar daugiau investuotojų ir dar labiau padidina kainą.

Šiuo metu atostogauju su dviem draugais. Abu šie draugai buvo investavę nemažas sumas savo pinigų į „Bitcoin“ ir pelnėsi iš kylančios kainos. Būdamas vienintelis iš trijų, kuris anksčiau net negalvojo apie investavimą, jaučiuosi praleidęs.

Grįžęs namo iš kelionių, vienas iš pirmųjų dalykų, kuriuos darau, yra internetinė kriptovaliutos keitykla ir 500 USD pervedama į sąskaitą. Norėdamas važiuoti banga, mano planas yra paprastas: nusipirk 500 USD vertės „Bitcoin“ ir padidink savo investicijas, jei matysiu grąžą.

Skleidžiasi

Prieš imdamasis savo 500 USD vertės paskatos, aš pastebiu kažką keisto; birža, kuria prekiavau, yra labai „išplitusi“. Norėdami suprasti, kas yra skirtumas ir kodėl tai yra reikšminga, turime peržvelgti keletą pagrindų, kaip veikia mainai.

Paprastai, kai galvojame apie biržoje prekiaujamą turtą, pavyzdžiui, vertybinius popierius, mes manome, kad jis turi fiksuotą kainą, kurią galime nusipirkti ar parduoti. Pavyzdžiui, mes galime galvoti apie „Apple“ (AAPL) akcijas, kurių kaina yra 100 USD. Iš tikrųjų nėra vienos kainos, tačiau yra dvi skirtingos kainos:

  • Pasiūlymo kaina. Tai yra maksimali suma, kurią bet kuris biržoje nori sumokėti už turtą.
  • Klauskite kainos. Tai yra minimali suma, už kurią kiekvienas biržoje nori parduoti turtą.

Daugelis pirkėjų yra pasirengę mokėti mažiau nei pardavėjai nori parduoti, todėl turto siūloma kaina visada bus mažesnė už kainą.

„Apple“ akcijų atveju šios dvi kainos greičiausiai yra labai artimos viena kitai. Siūloma kaina gali būti 99,99 USD, o prašoma kaina - 100,01 USD. Šių dviejų skaičių skirtumas (0,02 USD) yra tai, ką mes vadiname kainų skirtumu.

Tokių populiarių stabilių akcijų kaip „Apple“ skirtumas yra nedidelis. Taip yra todėl, kad visada yra daug žmonių, norinčių pirkti akcijas, dėl ko padidėja pasiūlymo kaina, ir daugybė norinčių parduoti, dėl kurių pardavimo kaina sumažėja. Pirkėjų ir pardavėjų konkurencija verčia siūlyti ir paklausti kainų arti viena kitos.

Kai aš pirmą kartą pradėjau ieškoti „Bitcoin“ mainų, kainų skirtumai buvo daug didesni, dažnai iki 100 USD. „Bitcoin“ per tą laiką prekiavo maždaug 10 000 USD, tai reiškia, kad jo plitimas galėjo būti iki 1% visos jo vertės (palyginti su tik 0,02% „Apple“ pavyzdyje).

Skolos mastas „Bitcoin“ buvo rinkos chaoso, kuris atsirado 2017 m. Gruodžio mėn., Pasekmė. Į rinką plūstelėjo mažmeniniai investuotojai - jūs, aš, paprastas gatvės žmogus. Dėl to kainos buvo tokios nestabilios, kad kainų skirtumai niekada negalėjo stabilizuotis.

Dideli kainų skirtumai gali atrodyti kaip blogas dalykas ir tam tikru mastu yra, tačiau jie taip pat suteikia galimybę pasipelnyti.

Tarkime, kad „Bitcoin“ siūloma kaina yra 9 900 USD, o prašoma kaina - 10 000 USD, suteikiant jai 100 USD skirtumą. Jei galite nusipirkti 1 bitcoin už 9 900 USD ir iš karto parduoti po 10 000 USD, jūs tiesiog uždirbate 100 USD.

Makeriai ir takeriai

Jei manote, kad tai skamba pernelyg gerai, kad būtų tiesa, tada jūs teisus. Viena iš priežasčių, dėl kurių jūs galite skeptiškai vertinti tai, kyla iš klausimo: o kaip dėl keitimo mokesčių? Norėdami pamatyti, kaip mokesčiai dera prie to, turime dar kartą šiek tiek apsilankyti, kaip veikia mainai.

Tarkime, kad norite nusipirkti bitcoin, kuris prekiauja 9,900 USD pasiūlymo kaina ir 10 000 USD prašymo kaina. Iš esmės tai galima padaryti dviem būdais:

Pirmiausia galėtumėte pateikti gamintojo užsakymą. Čia jūs nurodote kainą bet kurioje vietoje iki prašomos kainos - taigi nuo 0 USD iki 10 000 USD - ir kiekį, kurį norite pirkti. Jūsų užsakymas sėdi biržoje, kol kažkas ateina kartu ir nusprendžia priimti jus ta tvarka. Tai gali nutikti po milisekundžių ar dienų vėliau, atsižvelgiant į tai, kokia yra jūsų kaina, ir biržos apimtį.

Arba galite pateikti užsakymą gavėjui. Tai yra visiškai priešinga gamintojo užsakymui ir leis jums iškart nusipirkti bitcoin. Tačiau laimėjimas yra tas, kad jūsų užsakymas yra suderinamas su mažiausiomis kainomis iš visų pardavėjų užsakymų. Natūralu, kad tai bus už kainą, nes tai yra mažiausia kaina, kurią visi nori parduoti.

Prieš eidami į priekį, turime atkreipti dėmesį į keletą svarbių dalykų, susijusių su gamintojo ir gavėjo užsakymais:

  1. Kai tik bus parduodamas ar perkamas bitkoinas, jame dalyvaus vienas gamintojas ir vienas gavėjas. Negalite prekiauti su dviem gamintojais ar dviem dalyviais.
  2. Jei nuspręsite eiti gamintojo keliu, turėsite pasiūlyti kainą, lygią ar didesnę už pasiūlymo kainą, kad pardavėjui būtų gera galimybė išspręsti jūsų užsakymą.
  3. Galiausiai gamintojo užsakymai prideda tai, ką mes vadiname likvidumu, į rinką; jie suteikia daugiau galimybių kitiems biržoje pirkti ir parduoti. Jų vardas kilęs iš to, kad jie daro likvidumą. Priešingai, pavedimų gavėjai pašalina likvidumą iš rinkos, nes jie pašalina gamintojo pavedimus iš biržos.

Šis paskutinis punktas yra labai svarbus, nes jis padeda paaiškinti mokesčių struktūrą, kurią turi dauguma biržų. Kadangi biržos nori maksimaliai padidinti likvidumą, paprastai už pirkėjų pavedimus imami didesni mokesčiai nei už gamintojo pavedimus. Kai kurie mainai, įskaitant tuos, kuriais aš naudojauosi, imami tik imtuvo mokesčiai: už gamintojo užsakymus yra 0% mokesčio.

Grįžkime prie ankstesnio mūsų pavyzdžio. Jei mes galime nusipirkti „Bitcoin“ už 9 900 USD ir parduoti už 10 000 USD, naudodamiesi vien gamintojo užsakymais, tada turime 100 USD gryno pelno už kiekvieną „Bitcoin“, kurį pervedame.

Poreikis naudoti gamintojo užsakymus yra ne tik mokesčių išvengimas, bet taip pat ir dėl to, kad jei pirkome pasinaudoję užsakymo gavėju, turėtume sumokėti prašomą kainą - 10 000 USD. Jei tada parduotume pasinaudoję užsakymu, turėtume parduoti už pasiūlytą kainą - 9 900 USD - prarasdami 100 USD.

Taigi, naudodamiesi gamintojo užsakymais, mes gana daug galime garantuoti pelną pirkdami už siūlomą kainą ir parduodami už kainą. Tačiau yra viena paskutinė problema, kuri pateikė didžiausią iššūkį sukurti algoritmą, kuris galėtų tai padaryti programiškai.

Kaip jau kalbėjome anksčiau, gamintojo užsakymui reikalingas gavėjo nurodymas, kad jis galėtų ateiti ir „pasiimti“, kad įvyktų prekyba. „Taker“ užsakymai visada „paims“ geriausią kainą. Jei norite nusipirkti „Bitcoin“ per gamintojo užsakymą, tada, kad pirkėjų užsakymai atitiktų jūsų užsakymą, turėsite pasiūlyti kainą, didesnę už pasiūlymo kainą. Nesvarbu, kiek viršija jūsų siūloma kainos kaina, ji gali būti tik viena cento suma, pvz. 9 900,01 USD.

Taigi pirmas rinkos formavimo boto rašymo žingsnis yra galimybė pateikti pirkimo (gamintojo) užsakymus šiek tiek virš dabartinės siūlomos kainos. Tam reikia vienos API užklausos, kad būtų patikrinta pasiūlymo kaina, o kitos - norint pateikti jūsų užsakymą.

Teoriškai būtų gerai, jei pasiūlymas būtų tik vienu centu didesnis už pasiūlymo kainą. Tačiau praktiškai per laiką nuo pasiūlymo kainos tikrinimo iki užsakymo pateikimo pasiūlymo kaina dažnai pasikeis. Norint įsitikinti, kad jūsų užsakymas yra didesnis už visus kitus pirkimo užsakymus ir taip nustatoma nauja pasiūlymo kaina, dažnai patariama siūlyti 5–10 ¢ didesnę kainą nei dabartinė pasiūlymo kaina.

Tai užtikrins, kad, jei pateksite (gavėjo) pardavimo užsakymą, jis bus suderintas su mūsų (gamintojo) pirkimo užsakymu ir mes nusipirkome vis tiek daug „Bitcoin“, neprarasdami mokesčių.

Tada pardavimo vietoje galime padaryti visiškai priešingai, nei ką tik padarėme. Mes tikriname esamą paklausiamą kainą ir siūlome keletą centų žemiau kainos. Tai užtikrins, kad jei patektų (gavėjo) pirkimo užsakymas, jis atitiktų mūsų (gamintojo) pardavimo užsakymą.

Mes ką tik uždirbsime tvarkingą pelną, apytiksliai lygų kainų skirtumui (siūlomos ir prašomos kainos skirtumui), padaugintam iš to, kiek bitcoin galėjome parduoti.

Varzybos

Jei vis dar galvojate, kad tai yra per lengva, kad būtų tiesa, tada vis tiek teisus. Kai yra akivaizdi pelno galimybė, prekybininkai kaupiasi ir tai sukuria konkurenciją. Akivaizdžiausias to pavyzdys yra žvilgsnis į rinkos formuotojų sukurtą konkurenciją, siūlančią tarpusavyje pasiūlymo kainą. (Atminkite, kad norint įvykdyti sandorį turite įsigyti pirkimo užsakymą pagal pasiūlymo kainą, kitą kartą pateikus pardavėjo pavedimą)

2017 m. Gruodžio mėn. Konkurencija buvo tokia intensyvi, kad pasiūlymo kaina paprastai pasikeis kelis kartus per sekundę. Dažnai jis padidėtų tik vienu ar dviem centais, nes prekybininkai tarpusavyje kovojo, kad kuo daugiau laiko nustatytų pasiūlymo kainą, kartu norėdami pasiūlyti kuo mažesnę kainą.

Iš pradžių mano botas pasirinko patikrinti siūlomą kainą ir pasiūlyti 1 ¢ didesnę kainą. Protinga, kaip atrodė pirmoji, ir sužinojau, kad įvykdžius mano užsakymą, aš dažnai būčiau keli centai mažesnė už (nuolat kintančią) pasiūlymo kainą.

Siekdamas apeiti tai ir įsitikinti, kad kuo daugiau mano užsakymų viršys dabartinę pasiūlymo kainą, išmatuojau, kiek paprastai pasiūlymo kaina keistųsi kas 100 ms. Tai leido mano botui pasiūlyti pakankamai didelę kainą (~ 5 ¢ didesnė), kad kiti prekybininkai neperpultų mano kainos, nes mano užsakymas buvo apdorotas.

Aš taip pat pradėjau svarstyti, kaip skirtumas tarp akcijų paketo paveiktų tai, kiek aš buvau pasirengęs pasiūlyti už dabartinę pasiūlymo kainą. Kaip matėme anksčiau, bet kurios prekybos pelnas yra tiesiogiai proporcingas skirtumo dydžiui. Dėl to buvo dar svarbiau įveikti pasiūlymo kainą, kai skirtumas buvo didelis. Dėl šios priežasties aš parašiau formulę, kuri, atsižvelgiant į kainų skirtumą, taip pat pakito, kiek didesnę už siūlomą kainą.

Iki šiol daugiausia kalbėjau apie rinkos formavimo pirkimo aspektą, tačiau pardavimas vyksta lygiai taip pat. Kai tik nusipirkote savo „Bitcoin“, turite jį iškrauti už (didesnę) paklausimo kainą. Dėl paklausos kainos bus konkurencija, kaip ir dėl siūlomos kainos, todėl turite priversti priversti konkurentus pasiūlyti pardavimo kainą, kuri yra keliais centais mažesnė už dabartinę prašomą kainą.

Tačiau 2017 m. Pabaigoje – 2018 m. Pradžioje paprastai buvo kur kas mažesnė konkurencija dėl prašomos kainos. Aš tuo metu dariau prielaidą, kad taip yra todėl, kad „Bitcoin“ yra didesnė paklausa nei pasiūla, paaiškindama, kodėl tarp pirkėjų yra didesnė konkurencija nei pardavėjų.

Manipuliacija rinkoje

Manipuliavimas rinka reiškia įvairias piktybines taktikas, kuriomis prekybininkai naudojasi rinkose siekdami įgyti nesąžiningą pranašumą. Kaip nereguliuojama rinka, kriptovaliutų biržos buvo (ir tebėra) subrendusios manipuliuoti rinka. Dažniausia manipuliavimo forma buvo vadinama apgaulė, pavedimų pateikimas paprasčiausiai siekiant pakeisti rinkos sąlygų išvaizdą.

Norėdami pateikti pavyzdį, kaip tai veikia, apsvarstykite ankstesnį pavyzdį su 9 900 USD pasiūlymo kaina ir 10 000 USD prašoma kaina. Mūsų pasiskirstymas čia yra 100 USD, o tai suteikia gerą galimybę parduoti. Tačiau jei kas nors ateina kartu ir pateikia pirkimo pavedimą, kurio kaina yra 9999,99 USD, tada kainų skirtumas sumažėja iki 1 ¢. Esant tokiam nedideliam kainų skirtumui, neįmanoma pasipelnyti iš rinkos kūrimo, o visa veikla sustoja.

Pirkėjas, pateikiantis gamintojo užsakymą 1 ¢ žemiau už kainą, pats savaime nėra manipuliavimas rinka. Tiesą sakant, jei jūsų birža neapmokestina gamintojo mokesčių, tai yra greitas ir efektyvus būdas įsigyti „Bitcoin“. Tačiau problema buvo ta, kad kai tik pasirodys šie pirkimo užsakymai, jie paprastai bus už mažiausią įmanomą sumą; 0.00001 Bitcoin, kurio vertė maždaug 10 ¢.

Priežastis, kodėl kitas rinkos formuotojas gali pateikti tokį nedidelį pirkimo pavedimą tiesiai žemiau pardavimo kainos, yra genialumas. Jei kitas rinkos formuotojas ką tik sugebėjo nusipirkti „Bitcoin“ už pasiūlytą kainą, tada jie turi paskatinimą kuo greičiau jį parduoti už parduodamą kainą. Kuo ilgiau jiems reikia parduoti savo „Bitcoin“, tuo didesnė rizika, kad paklausimo kaina (taigi ir kainų sklaida) bus perkelta, o pelnas gali skirtis.

Žinoma, jūs galite sakyti, kad šiuo metu yra tiek pat šansų, kad kaina kils, kaip ir ji. Tačiau rinkos formuotojui tai nerūpi; jų darbas nėra spėlioti dėl kainos, tai yra kuo greičiau patekti ir išeiti.

Siekdamas sustabdyti kainos kritimą ir sustabdyti konkurenciją pardavimo pusėje, kad pastūmimo kaina nenukristų, rinkos formuotojas pateikia savo pardavimo užsakymą šiek tiek žemiau pardavimo kainos ir įterpia („suklastotą“) pirkimo užsakymą šiek tiek žemiau naujojo. paklausti kainos. Pastarasis užsakymas bus kiek įmanoma mažesnis (0,00001 Bitcoin).

Tai turi du padarinius:

  1. Joks kitas pardavėjas negali įveikti pardavėjo prašomos kainos. Jei jūs einate 1 ¢ žemiau už siūlomą kainą, esate už siūlomą kainą, o mainai neleidžia pardavėjams pateikti gamintojo užsakymų už mažesnę arba mažesnę nei siūloma kaina.
  2. Tai sumažina tik 1 ¢. Kai prekybos botai pastebės tokį mažą kainų skirtumą, greičiausiai jis laikinai išsijungs, nes nėra jokio pelno.

Šis antrasis punktas yra labai svarbus, nes paaiškina, kodėl beveik visi rinkos formavimo botai išsijungia, kai apgaulingas pirkimo užsakymas yra šiek tiek mažesnis už pardavimo kainą. Tačiau iš tikrųjų, nors skirtumas atrodo tik 1 ¢, vis tiek yra galimybė būti.

Tarkime, kad kito pardavėjo užsakymas pateikiamas už 1 „Bitcoin“. Pirmasis 0,00001 „Bitcoin“ bus parduotas rinkos formuotojui suklastotu pavedimu, išimant tą pavedimą iš biržos. Kitas 0.99999 „Bitcoin“ bus parduotas pagal užsakymą pagal naują pasiūlymo kainą - aukščiausią kainą už žemiau sugadintą užsakymą.

Vienas didžiausių mano roboto patobulinimų buvo leisti ignoruoti apgaulingus pavedimus apskaičiuojant skirtumą. Nepaisant to, kad prašoma kaina gali būti tik 1 ¢ didesnė už pasiūlytą kainą, mano robotas atrodytų kaip buvę suklastoti užsakymai, norėdami sužinoti, koks skirtumas būtų, jei ne suklastotų užsakymų (kurie vis tiek gali būti 50–100 USD). Jei šis skirtumas būtų pakankamai didelis, kad būtų galimybė, jis varžysis pateikdamas aukščiausią pirkimo užsakymą po bet kurio apgaulingo užsakymo. Kai atsirado pardavėjų užsakymai, tai reiškė, kad kelių centų vertės „Bitcoin“ bus parduotas sukčiams, o likusi dalis - man.

2018 metai

Pirmieji keli 2018 m. Mėnesiai buvo neramūs. Gruodžio mėn. Padidėjus „Bitcoin“ iki 20 tūkst. USD, ratai pradėjo dygti, o kaina greitai krito.

Nors investuotojams tai buvo blogai, rinkos formuotojams tai suteikė didžiulę galimybę. Didelis pirkimo ir pardavimo apimtys (o tai reiškė, kad ateina daugiau pirkėjų užsakymų) smarkiai padidino sandorių per dieną skaičių, kurį efektyvus rinkos formuotojas galėjo įvykdyti.

Tačiau šis laikotarpis buvo palyginti trumpas. Po sausio ir vasario nuojautos, apimtys pradėjo džiūti - tai reiškia, kad mažiau galimybių pasipelnyti. Nepaisant mažėjančios prekybos apimties, rinkos formuotojų skaičius augo, nes į biržą įėjo nauji robotai.

Dėl didesnio biržos rinkos formuotojų padidėjo konkurencija dėl pirkimo ir pardavimo kainų, o tai sumažino kainų skirtumus. Papildomi konkurentai taip pat reiškė, kad užsakymai paprastai bus siūlomi trumpesniam laikotarpiui, nes buvo daugiau konkurentų, pasirengusių jus aplenkti iškart, kai tik jūsų užsakymas bus pateiktas.

Dėl padidėjusios konkurencijos ir mažiau galimybių pasipelnyti, iki kovo mėn. Aš išjungiau visus savo robotus ir jų nebeįjungiau. Padidėję gamintojo mokesčiai daugelyje biržų mane atgrasė grįžti į rinkos kūrimo žaidimą, bet greičiausiai vis tiek yra galimybė kiekvienam, kuris yra pakankamai sumanus pasirinkti savo akimirkas.

Apskritai, nuo 2017 m. Gruodžio mėn. Iki 2018 m. Kovo mėn. Aš prekiavau maždaug 50 mln. USD vertės „Bitcoin“, o IGI buvo 20,2.