Pengantar Dunia Sequencer

Dec 07 2022
Hai para ahli teknologi. Nama saya Aiden dan saya telah menghabiskan 4 tahun terakhir bekerja sebagai perekrut Java di pasar Front Office yang sebagian besar mencakup Hong Kong & Sydney.

Hai para ahli teknologi. Nama saya Aiden dan saya telah menghabiskan 4 tahun terakhir bekerja sebagai perekrut Java di pasar Front Office yang sebagian besar mencakup Hong Kong & Sydney. Selama tahun-tahun ini saya telah menemukan hasrat untuk pasar di dalam Java yang merupakan Java latensi rendah dan lebih khusus lagi arsitektur sequencer.

Dari masa muda saya, saya adalah juara Warwickshire 100 meter di mana saya selalu menikmati kecepatan tinggi, jadi ketika saya mulai belajar tentang cara kerja sistem perdagangan, latensi rendah adalah hal yang - ironisnya atau mungkin alami - menarik perhatian saya.

Melalui jaringan dengan para insinyur dan kepala perdagangan, saya telah mengembangkan pengetahuan ini dalam latensi rendah dan lebih khusus bagaimana sequencer bekerja. Ini memungkinkan saya untuk terhubung dengan pengembang Java tercepat di dunia dan terlibat dengan bank Investasi.

Saya telah melihat perusahaan yang mengimplementasikan sequencer mendapatkan kurang dari 10 mikrodetik pada mesin mereka dengan lebih dari 2 juta transaksi per detik.

Blog ini akan membahas mengapa kita harus menggunakan Java daripada C++ untuk latensi rendah, bagaimana sequencer lahir, dan siapa orang-orang kunci dalam mengembangkan sequencer. Tentu saja, itu tidak dapat diakhiri dengan pendapat pribadi saya tentang itu dan informasi yang saya kumpulkan selama bertahun-tahun bekerja.

Blog ini idealnya ditujukan untuk para profesional dan eksekutif TI yang bekerja pada sistem perdagangan throughput tinggi dan mereka yang bersemangat yang memulai atau ingin menerapkan ini ke dalam sistem perdagangan mereka.

Ayo mulai!

Langkah pertama bahkan sebelum berbicara sequencer sudah jelas: mengapa Anda menggunakan Java untuk latensi rendah?

Ini biasanya sakit kepala pertama bagi arsitek atau kepala perdagangan mana pun. Saat pertama kali memutuskan bahasa dan kerangka kerja mana yang harus Anda gunakan, sebagian besar arsitek perlu mempertimbangkan beberapa hal sambil melihat kinerja. Di antaranya adalah latensi (waktu untuk memasarkan perdagangan), throughput (berapa banyak pesanan yang dapat ditangani sistem) tanpa mengorbankan satu atau lainnya, dan tenaga kerja untuk membangunnya. Pilihan yang jelas bagi banyak orang -ketika melihat latensi dan throughput- adalah membuat kode dalam C++, karena kode tersebut lebih dekat ke perangkat keras dan dengan demikian kinerjanya lebih baik, dibandingkan dengan Java.

Java biasanya berjalan di atas perangkat keras dengan menggunakan Java Virtual Machine (JVM) yang biasanya dapat menyebabkan banyak masalah memori, yang mengakibatkan kinerja melambat.

Untuk mengatasi hal ini, guru Java Martin Thompson, insinyur yang membuat LMAX Disruptor, mempercayai Jackie Steward (pengemudi mobil balap) yang menciptakan istilah “ Simpati Mekanis” .

Anda tidak harus menjadi seorang insinyur untuk menjadi seorang pembalap, tetapi Anda harus memiliki simpati mekanik ”.

Di sinilah seorang insinyur perlu menerapkan pemahaman tentang perangkat keras untuk pembuatan perangkat lunak. Dengan memahami mekanika mesin, seorang insinyur dapat memperoleh kinerja terbaik dari sistem tersebut.

