Botu kaujas: kā tirgus veidotāji to cīnās kriptovalūtas biržās

Mēnešos no 2017. gada decembra līdz 2018. gada martam es uzbūvēju robotprogrammatūru, kas veica kriptovalūtas tirgus veidošanas darījumus aptuveni USD 50 miljonu vērtībā. Šis ir stāsts par to, kā es nokļuvu tirgus veidošanā, robotprogrammatūras algoritmu pamatā esošo teoriju un konkurenci, kas auga starp tirgus veidotājiem.

FOMO

Ir 2017. gada novembris - Bitcoin cena strauji pieaug, sasniedzot USD 10 000 atzīmi. Tā eksponenciālais cenu pieaugums katru nedēļu to arvien vairāk ievirza vispārējā apziņā, piesaistot vēl vairāk investoru, cenu vēl vairāk paaugstinot.

Šajā laikā es esmu prom brīvdienās pie diviem draugiem. Abi šie draugi bija ieguldījuši Bitcoin nenozīmīgas savas naudas summas un guva labumu no pieaugošās cenas. Kā vienīgais no trim, kurš pirms tam pat nebija domājis par ieguldīšanu, es jūtu, ka man pietrūkst.

Dodoties mājās no ceļojuma, viena no pirmajām lietām, ko es daru, ir tiešsaistes kriptovalūtas maiņas punkts un iemaksa kontā 500 USD. Vēlos braukt pa vilni, mans plāns ir vienkāršs: iegādājies Bitcoin 500 USD vērtībā un palielini savus ieguldījumus, ja redzu atdevi.

Izplatās

Pirms es velku sprūdu saviem 500 USD ieguldījumiem, es pamanu kaut ko dīvainu; biržai, kurā es tirgojos, ir liela “starpība”. Lai saprastu, kas ir starpība un kāpēc tas ir nozīmīgs, mums jāaplūko daži pamati par to, kā notiek apmaiņa.

Parasti, domājot par biržā tirgotu aktīvu, piemēram, akciju, mēs domājam, ka tam ir noteikta cena, kuru mēs varam iegādāties vai pārdot. Piemēram, mēs varētu domāt par Apple (AAPL) akciju, kuras cena ir 100 USD. Patiesībā, lai arī nav vienas cenas, drīzāk ir divas atšķirīgas cenas:

  • Piedāvājuma cena. Tā ir maksimālā summa, ko jebkurš biržā vēlas maksāt par aktīvu.
  • Jautāt cenu. Šī ir minimālā summa, par kuru jebkurš biržā vēlas pārdot aktīvu.

Lielākā daļa pircēju ir gatavi maksāt mazāk, nekā pārdevēji ir gatavi pārdot, un tāpēc aktīva piedāvātā cena vienmēr būs zemāka par pārdošanas cenu.

Apple akciju gadījumā šīs divas cenas, visticamāk, būs ļoti tuvu viena otrai. Piedāvātā cena varētu būt USD 99,99, bet pārdošanas cena - 100,01 USD. Starp šiem diviem numuriem (USD 0,02) ir atšķirība, ko mēs saucam par starpību.

Tāda populāra, stabila krājuma kā Apple izplatība ir maza. Tas notiek tāpēc, ka vienmēr ir daudz cilvēku, kas vēlas iegādāties akciju, kas izraisa piedāvājuma cenas paaugstināšanos, un daudzi, kas vēlas pārdot, kas pazemina pārdošanas cenu. Konkurence gan pircēju, gan pārdevēju starpā liek solīt cenu un pieprasa cenas tuvu viena otrai.

Kad es pirmo reizi sāku aplūkot Bitcoin biržas, starpības bija daudz lielākas, bieži līdz 100 USD. Bitcoin šajā laikā tirgojās ar apmēram 10 000 USD, kas nozīmē, ka tā izplatība varētu sasniegt 1% no kopējās vērtības (salīdzinājumā ar tikai 0,02% Apple piemērā).

Bitcoin starpības lielums bija tirgus haosa sekas, kas parādījās 2017. gada decembrī. Tirgū ienāca mazumtirdzniecības investori - jūs, es, vidusmēra cilvēks uz ielas. Rezultātā cenas bija tik nepastāvīgas, ka starpības nekad nevarēja stabilizēties.

Lielas starpības var izklausīties kā sliktas lietas, un zināmā mērā tās arī ir, taču tās sniedz arī iespēju gūt peļņu.

