📝

Draft article

This draft is visible to admins and superusers only. Sign in with an authorized account.

← Kembali ke artikel
July 22, 2026
5 menit baca

Smart Order Routing di Crypto: Satu Order, Dua Belas Venue, Tanpa NBBO

Smart Order Routing di Crypto: Satu Order, Dua Belas Venue, Tanpa NBBO
#eksekusi
#smart order routing
#market microstructure
#fragmentasi likuiditas
#crypto
#quant
#python
#tca

Kamu perlu membeli 400 BTC. Binance punya depth paling besar. OKX dan Bybit masing-masing menampilkan size lumayan satu tick lebih lebar. Coinbase mengutip harga headline yang lebih baik, tapi dalam USD, bukan USDT. Top of book Kraken terlihat fantastis dan sudah basi 400 milidetik. Upbit lebih baik lagi, tapi persetujuan compliance-mu untuk Korea tidak ada, begitu juga KRW-mu. Trader ekuitas yang melihat kekacauan ini akan langsung mengambil smart order router dan berhenti berpikir, karena di ekuitas bagian-bagian sulit dari routing sudah diregulasi masuk ke dalam infrastruktur dua dekade lalu. Di crypto, kamulah infrastrukturnya. Tidak ada consolidated tape, tidak ada order-protection rule, tidak ada fee cap, tidak ada netted settlement — dan yang paling mendasar, tidak ada kemampuan untuk trading di tempat modalmu belum berada.

Artikel ini membahas cara membangun router itu tetap saja: consolidated book dan mengapa naive best-price routing terhadapnya merugikan, masalah alokasi sebagai program konveks yang benar-benar bisa kamu selesaikan dalam deadline child-order, batasan modal yang membuat SOR crypto tak terpisahkan dari manajemen treasury, maker-aware routing lintas venue, dan feedback loop TCA yang memberitahumu apakah semua ini bekerja. Ini adalah saudara teknis dari Eksekusi Arbitrase Kompleks di Rust — artikel itu membahas nanodetik; artikel ini membahas keputusan.

Apa yang didapat SOR ekuitas secara gratis

Perlu dijelaskan secara presisi apa yang diwarisi routing ekuitas AS dari regulasi, karena setiap item dalam daftar ini adalah sesuatu yang harus kamu bangun ulang atau secara sadar hidup tanpanya.

Regulation NMS (SEC, 2005) melakukan tiga hal yang relevan di sini. Rule 611, Order Protection Rule, melarang eksekusi pada harga yang lebih buruk dari protected quote yang ditampilkan di bursa lain — sebuah "trade-through" — yang memaksa setiap broker untuk me-routing ke harga tertampil terbaik atau menyapunya dengan intermarket sweep order. Rule 610 membatasi access fee yang bisa dikenakan venue mana pun untuk mengambil protected quote pada $0.003 per saham, sehingga harga yang ditampilkan dapat dibandingkan lintas venue hingga selisih 30 mils. Dan consolidated tape (SIP) mempublikasikan National Best Bid and Offer, satu jawaban resmi tunggal untuk pertanyaan "apa itu market."

Vonis akademis atas arsitektur ini adalah bahwa ia bekerja dengan mengejutkan baik. O'Hara and Ye (2011), "Is market fragmentation harming market quality?" (Journal of Financial Economics 100(3), 459–474), meneliti saham-saham AS lintas level fragmentasi dan menemukan bahwa saham yang lebih terfragmentasi justru memiliki biaya transaksi yang lebih rendah dan eksekusi yang lebih cepat, dengan harga yang lebih mendekati random walk. Ringkasan mereka adalah frasa kuncinya: ekuitas AS berperilaku sebagai "pasar virtual tunggal dengan banyak titik masuk." Fragmentasi tidak berbahaya ketika smart router plus trade-through protection menyatukan kembali fragmen-fragmen tersebut. Foucault and Menkveld (2008), "Competition for Order Flow and Smart Order Routing Systems" (Journal of Finance 63(1), 119–158), menunjukkan mekanismenya di pasar Belanda: ketika limit order book kedua (EuroSETS milik LSE) masuk bersaing dengan Euronext, consolidated depth justru meningkat, dan pasokan likuiditas di sebuah venue langsung teredam oleh tingkat trade-through-nya — router yang mengabaikan sebuah venue membunuh insentif venue itu untuk memberikan quote.