Dengan mengkodekan Java dengan struktur data yang benar, teknik memori, keputusan Jaringan, dan desain arsitektur yang tepat, tim dapat mendekati atau setara dengan tingkat kinerja C++. Memilih User Datagram Protocol (UDP) dan Multicasting memungkinkan sequencer untuk menyiarkan data ke beberapa penerima dengan cara yang seefisien mungkin. Ini kemudian memungkinkan jaringan untuk mempercepat latensi pada sistem single-threaded, membuat arsitektur bersih dan memungkinkan semua node pada sistem untuk menerima kumpulan pesan yang sama persis.

Alasan lain mengapa Java lebih populer untuk digunakan di bank adalah karena ada lebih banyak tenaga kerja dan oleh karena itu lebih mudah bagi tim untuk mempekerjakan insinyur.

C ++ masih merupakan bagian pasar yang sangat terspesialisasi, dan ini biasanya menyebabkan sakit kepala bagi manajer perekrutan mana pun dalam hal menemukan bakat yang tepat, mempertahankannya, dan tidak membayar mahal bahkan untuk memilikinya.

Karena sebagian besar bank menggunakan Java, mempekerjakan dalam bahasa ini sangat masuk akal ketika melihat semua faktor yang diperlukan untuk membangun platform perdagangan latensi rendah yang sukses.

Cara yang ideal adalah membuat kode di Java dan mengajari pengembang untuk memiliki simpati mekanis dan mempelajari teknik yang disebutkan sebelumnya yang memungkinkan kinerja optimal saat membangun sistem.

Hal ini membuat saya ingin menulis tentang desain arsitektur yang digunakan untuk sistem perdagangan elektronik pertama yang pernah dibuat tanpa input manusia dan arsitektur yang saya sukai: arsitektur Island ECN Sequencer.

Sequencer adalah bus perpesanan middleware multicast UDP berulir tunggal yang pada dasarnya melakukan multicast semua pesan ke dalam urutan angka. Arsitekturnya sepenuhnya deterministik, artinya setiap node melihat semua pesan dalam urutan yang sama dan semua peristiwa dapat diputar ulang pada aliran tunggal yang menghasilkan keadaan yang sama persis melalui mesin keadaan terbatas. Ini dilihat sebagai desain sederhana namun hingga saat ini masih merupakan arsitektur tercepat yang digunakan perusahaan meskipun usianya sudah lebih dari 20 tahun.

Bagian selanjutnya akan merinci asal-usulnya dan bagaimana sequencer telah berkembang dari Broad Street ke seluruh dunia dengan pertukaran crypto teratas, bank investasi, pembuat pasar (yang terbesar, tercepat dan paling menguntungkan) dan sisi pembelian perusahaan untuk seluruh sistem global mereka.

(Brian Nigito di Jane Street)

Sequencer Levine & Pengaruh Island ECN

Mari kita kembali ke awal tahun 90-an di Wall Street di mana Josh Levine yang putus kuliah dulunya bekerja di Datek Securities (Sekarang dikenal sebagai TD Ameritrade).

Pedagang Datek menjadi sukses dan populer karena praktik mereka -diciptakan oleh Levine- melewati pembuat pasar yang masih memperbarui kutipan mereka secara manual di NASDAQ. Hal ini tentu saja menguntungkan Datek dan para pedagangnya, hingga NASDAQ mengetahui dan menghukum perusahaan tersebut.

Patterson di Darkpools menyebutkan:

“Pembuat pasar Nasdaq, dan gelombang peraturan baru dan rintangan yang terus diserbu NASD, merupakan sumber kecemasan dan kemarahan konstan di Datek. Pembuat pasar secara rutin mengabaikan pesanan SelectNet Datek, mundur dari harga yang mereka posting, sering kali menyebabkan hilangnya peluang atau, lebih buruk lagi, kerugian yang signifikan karena para pedagang, yang berjuang untuk keluar dari posisi di pasar yang bergerak cepat, dibiarkan tertiup angin.

Levine melihat peluang dan memutuskan untuk memulai tokonya sendiri secara resmi pada tahun 1996, Island ECN. Island terdaftar di lantai 6 50 Broad Street (New York) dan disinilah framework sequencer secara resmi dimulai.

Sekarang Levine pada dasarnya dapat melewati pembuat pasar NASDAQ dengan membangun bus pesan sequencer yang akan mencocokkan semua pesanan beli dan jual dan kemudian melakukan perdagangan tanpa input manusia. Levine telah membuat mesin di FoxPro dan dijalankan di DOHS (Anda dapat menemukan kode FoxPro-nya di sini. ).