Pieņemsim, ka Bitcoin piedāvātā cena ir 9 900 USD un pārdošanas cena 10 000 USD, piešķirot tam 100 USD starpību. Ja jūs varat iegādāties 1 bitcoin par 9 900 USD un pēc tam to uzreiz pārdot par 10 000 USD, jūs esat tikko nopelnījis 100 USD.

Veidotāji un pieņēmēji

Ja domājat, ka tas izklausās pārāk labi, lai būtu patiesība, tad jums ir taisnība. Viens iemesls, kāpēc jūs varētu būt skeptiski noskaņots pret iepriekš minēto, rodas no jautājuma: kā ir ar maiņas maksām? Lai redzētu, kā nodevas tajā iekļaujas, mums ir jānovirza vēl neliela apvedceļš uz to, kā notiek apmaiņa.

Pieņemsim, ka vēlaties iegādāties bitcoin, kas tirgojas ar cenu 9 900 USD un pārdošanas cenu 10 000 USD. Pastāv divi veidi, kā to sasniegt:

Pirmkārt, jūs varētu iesniegt izgatavotāja pasūtījumu. Šeit jūs norādāt cenu līdz pat pieprasītajai cenai - tātad no 0 līdz 10 000 USD - un daudzumu, ko vēlaties iegādāties. Jūsu pasūtījums atrodas biržā, līdz kāds nāk līdzi un nolemj jūs uzņemt šajā pasūtījumā. Tas var notikt pēc milisekundēm vai dienām vēlāk, atkarībā no tā, cik augsta ir jūsu cena un biržas apjoms.

Kā alternatīvu jūs varētu iesniegt pasūtītāja pasūtījumu. Tas ir tieši pretējs veidotāja pasūtījumam, un tas ļaus jums uzreiz iegādāties bitcoin. Tomēr nozveja ir tāda, ka jūsu pasūtītāja pasūtījums tiek saskaņots ar viszemākajām cenām no visiem pārdošanas veidotāju pasūtījumiem. Protams, tā būs par pieprasīto cenu, jo tā ir zemākā cena, par kādu kāds vēlas pārdot.

Pirms mēs ejam uz priekšu, ir dažas svarīgas lietas, kas jāņem vērā par izgatavotāju un pircēju pasūtījumiem:

  1. Ikreiz, kad bitcoin tiek pārdots vai nopirkts, būs iesaistīts viens veidotājs un viens pasūtītājs. Jūs nevarat tirgoties ar diviem veidotājiem vai diviem pircējiem.
  2. Ja jūs nolemjat izvēlēties veidotāju, jums būs jāpiedāvā cena, kas ir vienāda ar solīto cenu vai augstāka, lai pārdevējam būtu laba iespēja veikt pasūtījumu.
  3. Visbeidzot, veidotāju pasūtījumi tirgū pievieno to, ko mēs saucam par likviditāti; tie piedāvā vairāk iespēju citiem biržā pirkt un pārdot. Viņu vārds cēlies no tā, ka viņi veido likviditāti. Pretstatā tam pircēju rīkojumi likviditāti izņem no tirgus, jo tie izslēdz izgatavotāju rīkojumus no biržas.

Šis pēdējais punkts ir ļoti svarīgs, jo tas palīdz izskaidrot nodevu struktūru, kāda ir lielākajai daļai biržu. Tā kā biržas vēlas palielināt likviditāti, tās parasti iekasē lielākas maksas par pircēju rīkojumiem, nekā tas tiek darīts pēc izgatavotāju pasūtījumiem. Dažās biržās, ieskaitot tās, kuras izmantoju, tiek iekasēta tikai maksa par izmantotājiem: par pasūtījumiem ir 0% maksa.

Atpakaļ pie mūsu iepriekšējā piemēra. Ja mēs spējam iegādāties Bitcoin par 9 900 USD un pārdot par 10 000 USD, izmantojot tikai veidotāju pasūtījumus, tad par katru Bitcoin, kuru mēs darām, ir 100 USD tīra peļņa.

Nepieciešamība izmantot veidotāju pasūtījumus nav tikai izvairīšanās no maksām, bet arī fakts, ka, ja mēs pirkām, izmantojot pasūtītāja pasūtījumu, mums būs jāmaksā prasītā cena - 10 000 USD. Ja mēs tad pārdotu, izmantojot pasūtītāja pasūtījumu, mums būtu jāpārdod par cenu - 9 900 USD -, zaudējot mums 100 USD.