Bahkan di dunia yang teregulasi ini, pandangan consolidated adalah kebohongan pada horizon pendek. Ding, Hanna, and Hendershott (2014), "How Slow Is the NBBO? A Comparison with Direct Exchange Feeds" (Financial Review 49(2), 313–332), mengukur SIP NBBO terhadap NBBO yang dibangun dari direct exchange feed di data center yang sama dan menemukan dislokasi beberapa kali per detik pada nama-nama saham aktif, biasanya berlangsung satu hingga dua milidetik — murni latensi agregasi dan transport. Ingat angka itu: itu adalah versi ekuitas dari masalah yang satu hingga dua orde magnitudo lebih buruk di crypto.

Sekarang hapus semuanya. Crypto tidak punya NBBO karena tidak ada SIP. Tidak ada trade-through rule: sebuah venue dengan senang hati akan mengeksekusimu pada harga lima tick menembus quote venue lain, dan tidak ada yang mengajukan apa pun. Tidak ada fee cap: taker fee berkisar dari tier negosiasi sub-basis-point hingga jadwal ritel 10 bps, sehingga urutan harga tertampil dan urutan harga bersih rutin berbeda. Dan tidak ada consolidated clearing: setiap bursa adalah silonya sendiri dengan saldo yang harus di-prefund. Kamu adalah SIP, router, dan clearing firm, sekaligus.

Membangun consolidated book, dan mengapa naive best-price routing gagal

Baseline engineering-nya tidak glamor: N feed WebSocket L2, penanganan gap sequence-number per venue, normalisasi simbol dan tick-size, serta normalisasi mata uang kuotasi (book BTC-USD dan book BTC-USDT berbeda karena rate USDT/USD, yang tidak selalu identik dengan 1.0 dan kadang jauh dari itu). Gabungkan book yang sudah dinormalisasi menjadi satu ladder terurut harga, menandai setiap level dengan venue-nya dan — yang krusial — usia snapshot asalnya. Jika merged book-mu tidak membawa usia quote per venue sebagai field kelas satu, kamu membangun screensaver, bukan router.

Consolidated order book lintas venue dengan likuiditas basi dan phantom yang disorot

Router naive menyusuri ladder gabungan ini secara greedy: harga bersih terbaik lebih dulu. Ini gagal karena tiga alasan berbeda, dan penting untuk menjaganya tetap terpisah karena solusinya pun berbeda.

Quote basi dan skew latensi. Venue-venuemu tidak mengirim data dengan latensi yang sama. Feed yang colocated mungkin berusia 3 ms ketika kamu bertindak atasnya; WebSocket publik dari venue di benua lain mungkin berusia 300 ms. Top of book gabungan karenanya adalah komposit dari masa lalu yang berbeda-beda. Ketika BTC bergerak 10 bps dalam 200 ms — hal rutin — quote dari venue yang basi terlihat menarik secara sistematis persis di sisi yang salah. Me-routing ke sana membuatmu memenangkan lomba yang sudah kalah: quote-nya sudah hilang, IOC-mu kembali kosong atau terisi sebagian, dan pada saat kamu me-routing ulang, venue yang segar sudah reprice. Ini adalah masalah dislokasi SIP 1–2 ms milik Ding–Hanna–Hendershott, hanya saja dislokasimu berlangsung ratusan milidetik dan tidak ada yang berkewajiban menghormati apa pun.

Phantom liquidity. Menjumlahkan size tertampil lintas venue itu overcount, karena inventory market maker yang sama di-quote di beberapa tempat sekaligus. Van Kervel (2015), "Competition for Order Flow with Fast and Slow Traders" (Review of Financial Studies 28(7), 2094–2127), mendokumentasikan ini di ekuitas terfragmentasi: sebuah trade di satu venue diikuti dalam hitungan milidetik oleh pembatalan besar-besaran limit order di venue pesaing, persis seperti diprediksi model di mana fast liquidity provider memberi quote size duplikat di mana-mana dan menarik salinannya begitu salah satu kena hit. Market maker crypto menjalankan playbook yang sama lintas Binance/OKX/Bybit, sehingga depth gabungan yang dapat diakses jauh lebih kecil dari depth gabungan yang ditampilkan, dan selisihnya membesar sesuai seberapa sekuensial (bukan simultan) kamu menghantam venue-venue itu. Jika router-mu mengirim child order satu venue pada satu waktu, menunggu konfirmasi fill masing-masing, kamu sedang memanen dirimu sendiri: setiap fill memberi sinyal ke seluruh pasar untuk membatalkan quote-nya.