Dengan membangun sebuah sistem yang dapat melakukan ini, Levine menjadi tokoh terpenting di pasar modern.

Menjadi seorang pria yang tidak ingin menjadi terkenal dan berusaha menjaga dirinya sendiri untuk diperhatikan, Levine mengunci diri di kantornya dan mendedikasikan waktunya untuk menciptakan sistem yang cepat, sederhana, dan dapat diskalakan. Pada dasarnya, sesuatu yang bisa menangani apa pun yang dilontarkan siapa pun. Pada akhir tahun 1990-an Island ECN mengambil 10% dari semua saham yang diperdagangkan di NASDAQ & mereka mengeksekusi 257.140 perdagangan harian (Dibandingkan dengan 28.446 PADA tahun 1997). Ini adalah masalah besar bagi NASDAQ karena mereka melihat volume perdagangan yang sangat besar dari pesaing baru ini, yang melaporkan perdagangan kembali ke NASDAQ. Namun, hal ini menyebabkan pengurasan likuiditas NASDAQ karena mereka tidak mendapatkan keuntungan dari perdagangan tersebut.

Selama bertahun-tahun ini, Island telah membangun tim teknik yang hebat di sekitar Levine yang terdiri dari William Stirling, Mike Blum , Jonathan Ross dan bisa dibilang insinyur terpenting adalah Brian Nigito . (EX Tradescape). Levine melihatnya sebagai anak didiknya dan akan mengatakan bahwa Nigito adalah programmer yang lebih baik darinya.

Pada awal tahun 2000-an, Island tidak dapat memenuhi tuntutan tersebut, sehingga pada tahun 2002 Instinet mengakuisisi Island seharga $508 juta . Hal ini mengakibatkan Levine pergi karena dia tidak ingin bergabung dengan perusahaan saingan yang selalu dia benci.

Pada tahun 2003, akhirnya, tim Island berpisah dan Nigito pergi untuk memimpin 36 orang yang bertanggung jawab di Instinet (Inet) -bekerja sama dengan Constantine Sokoloff, Nigito merekayasa ulang Mesin FoxPro milik Levine ke dalam Java . Saat itu Jonathan Ross adalah CTO INET , dan perlu disebutkan karena dia adalah orang kunci dalam mengemudi sequencer di NASDAQ dan CHI-X dengan Nigito. Hingga hari ini INET ECN Nasdaq masih menggunakan arsitektur sequencer yang menangani miliaran pesan per hari.

Di sisi lain, Stirling dan Blum keluar dan bergabung dengan UBS, yang pada tahun 2004 menjadi Bank Investasi pertama yang menerapkan arsitektur Pulau.

Mereka membangun fondasi global UBS untuk sistem Ekuitas di Stanford, yang masih digunakan sampai sekarang (dan ini adalah bagian dari teknologi latensi rendah inti mereka).

Setelah beberapa tahun, pada tahun 2009, mereka berdua berangkat untuk mengembangkan arsitektur sequencer di tempat lain dan masing-masing menjadi CTO Teza dan Getco (KCG), di sini Blum bergabung kembali dengan rekannya di pulau mantan Nigito.

Pengaruh Blum tidak berhenti sampai di situ, karena pada tahun 2017 dia menjadi mitra di Goldman Sachs, di mana dia bergabung kembali dengan sesama Islander Steve Lui untuk memimpin proyek sequencer Atlas di tim Electronic Trading. Goldman menginvestasikan jutaan dolar AS untuk meningkatkan bisnis ekuitas dan Blum menyebutkan Salah satu tujuannya adalah untuk meningkatkan kinerja perusahaan pada pesanan perdagangan yang bertahan satu mikrodetik (sepersejuta detik) hingga sekitar 30 detik, pesanan berumur pendek yang bank mungkin telah berjuang dengan di masa lalu . Dalam beberapa kasus, perdagangan yang memakan waktu ratusan milidetik akan terjadi lebih cepat dari 100 mikrodetik”.