Tātad, izmantojot veidotāju pasūtījumus, mēs diezgan lielā mērā varam garantēt peļņu, pērkot par solīto cenu un pārdodot par pārdošanas cenu. Tomēr ir viena pēdējā problēma, kas radīja vislielāko izaicinājumu izveidot algoritmu, kas to varētu izdarīt programmatiski.

Kā mēs jau iepriekš pieskārāmies, izgatavotāja pasūtījumam ir nepieciešams pārņēmēja rīkojums, lai viņš nāktu līdzi un “ņemtu” to pirms tirdzniecības sākšanās. Taker pasūtījumi vienmēr “ņems” vislabāko cenu. Ja vēlaties iegādāties Bitcoin, izmantojot veidotāja pasūtījumu, tad, lai pircēju pasūtījumi atbilstu jūsu pasūtījumam, jums būs jādara cena tieši virs piedāvātās cenas. Cik daudz virs jūsu piedāvātās cenas nav nozīmes, tā var būt par nelielu summu par vienu centu, piem. 9 900,01 USD.

Tāpēc tirgus veidošanas robotprogrammatūras rakstīšanas pirmais solis ir spēja iepirkt (izgatavotāja) pasūtījumus tieši virs pašreizējās piedāvājuma cenas. Tas prasa vienu API pieprasījumu, lai pārbaudītu piedāvājuma cenu, un citu, lai iesniegtu pasūtījumu.

Teorētiski ir jauki, ja soli tikai vienu centu virs solītās cenas. Tomēr praksē laika posmā no solītās cenas pārbaudes līdz pasūtījuma iesniegšanai piedāvājuma cena bieži mainīsies. Lai nodrošinātu, ka jūsu pasūtījums ir augstāks par visiem citiem pirkšanas pasūtījumiem un tādējādi tiek iestatīta jaunā solīšanas cena, bieži ieteicams solīt 5–10 ¢ virs pašreizējās solītās cenas.

Tas nodrošina, ka, ja ienāk (pārņēmējs) pārdošanas pasūtījums, tas tiks saskaņots ar mūsu (veidotāja) pirkšanas pasūtījumu, un mēs būsim iegādājušies tik daudz Bitcoin, neko nezaudējot no maksām.

Tad pārdošanas pusē mēs varam rīkoties tieši pretēji tam, ko tikko izdarījām. Mēs pārbaudām pašreizējo pieprasīto cenu un piedāvājam vairākus centus zemākas cenas. Tas nodrošina, ka, ja (pircējs) pirkšanas pasūtījums nonāk, tas tiek saskaņots ar mūsu (izgatavotāja) pārdošanas pasūtījumu.

Mēs tikko būsim ieguvuši sakoptu peļņu, kas ir aptuveni vienāda ar starpību (starpību starp piedāvājuma un pārdošanas cenu), kas reizināta ar tik lielu bitcoin daudzumu, kādu mēs varējām tirgot.

Konkurence

Ja jūs joprojām domājat, ka tas ir pārāk viegli, lai būtu patiesība, tad jūs joprojām rīkojaties pareizi. Kad vien ir acīmredzama peļņas iespēja, tirgotāji uzkrājas, un tas rada konkurenci. Acīmredzamākais piemērs tam ir redzams, aplūkojot konkurenci, ko radījuši tirgus veidotāji, kuri savā starpā cenšas noteikt piedāvājuma cenu. (Atcerieties, ka, lai veiktu darījumu, jums ir jābūt pirkuma pasūtījumam par solīto cenu, nākamreiz, kad ienāks pārdevēja pasūtījums.)

2017. gada decembrī konkurence bija tik intensīva, ka solītā cena parasti mainījās vairākas reizes sekundē. Bieži vien tas pieaugtu tikai par vienu vai diviem centiem, jo ​​tirgotāji savā starpā cīnījās, lai maksimāli palielinātu laika periodu, kurā viņi nosaka piedāvājuma cenu, vienlaikus cenšoties piedāvāt pēc iespējas zemāku cenu.

Mans bots sākotnēji bija paredzēts, lai pārbaudītu solīto cenu, un cena bija par 1 ¢ augstāka. Saprātīgi, kā tas šķita pirmais, es atklāju, ka līdz brīdim, kad mans pasūtījums iziet cauri, es bieži vien būšu vairākus centus zemāka par (pastāvīgi mainīgo) solīto cenu.

Lai to apietu un nodrošinātu, ka pēc iespējas vairāk manu pasūtījumu pārspētu pašreizējo solīto cenu, es izmērīju, cik daudz solīšanas cena parasti mainās ik pēc 100 ms. Tas ļāva manam robotam piedāvāt cenu, kas bija pietiekami augstāka nekā solītā cena (~ 5 ¢ augstāka), lai citi tirgotāji nepārspētu manu cenu, jo mans pasūtījums tika apstrādāts.