Fee mengurutkan ulang ladder. Venue yang menampilkan harga mentah terbaik dengan taker fee 7.5 bps sering kali justru merupakan harga bersih terburuk dalam book. Ini terdengar terlalu jelas untuk perlu dinyatakan, namun "harga tertampil terbaik" adalah persis apa yang diimplementasikan sebagian besar router crypto generasi pertama (dan beberapa produk vendor). Perbandingan net-of-fee adalah standar minimum; artikel saudara tentang fee dan rebate maker-taker membahas matematika fee per venue, dinamika tier VIP, dan mengapa fee marjinal-mu — bukan harga di stiker — yang seharusnya masuk ke router.

Optimasi routing

Formalkan masalah child-order. Kamu harus membeli kuantitas QQ sekarang, marketable, lintas venue v=1,,Vv = 1,\dots,V. Misalkan Av(x)A_v(x) adalah harga ask marjinal venue vv setelah memakan xx unit dari book-nya (fungsi step non-decreasing dari snapshot L2), fvf_v taker fee-nya, dan λv\lambda_v penalti per unit untuk staleness dan adverse selection di venue vv (dikalibrasi di bawah, dari markout-mu sendiri). Alokasi q=(q1,,qV)q = (q_1, \dots, q_V) menyelesaikan

minq0,  vqv=Q    v=1VCv(qv),Cv(qv)=(1+fv)0qvAv(x)dx  +  λvqv.\min_{q \ge 0,\; \sum_v q_v = Q} \;\; \sum_{v=1}^{V} C_v(q_v), \qquad C_v(q_v) = (1+f_v)\int_0^{q_v} A_v(x)\,dx \;+\; \lambda_v\, q_v .

Setiap CvC_v bersifat konveks (integral dari fungsi non-decreasing, ditambah term linear), sehingga masalahnya konveks, dan kondisi KKT memberi seluruh ceritanya: ada threshold μ\mu sedemikian rupa sehingga

Cv(qv)=(1+fv)Av(qv)+λv=μuntuk setiap venue dengan qv>0,C_v'(q_v^*) = (1+f_v)\,A_v(q_v^*) + \lambda_v = \mu \quad \text{untuk setiap venue dengan } q_v^* > 0,

dan Cv(0)μC_v'(0) \ge \mu untuk venue yang tidak menerima apa-apa. Dengan kata lain: tuangkan order ke berbagai venue seperti air, menyamakan biaya marjinal all-in di setiap tempat kamu trading. Sebuah venue dikecualikan persis ketika unit pertamanya — harga terbaik, ditambah fee, ditambah penalti staleness — lebih buruk dari unit marjinal di tempat lain.

Alokasi water-filling menyamakan biaya marjinal di seluruh kurva biaya venue

Untuk book berbentuk fungsi step, solusi water-filling dihitung dengan penyusuran greedy pada ladder gabungan yang disesuaikan fee-dan-penalti — jadi penyusuran depth greedy itu sendiri tidak salah; ia adalah solusi eksak asalkan kamu menyusuri secara greedy biaya marjinal bersih dengan size yang sudah di-haircut, bukan harga mentah tertampil. Perbedaan itu adalah keseluruhan selisih antara router dan screensaver.

