← Kembali ke artikel
July 21, 2026
5 menit baca

Keputusan maker-taker: tingkatan biaya, rebate, dan biaya sebenarnya dari melintasi spread

Keputusan maker-taker: tingkatan biaya, rebate, dan biaya sebenarnya dari melintasi spread
#maker taker
#biaya trading
#rebate
#adverse selection
#market making
#eksekusi
#market microstructure
#backtest

Setiap order yang Anda kirim membuat satu pilihan biner sebelum membuat pilihan lainnya: melintasi spread dan membayar biaya taker, atau beristirahat di order book dan membayar biaya maker — bahkan mungkin mengumpulkan rebate. Industri membingkai ini sebagai optimasi biaya, dan tabel biaya membuatnya terlihat seperti itu: taker 5 bps, maker 2 bps, penghematan 3 bps, flag post-only aktif, selesai. Bingkai itu adalah topeng. Di baliknya, maker versus taker adalah trade tentang adverse selection: apakah Anda membayar harga yang diketahui untuk kesegeraan, atau menjual ke pasar sebuah opsi untuk mengisi order Anda sesuai kebijakan pasar — opsi yang dieksekusi oleh counterparty yang punya informasi justru pada saat fill itu merugikan Anda. Jadwal biaya menetapkan harga opsi itu untuk partisipan rata-rata. Anda bukan partisipan rata-rata, begitu pula flow yang mengenai quote Anda.

Artikel ini melakukan matematika yang disembunyikan tabel biaya: titik impas yang telah dikoreksi, mengapa Glosten-Milgrom (1985) mengimplikasikan bahwa fill pasif secara struktural bias melawan Anda, apa yang dilakukan tingkatan biaya kripto nyata dan diskon token terhadap angka-angka tersebut, mengapa rebate mining mati di ekuitas dan bentuk mutasi apa yang bertahan di kripto, bagaimana posisi antrean menentukan nilai sebenarnya dari sebuah rebate, dan cara memodelkan semuanya dalam backtest tanpa melakukan bug biaya paling umum dalam bisnis ini.

Titik impas naif — dan suku yang dilupakan semua orang

Notasi: spread yang dikuotasi ss, biaya taker ftf_t, biaya maker fmf_m (negatif jika berupa rebate), semuanya dalam basis poin dari notional, dengan mid sebagai benchmark harga. Melintasi spread membebani Anda setengah spread ditambah biaya taker; beristirahat menghasilkan setengah spread dan membebani biaya maker:

Ctaker=s2+ft,Cmakernaive=fms2C_{\text{taker}} = \frac{s}{2} + f_t, \qquad C_{\text{maker}}^{\text{naive}} = f_m - \frac{s}{2}

Masukkan tarif dasar Binance USDⓈ-M futures — maker 2 bps, taker 5 bps — pada perp yang dikuotasi 2 bps lebar: taker membebani 1+5=61 + 5 = 6 bps, maker "membebani" 21=12 - 1 = 1 bps. Penghematan yang tampak: 5 bps per trade, setiap trade. Untuk strategi yang melakukan 20 round trip per hari, ini diklaim setara 100 bps edge harian hanya dari satu checkbox.

Perhatikan dulu sesuatu tentang angka-angka ini: biaya bukanlah koreksi terhadap spread — pada pasangan kripto yang likuid, biaya adalah biayanya. Perp BTCUSDT sering dikuotasi kurang dari 1 bps lebar sementara taker ritel membayar 5 bps. Setengah-spread hanyalah kesalahan pembulatan dibanding biaya. Ini kebalikan dari intuisi ekuitas, di mana spread dan biaya berada pada orde besaran yang sama, dan inilah mengapa di kripto setiap perbandingan naif berteriak "selalu jadi maker." Ini juga mengapa backtest market-making pertama selalu profitabel dan sebagian besar deployment pertama tidak.

Biaya maker yang naif kehilangan tiga suku:

  1. Risiko tidak terisi (non-fill). Limit order bukan trade; ia adalah tiket lotre untuk sebuah trade. Ketika tidak terisi, Anda melewatkan pergerakan atau melintas belakangan pada harga yang lebih buruk.
  2. Adverse selection. Dengan syarat terisi, harga lebih mungkin bergerak melawan Anda dibanding yang disarankan oleh distribusi tanpa syarat. Ini bukan nasib buruk; ini adalah teorema.
  3. Biaya re-quote. Mengejar pasar dengan cancel/replace mereset posisi antrean Anda ke belakang, yang secara diam-diam mengubah distribusi fill Anda menjadi kebanyakan fill tipe-2.