Es arī sāku apsvērt, kā starpības lielums ietekmēs to, cik daudz es biju gatavs piedāvāt par pašreizējo solīto cenu. Kā mēs redzējām iepriekš, jebkuras tirdzniecības peļņa ir tieši proporcionāla starpības lielumam. Tas padarīja vēl svarīgāku pārspēt piedāvāto cenu, kad starpība bija liela. Tāpēc es uzrakstīju formulu, kas mainījās, cik daudz augstāka par piedāvāto cenu, ņemot vērā arī starpības lielumu.

Līdz šim es galvenokārt runāju par tirgus veidošanas pirkšanas aspektu, bet pārdošana darbojas tieši tāpat. Tiklīdz esat iegādājies savu Bitcoin, jums tas jāizkrauj par (augstāku) pieprasījuma cenu. Par pārdošanas cenu būs konkurence, tāpat kā bija par piedāvājuma cenu, un tāpēc jums ir jāpazemina konkurenti, piedāvājot pārdošanas cenu, kas ir par vairākiem centiem zemāka nekā pašreizējā pārdošanas cena.

Tomēr jau 2017. gada beigās / 2018. gada sākumā parasti bija daudz mazāka konkurence par pārdošanas cenu. Es tajā laikā pieņēmu, ka tas notika tāpēc, ka Bitcoin bija lielāks pieprasījums nekā piedāvājums, izskaidrojot, kāpēc pircēju starpā bija lielāka konkurence nekā pārdevēju.

Tirgus manipulācijas

Tirgus manipulācijas attiecas uz dažādām ļaundabīgām taktikām, kuras tirgotāji izmanto tirgos, lai iegūtu negodīgas priekšrocības. Kriptovalūtas maiņa kā neregulēts tirgus bija (un joprojām ir) gatavs veikt tirgus manipulācijas. Visizplatītākais manipulācijas veids bija tā dēvētā krāpšanās, pasūtījumu veikšana, lai mainītu tirgus apstākļu izskatu.

Lai sniegtu piemēru, kā tas darbojas, apsveriet iepriekšējo piemēru ar cenu 9 900 USD un cenu 10 000 USD. Mūsu starpība šeit ir 100 ASV dolāru, kas sniedz labu iespēju tirgoties. Tomēr, ja kāds nāk līdzi un iesniedz pirkuma pasūtījumu, kura cena ir 9999,99 USD, tad starpība samazinās līdz tikai 1 ¢. Ar tik nelielu starpību šķiet neiespējami gūt labumu no tirgus veidošanas, un visa darbība tiek apturēta.

Pircējs, kas veic izgatavotāja pasūtījumu 1 ¢ zem pieprasījuma cenas, pats par sevi nav tirgus manipulācija. Faktiski, ja jūsu birža neiekasē maksu par ražotāju, tas ir ātrs un efektīvs Bitcoin pirkšanas veids. Tomēr problēma bija tā, ka vienmēr, kad parādījās šie pirkšanas pasūtījumi, tie parasti bija par mazāko iespējamo summu; 0,00001 Bitcoin, aptuveni 10 ¢ vērts.

Iemesls, kāpēc cits tirgus veidotājs varētu izvietot tik mazu pirkuma pasūtījumu tieši zem pārdošanas cenas, ir ģeniāli. Ja cits tirgus veidotājs tikko spēja iegādāties Bitcoin par piedāvāto cenu, tad viņiem ir stimuls to pēc iespējas ātrāk pārdot par pirkšanas cenu. Jo ilgāks laiks viņiem prasīs pārdot savu Bitcoin, jo lielāks būs pieprasījuma cenas (un līdz ar to arī starpības) pārvietošanās risks un mainīgā peļņa.

Protams, jūs varētu teikt, ka šajā laikā ir tikpat liela cenu paaugstināšanās iespēja, kā tas ir. Tirgus veidotājam tas tomēr nerūp; viņu uzdevums nav spekulēt par cenu, tas ir pēc iespējas ātrāk iekļūt un izkļūt.

Lai apturētu cenu krišanos un lai konkurence pārdošanas pusē neliktu samazināt pārdošanas cenu, tirgus veidotājs savu pārdošanas pasūtījumu ievieto tieši zem pieprasījuma cenas un ievieto (“krāpniecisku”) pirkuma pasūtījumu tieši zem jaunā jautāt cenu. Šim pēdējam pasūtījumam būs pēc iespējas mazāks pasūtījuma lielums (0,00001 Bitcoin).