Dengan Goldman Sachs menjadi Bank Investasi ke-2 yang mengimplementasikan arsitektur Island secara global, perusahaan Crypto dan bank Investasi lainnya kini mulai mengikutinya terutama di APAC. Dengan area Crypto sekarang dan memiliki sejumlah besar pengembang, saya telah melihat masuknya non-penduduk pulau yang berkembang yang membuat saya berpikir bahwa arsitektur ini -yang sudah sangat tua- akan terus menyebar dan dipelajari selama tahun-tahun mendatang. .

Sequencer masih belum masuk ke

Namun, bus perpesanan sequencer masih merupakan ceruk dalam dunia fintech karena banyak platform perdagangan tidak menggunakannya. Alasan utamanya adalah sulitnya menyelesaikan arsitektur dengan benar karena Anda memerlukan tim ahli sequencer profesional untuk membangunnya. Ini sulit ditemukan dan berarti Anda memasuki ceruk pasar yang akan mahal dan akan memakan waktu lama jika dibangun sendiri. Butuh waktu lama untuk mematangkan sistem yang begitu rumit, penuh dengan bagian yang bergerak dan kotak sudut.

Kedua, banyak manajer lebih suka menangani throughput daripada latensi dan merasa bahwa sistem perdagangan multithreaded akan lebih cocok untuk menangani lebih banyak produk sentuhan tinggi dan dengan demikian tidak ingin turun ke rute sequencer thread tunggal. Pengganggu LMAX Thompson adalah pilihan populer untuk sistem perdagangan multithreaded, tetapi ini dapat membawa perangkap multithreading yang begitu umum bagi pengembang dan menghilangkan determinisme. Pendekatan single-threaded memberikan kode yang lebih kuat dan bebas bug.

Lebih jauh lagi, bahkan mengambil investasi ini berarti memulai dari awal, yang mana bank enggan melakukannya karena akan menelan biaya jutaan. Untuk perusahaan yang memiliki sebagian besar pangsa pasar, Anda dapat membayangkan mengapa mereka enggan mengubahnya. Kalau tidak rusak kenapa diperbaiki?

Untuk sedikit mengurangi risiko investasi dengan waktu ke pasar, banyak bank dan perusahaan crypto menggunakan vendor latensi rendah berlisensi yang dapat menjalankan jaringan dan mesin mereka dalam beberapa bulan. Ada yang lama yang digunakan bank, seperti: Tibco dan Solace, yang lambat tapi populer di kalangan bank. Ini adalah bus perpesanan umum dan bukan jaringan UDP multicast yang andal.

Masa depan

Sebagai kesimpulan, jelas bahwa pertumbuhan sequencer ke dalam dunia perdagangan bergantung pada orang-orang Island ECN & telah melihat beberapa riak pertumbuhan lebih lanjut selama 20 tahun terakhir. Melihat ke pasar saat ini, dengan munculnya crypto dan lebih banyak bank yang menerapkan sequencer sejak GS, saya yakin ini akan tumbuh dua kali lipat di tahun-tahun mendatang.

Levine menciptakan sesuatu yang sangat sederhana dan cepat dan baru sekarang perusahaan perdagangan mulai mengikutinya. Jika Anda melihat seberapa baik investasi telah terbayar untuk perusahaan-perusahaan ini yang dapat menangani jutaan pesanan per detik di sub mikro java, maka Anda juga akan melakukan investasi untuk mempekerjakan kumpulan programmer Java aktif yang lebih besar, perusahaan dapat memiliki tenaga kerja untuk mendapatkannya. dimulai di pasar.

Selain itu, ada beberapa vendor Sequencer yang dapat saya perkenalkan kepada Anda, dan ini akan membuat Anda aktif dan berjalan dalam waktu 6 bulan sehingga tidak perlu mempekerjakan orang inti untuk itu. Selain itu, investasi bank berjalan dalam siklus tetapi jika Anda saat ini berada di puncak dan memutuskan untuk tidak berinvestasi, Anda hanya akan tertinggal dari persaingan. Potensi tidak terbatas dari sequencer Levine, Ini dimulai di 60th Broad Street dan saya yakin sequencer dapat melangkah lebih jauh dari perdagangan dan suatu hari kita akan melihatnya di luar angkasa.