Suku kedua adalah yang memiliki lima puluh tahun teori di belakangnya, jadi mari kita lakukan dengan benar.

Glosten-Milgrom: fill adalah kabar buruk

Glosten dan Milgrom (1985), "Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders" (Journal of Financial Economics 14), adalah model paling bersih tentang mengapa spread ada sama sekali. Market maker yang risk-neutral, kompetitif, dan tanpa biaya mengkuotasi bid dan ask. Sebagian μ\mu dari trader yang masuk adalah informed — mereka tahu nilai sebenarnya aset VV — dan sisanya bertrading karena alasan eksogen, membeli atau menjual dengan probabilitas sama. Market maker tidak bisa membedakan mereka. Kompetisi memaksa setiap quote menjadi ekspektasi bersyarat:

ask=E[Vtrader berikutnya beli],bid=E[Vtrader berikutnya jual]\text{ask} = \mathbb{E}[V \mid \text{trader berikutnya beli}], \qquad \text{bid} = \mathbb{E}[V \mid \text{trader berikutnya jual}]

Contoh angka. Misalkan VV adalah 101 atau 99 dengan probabilitas sama, dan μ=0.2\mu = 0.2. Jika V=101V = 101, order beli datang dengan probabilitas μ+(1μ)/2=0.6\mu + (1-\mu)/2 = 0.6 (semua informed membeli, setengah dari uninformed membeli); jika V=99V = 99, dengan probabilitas 0.40.4. Maka

ask=0.50.6101+0.50.4990.5=100.2,bid=99.8\text{ask} = \frac{0.5 \cdot 0.6 \cdot 101 + 0.5 \cdot 0.4 \cdot 99}{0.5} = 100.2, \qquad \text{bid} = 99.8

Spread-nya adalah μ(VHVL)=0.4\mu(V_H - V_L) = 0.4 — murni kompensasi adverse-selection. Tanpa risiko inventory, tanpa biaya, tanpa rente monopoli, dan spread tetap ada, berskala dengan fraksi informed dan besarnya informasi yang mereka ketahui.

Konsekuensi yang penting untuk keputusan maker-taker: terisinya order (being filled) itu sendiri adalah informasi, dan informasinya melawan Anda. Bid Anda yang beristirahat lebih sering membeli ketika nilai sebenarnya rendah, karena itulah saat informed seller muncul. Mengkondisikan pada fill Anda sendiri menggeser ekspektasi nilai dari apa yang baru saja Anda beli ke bawah — secara konstruksi, bukan karena kesialan. Cara standar untuk mengukur ini adalah markout: untuk order beli yang terisi pada harga pp, markout pada horizon τ\tau adalah m(τ)=mid(tfill+τ)pm(\tau) = \text{mid}(t_{\text{fill}} + \tau) - p. Markout agregat pada fill pasif negatif untuk hampir semua orang di hampir semua tempat; cara menghitungnya tanpa menipu diri sendiri dibahas di Implementation shortfall and TCA.

Bingkai yang setara dan lebih general: limit order yang beristirahat adalah opsi gratis yang diberikan kepada pasar. Counterparty — bukan Anda — memilih momen eksekusi, dan mereka melakukannya ketika hal itu menguntungkan mereka. Rebate maker adalah premi yang dibayarkan venue kepada Anda untuk menulis opsi itu. Pertanyaannya bukan pernah "apakah premi positif" tapi "apakah premi lebih besar dari nilai opsi tersebut bagi orang-orang yang mengeksekusinya."

Titik impas yang telah dikoreksi

Misalkan pp adalah probabilitas quote Anda terisi dalam horizon keputusan Anda, A=E[pergerakan merugikanfill]A = \mathbb{E}[\text{pergerakan merugikan} \mid \text{fill}] biaya markout bersyarat dalam bps, dan DD biaya ekstra yang Anda bayar ketika tidak terisi (drift selama Anda menunggu ditambah melintas pada harga baru). Biaya maker yang jujur adalah:

E[Cmaker]=p(fms2+A)+(1p)(s2+ft+D)\mathbb{E}[C_{\text{maker}}] = p\left(f_m - \frac{s}{2} + A\right) + (1-p)\left(\frac{s}{2} + f_t + D\right)

Menjadi maker lebih disukai dibanding menjadi taker ketika E[Cmaker]<s/2+ft\mathbb{E}[C_{\text{maker}}] < s/2 + f_t, yang bila diatur ulang menjadi pertidaksamaan yang bersih:

s+ftfmpenghematan yang tampak  >  Aadverse selection  +  1ppDbiaya kehilangan tertimbang odds\underbrace{s + f_t - f_m}_{\text{penghematan yang tampak}} \;>\; \underbrace{A}_{\text{adverse selection}} \;+\; \underbrace{\frac{1-p}{p}\,D}_{\text{biaya kehilangan tertimbang odds}}

Perbandingan dekomposisi biaya taker versus biaya maker yang jujur

Contoh angka yang sama, kali ini dengan friksi yang realistis: s=2s = 2, ft=5f_t = 5, fm=2f_m = 2, sehingga penghematan yang tampak adalah 5 bps. Ambil p=0.6p = 0.6, A=3A = 3 bps, D=2D = 2 bps. Sisi kanan adalah 3+0.40.62=4.333 + \frac{0.4}{0.6} \cdot 2 = 4.33 bps. Menjadi maker masih menang — dengan margin 0.67 bps, bukan 5. Secara ekspektasi: E[Cmaker]=0.6(21+3)+0.4(1+5+2)=5.6\mathbb{E}[C_{\text{maker}}] = 0.6(2 - 1 + 3) + 0.4(1 + 5 + 2) = 5.6 bps melawan biaya taker sebesar 6.0. Checkbox itu bernilai 0.4 bps, bukan 5, dan kesalahan kecil pada AA atau pp membalikkan tandanya.

Yang lebih buruk, AA, pp, dan DD bukanlah knob yang independen — mereka digerakkan bersama oleh mengapa Anda bertrading. Jika sinyal Anda berkorelasi dengan flow jangka pendek (setiap entry momentum begitu), maka justru pada saat burst yang ingin Anda masuki, p1p \to 1 dan AA meledak: Anda terisi seketika, oleh pergerakan yang Anda prediksi, pada harga lama, di sisi yang salah dari pergerakan itu. Diskon maker paling besar dalam tabel biaya justru untuk trade-trade yang dalam kenyataannya paling negatif. Itulah makna bahwa pilihan maker-taker adalah trade adverse-selection yang mengenakan kedok jadwal biaya.

Jadwal biaya nyata: tingkatan, diskon token, dan jebakan biaya marjinal

Jadwal representatif pada venue-venue besar per pertengahan 2026 (tingkatan dasar → tingkatan publik teratas; periksa halaman venue, angka ini berubah-ubah):

Venue Maker / taker dasar Maker / taker tingkat teratas Mekanisme diskon
Binance spot 10 / 10 bps turun dengan VIP 1-9 bayar biaya dengan BNB: −25%
Binance USDⓈ-M perp 2 / 5 bps 0 / 1.7 bps (VIP 9) BNB: −10%; VIP butuh volume + saldo BNB
Bybit perp 2 / 5.5 bps 0 / 3 bps program MM hingga −1.5 bps maker, dengan kewajiban
OKX perp 2 / 5 bps sekitar −0.5 / 1.5-2 bps kepemilikan OKB menentukan tingkatan retail
Hyperliquid perp 1.5 / 4.5 bps rebate maker hingga −0.3 bps rebate terkait pangsa volume maker; diskon staking
Coinbase Advanced 40 / 60 bps 0 / 5 bps hanya tingkatan volume
Kraken Pro 25 / 40 bps 0 / 10 bps hanya tingkatan volume

Tiga observasi struktural.

Biaya maker ritel positif di hampir semua tempat. Default gaya ekuitas "maker dibayar" sama sekali tidak berlaku untuk Anda sampai wilayah VIP dalam atau perjanjian market-maker yang ditandatangani. Pada tingkatan dasar, keputusan maker-taker adalah "bayar 2 atau bayar 5," bukan "dapat bayaran atau bayar."