Tam ir divas sekas:

  1. Neviens cits pārdevējs nevar pārspēt šī pārdevēja prasīto cenu. Ja jūs atrodaties 1 ¢ zem pieprasītās cenas, jūs esat par solīto cenu, un biržas neļauj pārdevējiem veikt izgatavotāju pasūtījumus par cenu, kas ir zemāka vai zemāka.
  2. Tas samazina izplatību līdz tikai 1 ¢. Kad tirgotāju veiktais robotprogrammatūra redz tik nelielu starpību, tas, iespējams, īslaicīgi izslēgsies, jo peļņa netiks gūta.

Šis otrais punkts ir ļoti svarīgs, jo tas izskaidro, kāpēc praktiski visi tirgus veidošanas robotprogrammatūras izslēdzas, ja viltus pirkšanas pasūtījums nonāk tieši zem pārdošanas cenas. Patiesībā, kaut arī šķiet, ka starpība ir tikai 1, joprojām pastāv iespēja.

Pieņemsim, ka nākamā pārdevēja pasūtījums tiek pieņemts par 1 Bitcoin. Pirmais 0,00001 Bitcoin tiks pārdots tirgus veidotājam ar krāpniecisku rīkojumu, ņemot šo rīkojumu ārpus biržas. Nākamais 0.99999 Bitcoin tiks pārdots pasūtījumam par jauno solīto cenu, kas ir visaugstākā cena zem krāpnieciskā pasūtījuma.

Viens no lielākajiem uzlabojumiem, ko es izdarīju robotprogrammatūrā, bija ļaut tam ignorēt krāpnieciskus rīkojumus, aprēķinot starpību. Kaut arī pieprasījuma cena varētu būt tikai par 1 ¢ augstāka nekā solītā cena, mans robotprogrammatūra izskatītos pēc krāpnieciskiem pasūtījumiem, lai uzzinātu, kāda starpība būtu, ja ne krāpnieciskajiem pasūtījumiem (kas joprojām varētu būt no 50 līdz 100 USD). Ja šī starpība būtu pietiekami liela, lai radītu iespēju, tā konkurēs ar visaugstāko pirkuma pasūtījumu pēc jebkura krāpnieciska pasūtījuma. Kad ienāca pārdevēju pircēju pasūtījumi, tas nozīmēja, ka dažu centu vērts Bitcoin tiks pārdots krāpniekiem, bet pārējais - man.

2018. gads

Pirmie 2018. gada mēneši bija vētraini. Pēc tam, kad Bitcoin decembrī pieauga līdz USD 20k, riteņi bija sākuši nokrist, un cena strauji kritās.

Lai arī tas bija slikts investoriem, tas tirgus veidotājiem sniedza milzīgas iespējas. Augstais apjoms gan pirkšanas, gan pārdošanas pusē (kas nozīmēja vairāk pircēju pasūtījumu ienākšanu) ievērojami palielināja darījumu skaitu dienā, ko efektīvs tirgus veidotājs varēja izpildīt.

Tomēr šī izdevība bija samērā īslaicīga. Pēc janvāra un februāra neprāta apjomi sāka izžūt, kas nozīmē mazāk iespēju gūt peļņu. Neskatoties uz tirdzniecības apjoma kritumu, tirgus veidotāju skaits turpināja pieaugt, jo biržā ienāca jauni robotprogrammatūras.

Vairāk biržas veidotāju biržā izraisīja lielāku konkurenci starp solīšanas un pārdošanas cenām, savukārt sašaurinot cenu starpības. Papildu konkurenti arī nozīmēja, ka pasūtījumi parasti notiks par piedāvāto cenu īsākā laika posmā, jo bija vairāk konkurentu, kas gatavi jūs pārspēt, tiklīdz pasūtījums būs iesniegts.

Sakarā ar pieaugošo konkurenci un mazākām iespējām gūt peļņu, es līdz martam izslēdzu visus robotus, un kopš tā laika tos vairs neatslēdzu. Palielinātās ražotāju nodevas daudzās biržās mani atturēja no atgriešanās tirgus veidošanas spēlē, taču, iespējams, joprojām pastāv iespēja ikvienam, kurš ir pietiekami gudrs, lai izvēlētos savus mirkļus.

Kopumā es laikposmā no 2017. gada decembra līdz 2018. gada martam es tirgoju aptuveni 50 miljonus USD vērtā Bitcoin, ar ROI 20,2.