Perlakuan kanonis untuk masalah umum ini adalah Cont and Kukanov, "Optimal order placement in limit order markets" (Quantitative Finance 17(1), 21–39, 2017; arXiv:1210.1625). Mereka memformulasikan penempatan order lintas venue — termasuk pembagian antara limit dan market order, fee dan rebate, serta penalti untuk risiko eksekusi — sebagai optimasi konveks, menurunkan bentuk closed-form eksplisit untuk pembagian limit/market pada satu venue, dan memberikan algoritma stochastic-approximation untuk kasus multi-venue yang menghitung alokasi lintas dua belas bursa dalam kurang dari 200 ms. Kerangka ini mendahului crypto tapi berpindah hampir tanpa perubahan, karena ia tidak pernah mengasumsikan adanya NBBO sejak awal — ia hanya mengasumsikan book per venue, fee per venue, dan ketidakpastian tentang fill, yang persis merupakan situasi crypto.

Sketsa minimal dan jujur dari sisi marketable (water-fill konveks dengan haircut staleness):

import math
from dataclasses import dataclass

@dataclass
class Venue:
    name: str
    asks: list[tuple[float, float]]  # (price, displayed size), sorted
    taker_fee: float                 # fractional, e.g. 0.0002 = 2 bps
    quote_age_ms: float
    kappa: float                     # phantom-liquidity decay rate, 1/ms
    lam: float                       # staleness/toxicity penalty, $ per unit

def allocate(venues: list[Venue], Q: float):
    ladder = []  # (marginal all-in cost, accessible qty, venue)
    for v in venues:
        surv = math.exp(-v.kappa * v.quote_age_ms)  # P(level still there)
        for price, size in v.asks:
            cost = price * (1.0 + v.taker_fee) + v.lam
            ladder.append((cost, size * surv, v.name))
    ladder.sort()

    fills, remaining = {}, Q
    for cost, qty, name in ladder:
        take = min(qty, remaining)
        fills[name] = fills.get(name, 0.0) + take
        remaining -= take
        if remaining <= 1e-12:
            break
    return fills, remaining  # remaining > 0 => book too thin: slice parent

Enam belas baris logika; seluruh kecerdasannya ada pada input-nya. κ\kappa (seberapa cepat size tertampil menguap seiring usia quote) dikalibrasi dari rasio fill IOC-mu sendiri sebagai fungsi usia quote pada waktu pengiriman. λv\lambda_v berasal dari markout per venue (bagian terakhir). Keduanya diukur, bukan ditebak.

Contoh kerja. Beli Q=10Q = 10 BTC lintas tiga venue:

Venue Taker fee Usia quote Ask (harga × size)
A (dalam, segar) 2.0 bps 10 ms 87.000 × 3.0; 87.010 × 4.0; 87.025 × 6.0
B (fee murah, basi) 1.0 bps 250 ms 86.995 × 1.5; 87.015 × 2.0
C (headline terbaik, fee gemuk) 7.5 bps 20 ms 86.990 × 2.0; 87.000 × 3.0

Tape mentah bilang C punya ask terbaik (86.990), lalu B. Sesuaikan fee dan ladder-nya berubah urutan total: level teratas C bersih 86,990×1.00075=87.05586{,}990 \times 1.00075 = 87.055, likuiditas terburuk di layar. Level teratas B bersih 87.004, level teratas A bersih 87.017. Terapkan haircut staleness 30% ke size tertampil B (eκ250ms0.7e^{-\kappa \cdot 250\text{ms}} \approx 0.7) dan water-fill: 1.05 BTC dari level pertama B, 3.0 dari level pertama A, 1.4 dari level kedua B, 4.0 dari level kedua A, 0.55 dari level ketiga A. Rata-rata all-in: **87.022,2perBTC.RouternaivebestdisplayedpriceCdulu,laluBpadasizenilaiwajah,lalulevelkeduaCmembayar87.022,2 per BTC**. Router naive-best-displayed-price — C dulu, lalu B pada size nilai wajah, lalu level kedua C — membayar 87.038,8: 1,9 bps lebih buruk, sekitar $166 pada satu child 10-BTC, yang bertumpuk pada setiap child dari setiap parent sepanjang hari. Dan perhatikan poin klimaksnya: venue dengan harga tertampil terbaik di tape tidak menerima flow sama sekali dari router yang teroptimasi. Di crypto, tidak ada yang memaksamu untuk trading di sana — routing melalui "protected quote" bukanlah konsep yang berlaku — dan alokasi yang benar sering kali mengabaikan harga terbaik yang tampak sepenuhnya.