Diskon token adalah posisi, bukan kupon. Membayar biaya dengan BNB memangkas biaya spot Binance 25% — 2.5 bps per sisi pada tingkatan dasar, uang sungguhan pada volume besar. Tapi diskon ini membutuhkan kepemilikan inventory token exchange, sehingga optimasi biaya Anda dibiayai oleh eksposur beta terhadap aset mirip-ekuitas milik exchange itu sendiri. Desk yang membayar 30k/bulandalambiayadanmenghemat30k/bulan dalam biaya dan menghemat 7.5k lewat BNB, sambil memegang float BNB senilai $200k, seluruh penghematan biaya kuartalannya bisa terhapus oleh penurunan BNB sebesar 10%. Perlakukan float itu sebagai posisi buku: ukur besarnya, hedge, atau terima bahwa Anda menjual volatilitas untuk membeli diskon. (Beberapa tangga VIP juga menjadikan saldo token sebagai syarat tingkatan, yang mengubah posisi dari opsional menjadi struktural.)

Biaya marjinal ≠ biaya rata-rata. Tingkatan dihitung berdasarkan volume trailing 30 hari, jadi biaya hari ini ditetapkan oleh trading bulan lalu — tapi melintasi batas tingkatan menetapkan ulang harga seluruh volume Anda selama Anda mempertahankan tingkatan itu. Ini menciptakan kink pada biaya marjinal volume. Misalkan tingkatan berikutnya pada $15 juta/30 hari memangkas biaya taker Anda dari 5 menjadi 4 bps. Dengan volume organik $14 juta, churn filler sebesar $1 juta membebani sekitar 1\text{jt} \times (s/2 + f_t) \approx \600danmembelidan membeli1,\text{bps} \times $14\text{jt} = $1.400/bulan penghematan — biaya marjinal dari sejuta terakhir itu *negatif*. Dengan volume organik \8 juta, logika yang sama membutuhkan churn $7 juta yang membebani $4.200 untuk menghemat $800 — sebuah taruhan berleverage yang membakar spread dan biaya sungguhan pada volume palsu demi meraih diskon hipotetis, dapat diperbarui setiap bulan. Mengejar tingkatan hanya rasional dalam jarak dekat ke sebuah batas, dan desk yang memodelkan biayanya sebagai satu skalar bahkan tidak bisa melihat kink itu.

Rebate mining: kelahiran, kematian, dan kehidupan setelah kematian di kripto

Rebate maker adalah penemuan ekuitas. Island ECN memperkenalkannya pada 1997 untuk membangun likuiditas melawan exchange incumbent, dan itu berhasil begitu baik sehingga model tersebut menguasai struktur pasar ekuitas AS; Reg NMS (2005) kemudian membatasi biaya akses taker maksimal $0.003/saham (Rule 610), dan bisnis exchange standar menjadi: kenakan taker sekitar 30 mils, rebate maker sekitar 20-30 mils, ambil selisihnya.

Aritmetika itu sempat menciptakan strategi murni: rebate capture. Post kedua sisi pada saham berkapitalisasi besar dengan spread satu sen. Round trip yang scratch — membeli dan menjual pada harga sama — tetap mengumpulkan dua rebate, kira-kira setengah sen per saham dengan PnL harga nol. Tangkap juga spread satu sen tersebut dan Anda melipatgandakannya tiga kali. Pada pertengahan 2000-an ini adalah bisnis industrial sungguhan.

