Pertempuran Bot: Bagaimana Pembuat Pasaran Berjuang Keluar di Crypto Exchange

Dalam bulan-bulan antara Disember 2017 dan Mac 2018, saya membina sebuah bot yang menjalankan perdagangan pembuatan cryptocurrency bernilai $ 50 juta. Inilah kisah bagaimana saya masuk ke pasaran, teori di balik algoritma bot, dan persaingan yang tumbuh di antara pembuat pasaran.

FOMO

Ia adalah November 2017 - Harga Bitcoin meningkat dengan pesat ke arah markah $ 10,000. Peningkatan eksponennya mendorongnya terus ke dalam kesedaran arus perdana setiap minggu, menarik lebih banyak pelabur, mendorong harga lebih jauh.

Pada masa ini, saya bercuti dengan dua rakan. Kedua-dua rakan-rakan ini telah melabur tidak banyak jumlah wang mereka sendiri ke dalam Bitcoin, dan mendapat keuntungan daripada peningkatan harga. Sebagai satu-satunya daripada tiga yang tidak pernah mempertimbangkan melabur sebelum ini, saya rasa saya hilang.

Apabila saya pulang dari perjalanan, salah satu perkara pertama yang saya lakukan ialah mencari pertukaran cryptocurrency dalam talian dan deposit $ 500 ke dalam akaun. Mahu menunggang gelombang, pelan saya adalah mudah: membeli $ 500 bernilai Bitcoin, dan meningkatkan pelaburan saya jika saya melihat pulangan.

Sebarkan

Sebelum saya menarik pencetus pada pelaburan $ 500 saya, saya perhatikan sesuatu yang pelik; pertukaran yang saya berdagang mempunyai 'spread' besar. Untuk memahami apa penyebarannya, dan mengapa ini penting, kita perlu melihat beberapa asas tentang bagaimana kerja pertukaran.

Biasanya apabila kita memikirkan aset dagangan bursa, seperti stok, kita memikirkannya sebagai mempunyai harga tetap yang boleh kita beli atau menjualnya. Sebagai contoh, kita mungkin memikirkan stok Apple (AAPL) yang mempunyai harga $ 100. Pada kenyataannya walaupun tidak ada satu harga tunggal, tetapi ada dua harga yang berbeza:

  • Harga tawaran. Ini adalah jumlah maksimum yang sesiapa di bursa sanggup membayar untuk aset.
  • Harga ask. Ini adalah amaun minimum yang sesiapa sahaja di bursa sanggup menjual aset tersebut.

Kebanyakan pembeli sanggup membayar kurang daripada penjual yang sanggup menjual, dan oleh itu harga tawaran sesuatu aset akan sentiasa berada di bawah harga harga.

Dalam kes stok Apple, kedua harga ini mungkin sangat dekat. Harga tawaran mungkin $ 99,99, dan harga bertanya $ 100.01. Perbezaan antara kedua-dua nombor ($ 0.02) adalah apa yang kita panggil penyebaran.

Penyebarannya adalah kecil di saham yang popular dan stabil seperti Apple. Ini kerana selalu ada banyak orang yang sanggup membeli stok, yang menyebabkan kenaikan harga tawaran, dan banyak bersedia untuk menjual, yang menolak harga jual. Persaingan di antara kedua-dua pembeli dan penjual menolak tawaran dan meminta harga berhampiran antara satu sama lain.