Apa yang masih diabaikan program konveks ini: simultanitas (tembakkan semua child venue dalam milidetik yang sama, atau pembatalan ala van Kervel akan me-reprice venue di tengah eksekusi), lot size diskrit dan notional minimum (bulatkan solusi kontinu, perbaiki secara greedy), dan opsi untuk tidak menyeberangi spread sama sekali — yang menjadi topik Bagian 5. Untuk pertanyaan yang lebih dalam tentang bagaimana parent besar seharusnya diiris sepanjang waktu sebelum semua logika venue ini berjalan, lihat Eksekusi Optimal Almgren–Chriss; SOR memutuskan ke mana sebuah child pergi, bukan kapan child-child itu terjadi.

Batasan modal: SOR adalah manajemen treasury

Semua yang di atas diam-diam mengasumsikan kamu bisa trading qvq_v di venue vv. Di ekuitas, asumsi itu gratis: satu prime broker, netted settlement, trading sekarang dan pindahkan uang belakangan. Di crypto, itu adalah batasan yang mengikat dari seluruh sistem. Bursa menuntut saldo yang di-prefund — kamu tidak bisa mengangkat ask Kraken dengan USDT yang duduk di Binance. Jadi masalah sebenarnya adalah

minq0,  qv=QvCv(qv)s.t.qvBv    v,\min_{q \ge 0,\; \sum q_v = Q} \sum_v C_v(q_v) \quad \text{s.t.} \quad q_v \le B_v \;\; \forall v,

di mana BvB_v adalah saldo tersedia-mu di venue vv (dalam aset kuotasi untuk pembelian, aset dasar untuk penjualan). Kondisi KKT sekarang berbunyi Cv(qv)=μηvC_v'(q_v^*) = \mu - \eta_v dengan ηv0\eta_v \ge 0 pengali pada batas saldo. Pada venue yang terbatas, ηv=μCv(Bv)>0\eta_v = \mu - C_v'(B_v) > 0: dolar marjinal di sana bereksekusi lebih murah dari level air pasar secara keseluruhan, dan kamu terpaksa mendorong flow ke venue yang lebih mahal. Pengali itu bukan abstraksi — ηv\eta_v secara harfiah adalah dolar-per-unit yang akan kamu hemat jika ada satu unit saldo tambahan di venue vv sekarang juga. Dijumlahkan sepanjang flow prediksimu, itu adalah kesediaanmu-untuk-membayar transfer rebalancing, dan keputusan rebalancing menjadi perbandingan yang bisa dieksekusi sistem treasury mana pun: pindahkan inventory ketika

E ⁣[future childrenηv]  >  fee transfer+pergerakan merugikan yang diharapkan selama latensi transfer.\mathbb{E}\!\left[\textstyle\sum_{\text{future children}} \eta_v \right] \;>\; \text{fee transfer} + \text{pergerakan merugikan yang diharapkan selama latensi transfer}.

Sisi kanan itu tidak kecil dan tidak konstan. BTC on-chain butuh 2–6 konfirmasi (20–60 menit) sebelum bursa mengkredit-nya; transfer ERC-20 butuh waktu beberapa menit ditambah gas yang melonjak persis ketika market sedang sibuk; jalur TRC-20 dan Solana lebih cepat dan murah tapi tidak didukung secara universal; dan setiap bursa menambahkan antrean pemrosesan penarikannya sendiri, yang memanjang dari menit ke jam persis pada saat-saat volatilitas, ketika router-mu paling ingin inventory-nya dipindahkan. Perhitungan biaya transfer yang lengkap — fee, distribusi latensi, dan risiko harga yang kamu tanggung di tengah perjalanan — dijabarkan di artikel arbitrase funding rate, dan berpindah apa adanya: rebalance SOR adalah objek yang sama dengan transfer leg arbitrase, termasuk sisi biayanya.