Ia mati karena tiga sebab, dan masing-masing adalah sebuah pelajaran:

  1. Rebate bersifat publik, sehingga ia dikompetisikan habis-habisan di antrean. Rebate yang diumumkan menarik quoting hingga ekspektasi rebate quoter marjinal dikurangi adverse selection menjadi nol. Pada saham dengan batasan tick, harga tidak bisa membaik, sehingga kompetisi terjadi pada prioritas waktu — dan rente mengalir ke siapa pun yang mencapai depan antrean lebih dulu. Rebate membiayai perlombaan senjata kecepatan; kolokasi dan menara microwave menghabiskan margin itu. Penerima rebate yang bertahan adalah firma yang toh sudah akan melakukan quoting.
  2. Di tempat tick tidak mengikat, rebate bahkan tidak nyata. Colliard dan Foucault (2012), "Trading Fees and Efficiency in Limit Order Markets" (Review of Financial Studies 25), membuktikan hasil netralitas: dengan grid harga yang halus, hanya total biaya exchange yang penting — pembagian apa pun antara maker dan taker akan dibatalkan oleh penyesuaian quote. Beri maker rebate dan mereka akan mengkuotasi lebih ketat secara proporsional, menyerahkannya langsung ke taker lewat spread cum-fee. Pembagian itu baru berdampak ketika tick mencegah penyesuaian tersebut — yang mengarahkan kembali ke sebab #1. Rebate terdisipasi baik lewat harga maupun lewat antrean; pilih racun Anda. (Foucault, Kadan dan Kandel 2013 memberikan pandangan komplementer: pembagian biaya adalah alat venue untuk menyeimbangkan partisipasi maker dan taker, bukan hadiah untuk salah satu pihak.)
  3. Distorsi ini menarik perhatian regulator. Angel, Harris dan Spatt, "Equity Trading in the 21st Century" (2011, dan pembaruan 2015 di Quarterly Journal of Finance), mengkatalogkan kerusakannya: spread yang dikuotasi berhenti mengukur biaya sebenarnya karena biaya dan rebate tidak ada dalam quote, statistik best-execution menjadi fiksi, dan broker menghadapi konflik kepentingan antara fill klien dan rebate mereka sendiri. Battalio, Corwin dan Jennings (2016, Journal of Finance) menunjukkan konflik itu bukan hipotetis: merutekan ke venue berebate tinggi secara terukur memperburuk kualitas eksekusi limit order. SEC berputar-putar selama satu dekade — Transaction Fee Pilot 2018 mati di pengadilan — dan akhirnya mengadopsi amandemen pada September 2024 yang memangkas batas biaya akses dari 30 menjadi 10 mils (kepatuhan sejak itu didorong mundur ke November 2026). Era rebate gemuk di ekuitas berakhir lewat dekret administratif.

Yang bertahan di kripto instruktif karena ia bukan kebangkitan kembali. Tiga bentuk:

  • Rebate VIP publik (tingkatan maker teratas OKX di −0.5 bps dan sejenisnya): hanya tersedia pada level volume yang menyeleksi firma-firma yang sudah memenangkan perlombaan antrean. Sirkularitas ini adalah pengulangan babak akhir ekuitas: rebate ada untuk menarik maker, dan maker yang menangkapnya adalah mereka yang toh sudah akan melakukan quoting.
  • Program market-maker yang dinegosiasikan (Bybit mengiklankan hingga −1.5 bps): ini datang dengan batas spread, ukuran minimum, dan kewajiban uptime. Itu bukan uang gratis; itu adalah kontrak layanan di mana Anda dibayar untuk menulis opsi adverse-selection secara terus-menerus — termasuk selama berita, cascade, dan menit-menit ketika setiap maker diskresioner sudah menarik quote mereka. Rebate adalah upah untuk memegang buku opsi yang tidak diinginkan siapa pun.
  • Insentif berbasis formula (Hyperliquid membayar hingga −0.3 bps yang dikaitkan dengan pangsa Anda dari total volume maker): sebuah turnamen eksplisit, yang setidaknya menetapkan harga perlombaan antrean secara jujur.

Rebate murni dari scratch sebagian besar tidak dapat eksis di kripto karena biaya maker ritel positif: pada maker 2 bps, round trip scratch justru merugi 4 bps. Strategi ini hanya ada di dalam tingkatan maker negatif, dan tingkatan itu adalah moat-nya.

Nilai antrean: apa yang sebenarnya bernilai dari sebuah rebate

Semua di atas terkompresi menjadi satu persamaan penetapan harga. Nilai ekspektasi dari quote yang beristirahat adalah:

Vquote=p(q)(s2+rA(q))(1p(q))CmissV_{\text{quote}} = p(q)\left(\frac{s}{2} + r - A(q)\right) - \big(1 - p(q)\big)\,C_{\text{miss}}

di mana rr adalah rebate (atau minus biaya maker), dan — detail yang menentukan — baik probabilitas fill pp maupun adverse selection bersyarat AA adalah fungsi dari posisi antrean Anda qq. Keduanya bergerak bersama dengan cara terburuk yang mungkin. Order di depan antrean terisi melawan flow yang jinak: taker kecil, noise, print touch-and-bounce. Order di belakang antrean hanya terisi ketika seluruh level tersapu — yaitu, hanya pada keadaan dunia di mana harga sedang menembus posisi Anda. Posisi antrean yang dalam bukan hanya terisi lebih jarang; mereka terisi lebih buruk. Antrean adalah filter adverse-selection, dan posisi Anda di dalamnya menentukan di sisi mana dari filter itu Anda berada.