Apabila saya mula-mula melihat bursa Bitcoin, spread lebih besar, seringkali sehingga $ 100. Bitcoin didagangkan pada sekitar $ 10,000 pada masa ini, yang bermaksud penyebarannya boleh mencapai 1% daripada jumlah nilai (berbanding hanya 0.02% dalam contoh Apple.

Saiz penyebaran pada Bitcoin adalah akibat dari huru hara pasaran yang muncul pada Disember 2017. Pelabur runcit - anda, saya, orang biasa di jalan - telah membanjiri pasaran. Harga begitu tidak menentu akibatnya, bahawa spread tidak dapat menstabilkan.

Spread besar mungkin terdengar seperti perkara yang buruk, dan setakat mereka, tetapi mereka juga memberi peluang untuk mendapat keuntungan.

Katakan Bitcoin mempunyai harga tawaran $ 9,900, dan harga ask $ 10,000, memberikannya penyebaran $ 100. Jika anda boleh membeli 1 bitcoin untuk $ 9,900, dan kemudian menjualnya selepas $ 10,000, anda baru sahaja membuat keuntungan $ 100.

Pembuat dan Pengambil

Jika anda berfikir bahawa ini terlalu bagus untuk menjadi kenyataan, maka anda betul. Salah satu sebab anda mungkin ragu-ragu di atas datang dari soalan: bagaimana dengan pertukaran yuran? Untuk melihat bagaimana yuran sesuai dengan ini, kita perlu mengambil sedikit jalan lain ke arah bagaimana pertukaran kerja.

Katakan anda ingin membeli bitcoin, yang didagangkan dengan harga tawaran $ 9,900 dan harga $ 10,000 bertanya. Terdapat dua cara yang boleh anda lakukan:

Pertama anda boleh menghantar pesanan pembuat. Di sinilah anda menentukan harga di mana sahaja sehingga harga pertanyaan - jadi antara $ 0 dan $ 10,000 - dan kuantiti yang anda beli. Pesanan anda duduk di bursa sehingga seseorang datang dan memutuskan untuk membawa anda ke atas pesanan itu. Ini boleh berlaku milisaat atau beberapa hari kemudian, bergantung kepada berapa harga anda tinggi dan jumlah dagangan di bursa.

Sebagai alternatif, anda boleh menghantar pesanan pengambil pesanan. Ini adalah bertentangan dengan perintah pembuat, dan akan membolehkan anda membeli bitcoin dengan serta-merta. Menangkap walaupun, ialah pesanan pengambil pesanan anda dipadankan dengan harga paling rendah dari semua pesanan pembuat pesanan. Sememangnya, ini akan menjadi harga yang diminta, kerana ini adalah yang paling rendah yang sesiapa yang bersedia untuk dijual.

Sebelum kita pergi ke hadapan, ada beberapa perkara penting yang perlu diperhatikan tentang pesanan pembuat & pengambil:

  1. Setiap kali bitcoin dijual atau dibeli, akan ada satu pembuat dan satu pesanan pengambil terlibat. Anda tidak boleh berdagang dengan dua pembuat, atau dua orang pengambil.
  2. Sekiranya anda memutuskan untuk pergi ke laluan pembuat, anda perlu menawarkan harga yang sama dengan, atau ke atas, harga tawaran untuk mempunyai peluang yang baik penjual mengambil pesanan anda.
  3. Akhirnya, pesanan pembuat menambah apa yang kita panggil kecairan ke pasaran; mereka menyediakan lebih banyak pilihan untuk orang lain di bursa untuk membeli dan menjual. Nama mereka berasal dari fakta bahawa mereka membuat kecairan. Berbeza dengan ini, pesanan pengambil mengambil kecairan dari pasaran, kerana mereka mengeluarkan pesanan pembuat dari bursa.

Titik terakhir ini adalah penting, kerana ia membantu menjelaskan struktur yuran yang paling banyak pertukaran. Kerana pertukaran ingin memaksimumkan kecairan, mereka biasanya akan mengenakan yuran yang lebih tinggi pada pesanan pengambil daripada yang dilakukan pada pesanan pembuat. Sesetengah bursa, termasuk yang saya gunakan, hanya mengenakan yuran pengambil bayaran: terdapat yuran 0% pada pesanan pembuat.

Kembali ke contoh terdahulu kami. Jika kita dapat membeli Bitcoin pada $ 9,900 dan menjual pada $ 10,000 menggunakan pesanan pembuat sahaja, maka kita mempunyai $ 100 keuntungan tulen untuk setiap Bitcoin yang kita berurusan.

Keperluan untuk menggunakan pesanan pembuat tidak hanya untuk mengelakkan bayaran, tetapi juga berasal dari hakikat bahawa jika kita membeli menggunakan perintah pengambil, kita perlu membayar harga tanya - $ 10,000. Jika kita kemudiannya dijual melalui perintah pengambil, kita harus menjual pada harga tawaran - $ 9,900 - kehilangan kita $ 100.

Oleh itu, dengan menggunakan pesanan pembuat, kami dapat menjamin keuntungan dengan membeli pada harga tawaran dan menjual pada harga yang diminta. Terdapat satu masalah akhir namun, yang membentangkan cabaran terbesar untuk membuat algoritma yang boleh melakukan pemrograman ini.

Ketika kami menyentuh sebelum ini, pesanan pembuat memerlukan perintah penuntut untuk datang dan 'mengambil' sebelum perdagangan dapat terjadi. Pesanan pengambil akan sentiasa 'mengambil' harga terbaik. Sekiranya anda ingin membeli Bitcoin melalui pesanan pembuat, maka agar pesanan pengambil pesanan dapat dipadankan dengan pesanan anda, anda harus menawar tepat di atas harga tawaran. Berapa jauh di atas harga tawaran yang anda tawarkan tidak penting, ia boleh dibuat dengan sejumlah kecil sekecil satu, mis. $ 9,900.01.

Oleh itu, langkah pertama untuk membuat bot pembuatan pasaran adalah untuk dapat membuat pesanan beli (pembuat) di atas harga tawaran semasa. Ini memerlukan satu permintaan API untuk menyemak harga tawaran dan satu lagi untuk menyerahkan pesanan anda.

Secara teorinya, ia hanya untuk menawar satu sen di atas harga tawaran. Namun dalam praktiknya, pada masa antara memeriksa harga tawaran dan menyerahkan pesanan anda, harga tawaran akan sering berubah. Untuk memastikan pesanan anda duduk lebih tinggi daripada semua pesanan pembelian yang lain, dan dengan itu menetapkan harga tawaran baru, ia sering dinasihatkan untuk menawar 5-10 ¢ di atas harga tawaran semasa.

Ini memastikan bahawa, jika pesanan menjual (pengambil) masuk, ia akan dipadankan dengan pesanan beli (pembuat) kami, dan kami akan membeli Bitcoin walau banyak tanpa kehilangan apa-apa bayaran.

Kita kemudian dapat melakukan apa yang bertentangan dengan apa yang baru saja kita lakukan, di sisi menjual. Kami menyemak harga tanya semasa, dan menawar beberapa sen di bawah itu. Ini memastikan bahawa jika pesanan pembelian (pembeli) masuk, ia akan dipadankan dengan pesanan menjual (pembuatan) kami.

Kami hanya akan membuat keuntungan yang rapi kira-kira sama dengan penyebaran (perbezaan antara tawaran dan permintaan harga) yang didarab dengan banyak bitcoin yang kita dapat berdagang.

Pertandingan

Jika anda masih berfikir bahawa ini terlalu mudah untuk menjadi kenyataan, maka anda masih betul. Apabila ada peluang yang jelas untuk keuntungan, peniaga bertelur, dan ini mewujudkan persaingan. Contoh yang paling jelas ini dapat dilihat dengan melihat persaingan yang dicipta oleh pembuat pasaran yang mengganggu antara satu sama lain untuk menetapkan harga tawaran. (Ingatlah, anda perlu membuat pesanan beli anda pada harga tawaran untuk melaksanakan perdagangan, pada masa yang berikutnya pesanan penjual penjual masuk)

Kembali pada Disember 2017, pertandingan begitu sengit sehingga harga tawaran biasanya berubah beberapa kali sesaat. Selalunya ia hanya akan meningkat sebanyak satu atau dua sen, kerana para peniaga berjuang antara satu sama lain untuk memaksimumkan jumlah masa yang mereka tetapkan harga tawaran, sementara itu juga ingin menawarkan serendah harga yang mungkin.

Bot saya pada mulanya ditetapkan untuk memeriksa harga tawaran, dan tawaran 1 ¢ lebih tinggi. Sempurna seperti ini pertama kali dilihat, saya mendapati bahawa pada masa pesanan saya melalui, saya akan sering menjadi beberapa sen di bawah harga tawaran (sentiasa berubah).

Untuk mendapatkan sekitar ini, dan untuk memastikan bahawa sebanyak mungkin pesanan saya akan mengalahkan harga tawaran semasa, saya mengambil ukuran berapa harga tawaran biasanya akan berubah setiap 100ms. Ini membolehkan bot saya menawarkan harga yang lebih tinggi daripada harga tawaran (~ 5 ¢ lebih tinggi), supaya peniaga lain tidak akan mengalahkan harga saya apabila tempahan saya diproses.

Saya juga mula mempertimbangkan bagaimana saiz penyebaran itu akan menjejaskan sejauh mana saya bersedia menawarkan harga tawaran semasa. Seperti yang kita lihat sebelum ini, keuntungan dari sebarang perdagangan adalah berkadar terus dengan saiz spread. Ini menjadikannya lebih penting lagi untuk mengalahkan harga tawaran apabila penyebarannya besar. Oleh kerana itu, saya menulis formula yang bervariasi berapa jauh lebih tinggi daripada harga tawaran yang saya tawarkan, berdasarkan ukuran penyebarannya juga.

Saya telah membincangkan sebahagian besar aspek pembelian pasaran, tetapi menjual kerja yang sama. Sebaik sahaja anda membeli Bitcoin anda, anda perlu memuatkannya pada harga yang lebih tinggi. Akan ada persaingan pada harga yang diminta, sama seperti terdapat pada harga tawaran, jadi anda perlu mengurangkan pesaing anda dengan menawarkan harga jual beberapa sen lebih rendah daripada harga jual semasa.

Kembali pada lewat 2017 / awal 2018 walaupun, biasanya ada persaingan yang agak kurang pada harga yang diminta. Saya menganggap pada masa ini bahawa kerana terdapat permintaan yang lebih daripada bekalan untuk Bitcoin, menjelaskan mengapa terdapat lebih banyak persaingan antara pembeli daripada penjual.

Manipulasi Pasaran

Manipulasi pasaran merujuk kepada pelbagai taktik yang jahat yang pedagang menggunakan di pasaran untuk mendapatkan kelebihan yang tidak adil. Sebagai sebuah pasaran yang tidak dikawal selia, bursa cryptocurrency adalah (dan masih) masak dengan manipulasi pasaran. Manipulasi yang paling kerap adalah apa yang dipanggil spoofing, tindakan meletakkan pesanan hanya untuk mengubah keadaan pasaran.

Untuk memberikan contoh bagaimana ini berfungsi, pertimbangkan contoh dari sebelumnya dengan harga tawaran $ 9,900 dan harga $ 10,000 bertanya. Penyebaran kami di sini adalah $ 100, yang memberikan peluang yang baik untuk membuat pasaran. Sekiranya ada orang yang datang dan membuat tempahan membeli dengan harga $ 9,999.99, maka penyebarannya menyusut hanya 1 ¢. Dengan penyebaran yang sangat kecil, nampaknya mustahil untuk mendapat keuntungan dari pembuatan pasaran, dan semua aktiviti mengisar dengan berhenti.

Seorang pembeli yang meletakkan pesanan pembuat 1 ¢ di bawah harga askar itu sendiri bukanlah manipulasi pasaran. Malah, jika pertukaran anda tidak mengenakan yuran pembuat, ini adalah cara cepat & cekap untuk membeli Bitcoin. Isu bagaimanapun ialah apabila setiap pesanan membeli muncul, biasanya ia akan menjadi jumlah terkecil yang mungkin; 0.00001 Bitcoin, bernilai kira-kira 10 ¢.

Sebab pembuat pasaran lain mungkin meletakkan pesanan beli kecil, betul-betul di bawah harga yang diminta, adalah genius. Sekiranya pembuat pasaran lain hanya dapat membeli Bitcoin pada harga tawaran, mereka kemudian mempunyai insentif untuk menjualnya pada harga minta secepat mungkin. Semakin lama ia mengambil mereka untuk menjual Bitcoin mereka, semakin besar risiko harga askar (dan dengan itu penyebaran) bergerak, dan keuntungan mereka bervariasi.

Tentunya, anda mungkin mengatakan ada kemungkinan harga naik pada masa ini kerana ia jatuh. Seorang pembuat pasaran tidak peduli dengan ini walaupun; kerja mereka bukanlah untuk membuat spekulasi mengenai harga, untuk masuk dan keluar secepat mungkin.

Untuk menghentikan harga yang jatuh, dan untuk menghentikan persaingan di pihak menjual dari menolak harga permintaan, pembuat pasaran meletakkan pesanan menjualnya tepat di bawah harga yang diminta, dan memasukkan pesanan beli ('spoofed') di bawah yang baru minta harga. Pesanan yang terakhir ini akan mempunyai saiz pesanan yang kecil (0.00001 Bitcoin).

Ini mempunyai dua kesan:

  1. Tiada penjual lain boleh mengalahkan harga yang diminta oleh penjual itu. Jika anda pergi 1 ¢ di bawah harga pertanyaan, anda berada di harga tawaran, dan bursa tidak membenarkan penjual meletakkan pesanan pembuat pada atau di bawah harga tawaran.
  2. Ia mengurangkan penyebaran kepada hanya 1 ¢. Apabila bot pembuatan pasaran melihat penyebaran kecil itu, ia mungkin akan beralih sementara, kerana tidak ada keuntungan yang akan dibuat.

Titik kedua ini penting, kerana ia menjelaskan mengapa hampir semua pasaran membuat bot dimatikan ketika pesanan beli palsu dilakukan tepat di bawah harga harga. Pada hakikatnya walaupun, walaupun penyebaran itu kelihatan hanya 1 ¢, masih ada peluang untuk dimiliki.

Katakan bahawa pesanan pengambil pesanan seterusnya masuk untuk 1 Bitcoin. 0.00001 Bitcoin yang pertama akan dijual kepada pembuat pasaran dengan pesanan palsu, mengambil pesanan itu daripada bursa. 0.99999 Bitcoin seterusnya akan dijual kepada pesanan pada harga tawaran baru, pesanan harga tertinggi di bawah susunan yang ditipu.

Salah satu penambahbaikan terbesar yang saya buat pada bot saya adalah membenarkannya mengabaikan pesanan palsu dalam menghitung penyebarannya. Walaupun harga jual mungkin hanya 1 ¢ lebih tinggi daripada harga tawaran, bot saya akan melihat pesanan palsu yang lalu, untuk mencari apa penyebaran itu jika tidak untuk pesanan palsu (yang masih boleh menjadi $ 50- $ 100). Sekiranya penyebaran ini cukup besar untuk membentangkan peluang, ia akan bersaing untuk meletakkan pesanan membeli harga tertinggi selepas apa-apa perintah palsu. Apabila pesanan penjual penjual masuk, ini bermakna bahawa beberapa sen bernilai Bitcoin akan dijual kepada spoofers, dan kemudian sisanya kepada saya.

2018

Beberapa bulan pertama tahun 2018 bergelora. Selepas kenaikan Bitcoin ke $ 20k pada bulan Disember, roda telah mula turun, dan harga jatuh dengan cepat.

Walaupun buruk bagi pelabur, ini memberikan peluang besar kepada para pembuat pasaran. Tahap volume yang tinggi pada kedua-dua belah beli dan menjual (yang bermaksud lebih banyak pesanan pengambil masuk) secara besar-besaran meningkatkan jumlah dagangan setiap hari yang dapat dilakukan oleh pembuat pasaran yang efisien.

Masa peluang ini agak singkat sekalipun. Selepas kegilaan Januari dan Februari, volum mula kering, bermakna lebih sedikit peluang untuk mendapat keuntungan. Walaupun volum perdagangan jatuh, jumlah pembuat pasaran terus meningkat, ketika bot-bot baru memasuki bursa.

Lebih banyak pembuat pasaran di bursa-bursa menyebabkan lebih banyak persaingan mengenai tawaran dan permintaan harga, sebaliknya menyempitkan penyebaran. Pesaing tambahan juga bermaksud pesanan biasanya akan berada pada harga tawaran untuk jangka waktu yang lebih singkat, karena ada lebih banyak pesaing yang bersedia melepaskan Anda secepat pesanan Anda telah diserahkan.

Oleh kerana persaingan yang semakin meningkat dan peluang yang lebih sedikit untuk keuntungan, saya telah mengembalikan semua bot saya pada bulan Mac, dan tidak memulihkannya sejak itu. Yuran pembuat kenaikan di banyak bursa telah menghalang saya daripada kembali ke pasaran membuat permainan, tetapi masih terdapat peluang di sana untuk sesiapa yang cukup pintar untuk memilih momen mereka.

Secara keseluruhan, saya telah menjual Bitcoin bernilai $ 50 juta antara Disember 2017 dan Mac 2018, dengan ROI sebanyak 20.2.