Inilah mengapa hasil akademis yang perlu diinternalisasi di sini bukan paper eksekusi melainkan Makarov and Schoar (2020), "Trading and Arbitrage in Cryptocurrency Markets" (Journal of Financial Economics 135(2), 293–319). Mereka mendokumentasikan deviasi harga lintas bursa yang bertahan selama hari hingga minggu — termasuk "kimchi premium" Korea yang melampaui 40% pada awal 2018 — dan menunjukkan bahwa biaya transaksi tidak bisa menjelaskannya; modal arbitrase yang lambat bergerak dan dibatasi kontrol modal yang bisa. Venue crypto bukanlah "pasar virtual tunggal dengan banyak titik masuk" ala O'Hara–Ye. Mereka adalah kolam-kolam yang tersegmentasi sebagian, terhubung oleh pipa yang lambat dan mahal, dan router-mu hidup di dalam segmentasi itu. SOR crypto tanpa model treasury adalah SOR ekuitas yang sekadar cosplay.

Loop routing cepat mengalokasikan dalam saldo, loop treasury lambat memposisikan ulang inventory

Dalam praktiknya ini menjadi controller dua-timescale. Loop cepat (milidetik) menyelesaikan water-fill terbatas dalam saldo saat ini, setiap child order. Loop lambat (menit hingga jam) mengamati deret waktu shadow price ηv\eta_v dan flow prediksi, dan menjadwalkan transfer ketika komponen persisten ηv\eta_v melewati ambang biaya transfer — dengan histeresis, karena memantulkan inventory bolak-balik antar venue karena noise adalah cara kamu mendonasikan edge-mu ke jaringan Tron. Desk institusional mengompres masalah ini dengan off-exchange settlement (Copper ClearLoop, Ceffu MirrorX): kolateral duduk bersama custodian dan di-mirror ke venue-venue, yang mengecilkan latensi transfer secara dramatis untuk venue yang didukung — ini mempersempit batasannya, tapi tidak menghapusnya, dan memperkenalkan item baris counterparty-nya sendiri.

Maker-aware routing dan permainan antrean lintas venue

Router yang hanya menyeberangi spread meninggalkan likuiditas termurah tanpa dibeli: milikmu sendiri. Kerangka Cont–Kukanov sudah mengandung jawabannya — bentuk closed-form satu-venue mereka membagi order antara posting dan taking berdasarkan fee, posisi antrean, dan aversi risiko eksekusi — dan versi multi-venue-nya menggeneralisasinya: posting secara pasif di venue di mana (fee maker, panjang antrean, probabilitas fill dalam deadline child) mendominasi, ambil di venue di mana kesegeraan murah, dan perlakukan sisa pasif yang tidak terisi sebagai flow yang masuk kembali ke optimasi taker pada deadline.

Dua keanehan spesifik-crypto membuat ini lebih kaya dari versi ekuitasnya.

Mengejar fee adalah jebakan yang sudah terukur. Battalio, Corwin, and Jennings (2016), "Can Brokers Have It All? On the Relation between Make-Take Fees and Limit Order Execution Quality" (Journal of Finance 71(5)), menunjukkan bahwa broker AS yang me-routing limit order ke venue dengan rebate tertinggi memberikan eksekusi yang secara terukur lebih buruk — fill rate lebih rendah, kualitas realisasi lebih buruk — karena venue rebate itulah tempat order dari setiap pemburu rebate lain juga duduk: antrean terpanjang, fill paling adverse. Analog crypto-nya persis. Venue yang membayar rebate maker terbaik menarik quote pasif dari setiap market maker; order-mu bergabung ke antrean dalam dan terisi terutama saat harga sedang akan trade-through kamu. Ekonomi maker net-of-markout per venue (bagian berikutnya) rutin mengurutkan venue berlawanan dengan jadwal fee-nya.

Skew latensi adalah permainan dua sisi. Aliran informasi lintas venue yang sama yang didokumentasikan van Kervel sebagai pembatalan defensif adalah, dari sisi lain, sinyal ofensif: sebuah trade di top of book Binance memprediksi trade dan pembatalan di level yang sesuai di OKX dalam hitungan milidetik. Router maker-aware karenanya harus (a) me-reprice order resting-nya berdasarkan event venue lain — mematok ke microprice lintas venue, bukan mid lokal — atau ia menjadi counterparty lambat yang diambil untung oleh arbitrageur lintas venue; dan (b) ia bisa memainkan permainan itu secara sengaja: posting di venue yang lag, hedge di venue yang lead pada saat fill terjadi. Itu adalah cross-venue queue arbitrage, dan itu adalah struktur latensi yang sama yang dieksploitasi dalam eksekusi arbitrase lintas bursa, hanya saja tertanam dalam mandat eksekusi, bukan dalam buku stat-arb. Persyaratan operasionalnya identik: event fill di venue A dan order hedge ke venue B harus hidup di dalam jalur kode berlatensi milidetik-satu-digit yang sama, atau edge-nya jadi milik orang lain.