Probabilitas fill dan markout bersyarat versus posisi antrean, dan nilai quote yang dihasilkan

Angka-angka. Level dikuotasi s/2=1s/2 = 1 bps dari mid, rebate r=0.5r = 0.5 bps, biaya miss Cmiss=1.5C_{\text{miss}} = 1.5 bps:

Posisi antrean pp AA (bps) VquoteV_{\text{quote}} (bps)
Desil depan 0.85 0.8 0.85(1+0.50.8)0.151.5=+0.370.85(1 + 0.5 - 0.8) - 0.15 \cdot 1.5 = +0.37
Desil belakang 0.35 3.5 0.35(1+0.53.5)0.651.5=1.680.35(1 + 0.5 - 3.5) - 0.65 \cdot 1.5 = -1.68

Venue yang sama, level harga yang sama, baris rebate yang sama di jadwal biaya — sebuah ayunan dua basis poin dalam nilai ekspektasi, termasuk tandanya, sepenuhnya digerakkan oleh posisi antrean. Moallemi dan Yuan (2016), "A Model for Queue Position Valuation in a Limit Order Book," mengkuantifikasi hasil umum ini: pada instrumen large-tick, nilai prioritas antrean sebanding dengan setengah-spread, yaitu orde besaran yang sama dengan seluruh edge teoretis dari sebuah strategi quoting. Mengestimasi di mana Anda sebenarnya berada dalam antrean — dan apa yang dilakukan cancel/replace terhadapnya — adalah mesin dari Queue inside the wall; mengkalibrasi A(q)A(q) dari fill Anda sendiri, dikelompokkan berdasarkan desil antrean pada saat fill, adalah latihan markout dari TCA toolkit.

Aturan operasional muncul secara langsung: quote selama Vquote>CtakerV_{\text{quote}} > -C_{\text{taker}} relatif terhadap alternatif Anda, dan lintasi ketika tidak — ketika antrean panjang, flow beracun, atau sinyal Anda mengatakan harga sedang pergi. "Kapan tepatnya berhenti bersabar" adalah pertanyaan taktik — kadensi pegging, tangga eskalasi, trigger crossing — yang mendapat pembahasan tersendiri di Child order execution tactics. Poin di sini adalah bahwa input untuk keputusan itu adalah nilai bersyarat-antrean, bukan tabel biaya.

Backtesting biaya bertingkat: bug VIP-9

Bug biaya paling umum dalam backtesting sederhana secara memalukan: konfigurasi mengatakan maker_fee=0.0, taker_fee=0.00017 karena seseorang menyalin baris teratas dari tabel VIP exchange — atau tingkatan sebelumnya milik desk, atau tingkatan yang akan dipegang strategi "pada skala besar" — sementara strategi bertrading live pada 2/5. Sebut ini bug VIP-9.

Ini bukan distorsi kecil. Ambil strategi quoting dengan gross capture (spread dikurangi adverse selection) sebesar 2.6 bps per round trip, dengan dua kaki maker masing-masing:

Tingkatan biaya Biaya maker Net per round trip
VIP 9 0.0 bps +2.6 bps
Tingkat menengah 1.0 bps +0.6 bps
Dasar (VIP 0) 2.0 bps −1.4 bps

Strategi yang identik adalah mesin pencetak uang pada tingkatan yang Anda backtest dan alat penghancur pada tingkatan yang Anda tradingkan sungguhan. Tidak ada bug alpha yang perlu ditemukan, tidak ada kehalusan model fill — hanya sebuah skalar di file konfigurasi yang memisahkan equity curve dari bayangan cerminnya. Dan karena edge strategi maker biasanya 1-3 bps per round trip, kesalahan tingkatan biaya selalu berada pada orde besaran yang sama dengan edge itu sendiri.

Melakukannya dengan benar berarti mengakui bahwa biaya Anda adalah variabel keadaan yang bergantung pada jalur (path-dependent), bukan konstanta:

from bisect import bisect_right