Mengukur kualitas routing: markout dan tabel liga

Router ekuitas didisiplinkan oleh disclosure Rule 605/606. Tidak ada yang mendisiplinkan router-mu kecuali TCA milikmu sendiri — kerangka dari implementation shortfall dan TCA adalah papan skornya; berikut irisan spesifik-router-nya.

Pengukuran atomiknya adalah markout per venue: untuk setiap fill, catat mid (consolidated, terkoreksi-latensi) pada t+Δt + \Delta untuk Δ{100ms,1s,10s,1min}\Delta \in \{100\text{ms}, 1\text{s}, 10\text{s}, 1\text{min}\}, ditandai sehingga negatif berarti market bergerak melawan fill-mu. Agregasikan menjadi tabel liga all-in:

Venue Share fill taker Eff. spread (bps) Fee (bps) Markout 1s (bps) Biaya all-in (bps)
A 46% 1,4 2,0 −0,6 4,0
B 31% 1,9 1,0 −2,1 5,0
C 23% 1,2 7,5 −0,4 9,1

Kolom fee bilang B adalah venue murah. Kolom all-in bilang B adalah venue yang mahal: quote-nya yang basi mengisimu secara selektif ketika market sudah bergerak menembusnya, dan markout 1 detik menagih tagihannya. Pembalikan ini — peringkat fee versus peringkat biaya efektif — adalah temuan paling konsisten ketika desk pertama kali membangun tabel ini, dan itu persis angka yang harus kembali masuk ke router: penalti λv\lambda_v dari program konveks adalah defisit markout persisten per venue, diukur, dihaluskan, dan diperbarui. Router dan TCA membentuk closed loop, atau tak satu pun bekerja.

Satu jebakan metodologis: tabel liga yang dibangun dari router live terkontaminasi bias seleksi. Jika router sudah mengirim flow yang sulit dan terinformasi ke venue yang dalam dan flow yang mudah ke venue yang murah, markout venue yang dalam terlihat tidak adil buruknya. Perbaikan yang bersih adalah randomisasi yang disengaja — routing beberapa persen child secara seragam acak (router ε\varepsilon-greedy, yang akan dikenali quant sebagai bandit dengan prior optimasi-konveks) — sehingga ada counterfactual yang bisa dibandingkan. Ini menelan biaya beberapa basis poin pada irisan yang diacak dan itulah satu-satunya cara agar 95% flow sisanya terbukti di-routing dengan baik.

Jadi susunannya: consolidated book yang jujur soal latensi; water-fill konveks atas biaya marjinal bersih dengan parameter evaporasi dan toksisitas yang terukur; loop cepat berbatas-saldo yang shadow price-nya menggerakkan loop lambat sadar-biaya-transfer; penempatan pasif yang menghormati antrean dan aliran informasi lintas venue; dan TCA berbasis markout dan acak yang memberi umpan balik ke setiap parameter. Tidak ada satu pun komponen ini yang secara individu dalam. Sistemnya yang dalam — karena di crypto, tidak seperti ekuitas, tidak ada regulator yang membangun satu pun lapisannya untukmu, dan market mengenakan biaya 2 bps per child order, selamanya, sampai kamu membangunnya sendiri.

Penafian: Informasi yang disediakan dalam artikel ini hanya untuk tujuan edukasi dan informasi serta tidak merupakan nasihat keuangan, investasi, atau trading. Trading mata uang kripto mengandung risiko kerugian yang signifikan.

Penulis

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Selangkah Lebih Maju dari Pasar

Berlangganan newsletter kami untuk wawasan AI trading eksklusif, analisis pasar, dan pembaruan platform.

Kami menghormati privasi Anda. Berhenti berlangganan kapan saja.