class FeeEngine:
    """Tiered fees driven by simulated rolling 30d volume. All rates in bps."""
    TIERS = [(0e6, 2.0, 5.0), (15e6, 1.6, 4.5), (50e6, 1.2, 4.0),
             (100e6, 0.8, 3.5), (600e6, 0.4, 2.5), (4e9, 0.0, 1.7)]
    token_discount = 0.90          # e.g. BNB payment: multiply fees by 0.9

    def __init__(self):
        self.fills = []            # (timestamp, notional)

    def _rolling_volume(self, ts):
        cutoff = ts - 30 * 86_400
        self.fills = [(t, n) for t, n in self.fills if t >= cutoff]
        return sum(n for _, n in self.fills)

    def fee(self, ts, notional, is_maker):
        vol = self._rolling_volume(ts)          # tier from PAST volume
        i = bisect_right([v for v, _, _ in self.TIERS], vol) - 1
        rate = self.TIERS[i][1] if is_maker else self.TIERS[i][2]
        self.fills.append((ts, notional))       # this fill counts toward FUTURE tiers
        return notional * rate * 1e-4 * self.token_discount

Lima aturan membuat akuntansi ini jujur:

  1. Biaya diakru per event fill, per sisi, pada notional yang terisi — bukan per order dan bukan per round trip. Order yang terisi sebagian membayar biaya hanya pada fragmen yang terisi; interaksi antara partial fill, cancel, dan akrual biaya persis sama dengan state machine dari Fill simulation, yang juga menyediakan probabilitas non-fill yang dibutuhkan titik impas yang telah dikoreksi.
  2. Tingkatan bersifat endogen. Volume simulasi Anda menentukan tingkatan simulasi Anda; membesarkan skala strategi mengubah biayanya sendiri. Backtest yang menskalakan notional 10x harus membiarkan tangga tingkatan merespons, dalam kedua arah.
  3. Mulai simulasi pada tingkatan yang benar-benar akan Anda pegang di hari pertama — biasanya tingkatan dasar. Jika tesisnya adalah "profitabel pada VIP 4," jalankan tangga tingkatan sebagai skenario dan laporkan tingkatan titik impas. Tingkatan itu adalah syarat peluncuran dengan prasyarat volume yang menyertainya, bukan catatan kaki.
  4. Modelkan diskon berdenominasi token sebagai posisi. Jika biaya dibayar dalam BNB atau didiskon lewat staking, mark-to-market dari float itu masuk ke PnL strategi, bukan ke spreadsheet yang berbeda.
  5. Gunakan spread cum-fee untuk perbandingan venue. Mengikuti Colliard-Foucault dan Angel-Harris-Spatt: kuantitas yang dapat dibandingkan antar venue adalah s+ft(1)+ft(2)s + f_t^{(1)} + f_t^{(2)} untuk round trip taker (atau dengan fmf_m untuk kaki maker), bukan pernah spread yang dikuotasi mentah. Venue yang mengkuotasi 1 bps lebar pada 5 bps taker empat kali lebih mahal untuk dilintasi dibanding yang mengkuotasi 4 bps lebar pada 1 bps taker — dan tabel liga screen-spread akan meranking mereka secara terbalik.

Keputusan, disederhanakan kembali

Lepas topengnya dan keputusan maker-taker adalah sebuah checklist kecil. Ketahui baris biaya nyata Anda — tingkatan saat ini, diskon saat ini, marjinal bukan aspirasional. Hitung spread cum-fee per venue dan berhenti mempercayai layar. Ukur markout bersyarat dari fill Anda sendiri, dikelompokkan berdasarkan posisi antrean pada saat fill, karena AA tidak ada di dokumentasi siapa pun. Tetapkan harga setiap quote yang beristirahat dengan p(q)(s/2+rA(q))(1p(q))Cmissp(q)\,(s/2 + r - A(q)) - (1-p(q))\,C_{\text{miss}} dan lintasi tanpa sentimen ketika nilainya menjadi negatif. Perlakukan rebate sebagai upah untuk menulis opsi dan tanyakan siapa yang mengeksekusinya. Dan dalam backtest, jadikan biaya sebagai state machine, bukan skalar.

Jadwal biaya memberi tahu Anda apa yang dibayar counterparty rata-rata kepada venue untuk kesegeraan. Markout Anda memberi tahu Anda apa yang sebenarnya dibayar pasar kepada Anda untuk menyediakannya. Hanya satu dari angka-angka itu yang tentang Anda — bertradinglah berdasarkan yang itu.

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.