← Makalelere geri dön
July 21, 2026
5 dakikalık okuma

Maker-taker kararı: fee kademeleri, rebate'ler ve spread'i geçmenin gerçek maliyeti

Maker-taker kararı: fee kademeleri, rebate'ler ve spread'i geçmenin gerçek maliyeti
#maker taker
#trading fee'leri
#rebate'ler
#adverse selection
#market making
#execution
#market microstructure
#backtest

Gönderdiğiniz her emir, başka her şeyden önce ikili bir seçim yapar: spread'i geçip taker fee'sini ödemek, ya da defterde beklemek ve maker fee'sini ödemek — hatta belki bir rebate bile toplamak. Sektör bunu bir fee optimizasyonu olarak sunuyor ve fee tabloları da öyle görünmesini sağlıyor: taker 5 bps, maker 2 bps, tasarruf 3 bps, post-only flag açık, iş bitti. Bu çerçeveleme bir kostüm. Altında ise maker ile taker karşılaştırması adverse selection hakkında bir ticaret: immediacy için bilinen bir fiyat mı ödüyorsunuz, yoksa piyasaya sizi kendi takdirine göre doldurma opsiyonu mu satıyorsunuz — bilgili karşı taraflar bu opsiyonu tam da sizi zarara sokacağı anda kullanır. Fee tarifesi bu opsiyonu ortalama katılımcı için fiyatlandırır. Siz ortalama katılımcı değilsiniz, kotanıza çarpan akış da değil.

Bu yazı fee tablosunun sakladığı matematiği yapıyor: düzeltilmiş break-even, Glosten-Milgrom'un (1985) neden pasif fill'lerin yapısal olarak aleyhinize olduğunu ima ettiği, gerçek kripto fee kademelerinin ve token indirimlerinin sayılara ne yaptığı, rebate mining'in equities'te neden öldüğü ve kriptoda hangi mutasyona uğramış formda hayatta kaldığı, kuyruk pozisyonunun bir rebate'in gerçek değerini nasıl belirlediği ve tüm bunların sektördeki en yaygın fee hatasına düşmeden bir backtest'te nasıl modelleneceği.

Naif break-even — ve herkesin unuttuğu terim

Notasyon: kotalanan spread ss, taker fee ftf_t, maker fee fmf_m (rebate ise negatif), hepsi notional'ın baz puanı (bps) cinsinden, benchmark fiyat olarak mid. Spread'i geçmek size yarım spread artı taker fee'sine mal olur; beklemek yarım spread kazandırır ve maker fee'sine mal olur:

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

Binance USDⓈ-M futures baz oranlarını yerine koyalım — maker 2 bps, taker 5 bps — 2 bps genişlikte kotalanan bir perp üzerinde: taker maliyeti 1+5=61 + 5 = 6 bps, maker "maliyeti" 21=12 - 1 = 1 bps. Görünürdeki tasarruf: her işlemde 5 bps. Günde 20 round trip yapan bir strateji için, bu bir onay kutusundan gelen 100 bps'lik günlük edge olarak iddia edilir.

Önce bu sayılarda bir şeyi fark edin: fee, spread'e bir düzeltme değil — likit kripto çiftlerinde fee zaten maliyetin kendisi. BTCUSDT perp sık sık 1 bps'in altında kotalanırken perakende bir taker 5 bps öder. Yarım spread, fee'nin yanında bir yuvarlama hatası. Bu, spread ile fee'nin aynı büyüklük mertebesinde olduğu equities sezgisinin tam tersi ve bu yüzden kriptoda her naif karşılaştırma "her zaman maker ol" diye bağırır. Ayrıca bu yüzden her ilk market-making backtest'i kârlı çıkar ve ilk deployment'ların çoğu çıkmaz.

Naif maker maliyetinde üç terim eksik:

  1. Fill olmama riski. Bir limit emir bir işlem değildir; bir işlem için piyango biletidir. Fill olmadığında ya hareketi kaçırırsınız ya da daha sonra daha kötü bir fiyattan geçersiniz.
  2. Adverse selection. Fill olma koşuluna bağlı olarak, fiyatın koşulsuz dağılımın önerdiğinden daha yüksek olasılıkla aleyhinize hareket etme eğilimi vardır. Bu kötü şans değil; bir teoremdir.
  3. Yeniden kotalama maliyeti. Piyasayı cancel/replace ile kovalamak kuyruk pozisyonunuzu en arkaya sıfırlar ve bu, sessizce fill dağılımınızı büyük ölçüde 2. tip fill'lere dönüştürür.

İkinci terim arkasında elli yıllık teori olan terim, o yüzden onu düzgünce yapalım.

Glosten-Milgrom: fill, kötü haberdir

Glosten ve Milgrom (1985), "Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders" (Journal of Financial Economics 14), spread'in neden var olduğuna dair en temiz modeldir. Risk-nötr, rekabetçi ve sıfır maliyetli bir market maker bir bid ve bir ask kotalar. Gelen trader'ların bir kısmı (μ\mu) bilgilidir — varlığın gerçek değerini (VV) bilirler — geri kalanı ise dışsal nedenlerle, eşit olasılıkla alarak ya da satarak işlem yapar. Market maker bunları birbirinden ayırt edemez. Rekabet her kotanın koşullu bir beklenti olmasını zorunlu kılar:

ask=E[Vsonraki trader alır],bid=E[Vsonraki trader satar]\text{ask} = \mathbb{E}[V \mid \text{sonraki trader alır}], \qquad \text{bid} = \mathbb{E}[V \mid \text{sonraki trader satar}]

Hesaplanmış sayılar. VV'nin eşit olasılıkla 101 ya da 99 olduğunu ve μ=0.2\mu = 0.2 olduğunu varsayalım. V=101V = 101 ise, bir alış μ+(1μ)/2=0.6\mu + (1-\mu)/2 = 0.6 olasılıkla gelir (tüm bilgililer alır, bilgisizlerin yarısı alır); V=99V = 99 ise, 0.40.4 olasılıkla. O zaman

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 μ(VHVL)=0.4\mu(V_H - V_L) = 0.4'tür — tamamen adverse-selection tazminatı. Envanter riski yok, fee yok, tekel rantı yok, ve spread hâlâ orada, bilgili oranla ve bildikleri şeyin büyüklüğüyle ölçekleniyor.

Maker-taker kararı için önemli olan sonuç şu: fill olmak başlı başına bir bilgidir ve bu bilgi aleyhinizedir. Bekleyen bid'iniz, gerçek değer düşük olduğunda daha sık alır, çünkü bilgili satıcıların ortaya çıktığı an tam da o andır. Kendi fill'inize koşullanmak, az önce aldığınız şeyin beklenen değerini aşağı kaydırır — şans eseri değil, kurgu gereği. Bunu ölçmenin standart yolu markout'tur: pp fiyatından fill olan bir alış için, τ\tau ufkundaki markout m(τ)=mid(tfill+τ)pm(\tau) = \text{mid}(t_{\text{fill}} + \tau) - p'dir. Pasif fill'lerdeki toplam markout'lar neredeyse herkes için neredeyse her yerde negatiftir; kendinizi kandırmadan bunları nasıl hesaplayacağınız Implementation shortfall ve TCA yazısında ele alınıyor.

Daha iyi genelleyen eşdeğer bir çerçeveleme: bekleyen bir limit emir, piyasaya verilmiş ücretsiz bir opsiyondur. Karşı taraf — siz değil — kullanım anını seçer ve kendi çıkarına olduğunda kullanır. Maker rebate'i, venue'nün bu opsiyonu yazdığınız için size ödediği primdir. Soru hiçbir zaman "prim pozitif mi" değil, "prim, onu kullananlar için opsiyonun değerinden büyük mü" sorusudur.

Düzeltilmiş break-even

pp'nin karar ufkunuz içinde kotanızın fill olma olasılığı, A=E[aleyhte hareketfill]A = \mathbb{E}[\text{aleyhte hareket} \mid \text{fill}]'in bps cinsinden koşullu markout maliyeti, ve DD'nin fill olmadığında ödediğiniz ek maliyet (beklerken oluşan drift artı yeni fiyattan geçme) olduğunu varsayalım. Dürüst maker maliyeti:

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)

Maker olmak, E[Cmaker]<s/2+ft\mathbb{E}[C_{\text{maker}}] < s/2 + f_t olduğunda taker olmaya tercih edilir, bu da temiz bir eşitsizliğe indirgenir:

s+ftfmgo¨ru¨nen tasarruf  >  Aadverse selection  +  1ppDolasılık-ag˘ırlıklı kac¸ırma maliyeti\underbrace{s + f_t - f_m}_{\text{görünen tasarruf}} \;>\; \underbrace{A}_{\text{adverse selection}} \;+\; \underbrace{\frac{1-p}{p}\,D}_{\text{olasılık-ağırlıklı kaçırma maliyeti}}

Taker maliyeti ile dürüst maker maliyeti ayrıştırması

Aynı hesaplanmış örnek, şimdi gerçekçi sürtünmelerle: s=2s = 2, ft=5f_t = 5, fm=2f_m = 2, yani görünen tasarruf 5 bps. p=0.6p = 0.6, A=3A = 3 bps, D=2D = 2 bps alalım. Sağ taraf 3+0.40.62=4.333 + \frac{0.4}{0.6} \cdot 2 = 4.33 bps. Maker olmak yine de kazanıyor — 5 bps değil, 0.67 bps marjla. Beklenti cinsinden: 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, taker maliyeti olan 6.0'a karşı. Onay kutusu 5 bps değil 0.4 bps değerindeydi ve AA ya da pp'deki mütevazı bir hata işareti tersine çevirir.

Daha kötüsü, AA, pp ve DD bağımsız değişkenler değildir — hepsi neden ticaret yaptığınıza göre ortaklaşa belirlenir. Sinyaliniz kısa vadeli akışla korele ise (her momentum girişi öyledir), tam da girmek istediğiniz patlamalar sırasında p1p \to 1'e gider ve AA patlar: tahmin ettiğiniz hareket tarafından, eski fiyattan, o hareketin yanlış tarafında, anında fill olursunuz. Maker indirimi fee tablosunda tam da gerçekte en negatif olduğu işlemler için en büyüktür. Maker-taker seçiminin fee tarifesi giymiş bir adverse-selection ticareti olmasının anlamı budur.

Gerçek fee tarifeleri: kademeler, token indirimleri ve marjinal-fee tuzağı

2026 ortası itibariyle büyük venue'lerdeki temsili tarifeler (baz kademe → en üst kamuya açık kademe; bunlar değişir, venue sayfalarını kontrol edin):

Venue Baz maker / taker Üst kademe maker / taker İndirim mekaniği
Binance spot 10 / 10 bps VIP 1-9 ile düşer fee'leri BNB ile öde: −%25
Binance USDⓈ-M perp 2 / 5 bps 0 / 1.7 bps (VIP 9) BNB: −%10; VIP hacim + BNB bakiyesi gerektirir
Bybit perp 2 / 5.5 bps 0 / 3 bps MM programı ile −1.5 bps maker'a kadar, yükümlülüklerle
OKX perp 2 / 5 bps yaklaşık −0.5 / 1.5-2 bps'e kadar OKB varlıkları perakende bandını kademelendiriyor
Hyperliquid perp 1.5 / 4.5 bps maker rebate'leri −0.3 bps'e kadar rebate maker hacminin payına bağlı; staking indirimleri
Coinbase Advanced 40 / 60 bps 0 / 5 bps sadece hacim kademeleri
Kraken Pro 25 / 40 bps 0 / 10 bps sadece hacim kademeleri

Üç yapısal gözlem.

Perakende maker fee'leri neredeyse her yerde pozitiftir. "Maker'lara ödeme yapılır" şeklindeki equities-tarzı varsayılan durum, derin VIP bölgesine ya da imzalanmış bir market-maker anlaşmasına kadar sizin için geçerli değildir. Baz kademede maker-taker kararı "2 mi öde, 5 mi öde"dir, "kazan mı, öde mi" değil.

Token indirimleri bir kupon değil, bir pozisyondur. Fee'leri BNB ile ödemek Binance spot fee'lerini %25 kesiyor — baz kademede taraf başına 2.5 bps, hacimde gerçek para. Ama indirim, borsa token'ından bir envanter tutmayı gerektiriyor, yani fee optimizasyonunuz borsanın kendi equity-benzeri varlığına beta exposure'u ile finanse ediliyor. Ayda 30 bin dolar fee ödeyen ve BNB ile 7.5 bin dolar tasarruf eden, ama 200 bin dolarlık BNB float'ı tutan bir masa, %10'luk bir BNB düşüşüyle çeyreklik fee tasarrufunun tamamını siler. Float'ı bir kitap pozisyonu gibi ele alın: büyüklüğünü belirleyin, hedge edin, ya da bir indirim satın almak için volatilite sattığınızı kabul edin. (Birçok VIP merdiveninde token bakiyesi de bir kademe şartıdır, bu da pozisyonu opsiyonel olmaktan yapısal olmaya dönüştürür.)

Marjinal fee ≠ ortalama fee. Kademeler geriye dönük 30 günlük hacim üzerinden hesaplanır, yani bugünkü fee'niz geçen ayki ticaretinizle belirlendi — ama bir sınırı geçmek, o kademeyi tuttuğunuz sürece tüm hacminizi yeniden fiyatlandırır. Bu, hacmin marjinal maliyetinde bir kink yaratır. 15 milyon dolar/30 gün'deki bir sonraki kademenin taker fee'nizi 5'ten 4 bps'e indirdiğini varsayalım. 14 milyon dolarlık organik hacimle, 1 milyon dolarlık dolgu (filler) hacmi yaklaşık 1M×(s/2+ft)6001\text{M} \times (s/2 + f_t) \approx 600 dolara mal olur ve 1bps×14M=1,4001\,\text{bps} \times 14\text{M} = 1{,}400 dolar/ay tasarruf getirir — o son milyonun marjinal fee'si negatiftir. 8 milyon dolar organik hacimle, aynı mantık 7 milyon dolarlık dolgu gerektirir, bu 4,200 dolara mal olup 800 dolar tasarruf getirir — sahte hacim üzerinden gerçek spread ve fee yakan, hipotetik indirimler kazanmak için kaldıraçlı bir bahis, her ay yenilenen türden. Kademe kovalamak sadece bir sınıra yakın mesafedeyken rasyoneldir ve fee'lerini tek bir skaler olarak modelleyen masalar bu kink'i göremezler bile.

Rebate mining: yükseliş, ölüm ve kripto sonrası hayat

Maker rebate'i bir equities icadıdır. Island ECN, mevcut borsalara karşı likidite oluşturmak için 1997'de rebate'i tanıttı ve o kadar iyi işledi ki bu model ABD equity market yapısını fethetti; Reg NMS (2005) daha sonra taker erişim fee'sini hisse başına 0.003 dolar ile sınırladı (Rule 610), ve standart borsa işi şuna dönüştü: taker'lardan ~30 mil al, maker'lara ~20-30 mil rebate ver, farkı kendine sakla.

Bu aritmetik kısa süreliğine saf bir strateji yarattı: rebate capture. Bir penny-spread'li large-cap'in her iki tarafına da post edin. Aynı fiyattan alıp satan bir round trip — sıfır fiyat PnL'i üzerinde bile — yine de hisse başına yaklaşık yarım cent olmak üzere iki rebate toplar. Penny spread'i de yakalarsanız bunu üçe katlarsınız. 2000'lerin ortasında bu gerçek bir sanayi işiydi.

Üç nedenden öldü ve her biri bir ders:

  1. Rebate kamuya açıktır, bu yüzden kuyruk için rekabete girer. Post edilen bir rebate, marjinal kotalayanın adverse selection'dan arınmış beklenen rebate'i sıfır olana kadar kotalama çeker. Tick-kısıtlı bir hissede fiyat iyileşemez, bu yüzden rekabet zaman önceliğinde gerçekleşir — ve rant, kuyruğun önüne ilk ulaşana akar. Rebate hız silahlanma yarışını finanse etti; colocation ve mikrodalga kuleleri marjı yedi. Hayatta kalan rebate kazananlar, zaten kotalayacak olan firmalardı.
  2. Tick'in bağlayıcı olmadığı yerde, rebate gerçek bile değildir. Colliard ve Foucault (2012), "Trading Fees and Efficiency in Limit Order Markets" (Review of Financial Studies 25), nötrlük sonucunu ispatlıyor: ince bir fiyat gridi ile, sadece toplam borsa fee'si önemlidir; maker ve taker arasındaki herhangi bir bölünme kota ayarlamasıyla geri alınır. Maker'lara rebate verin, buna karşılık daha sıkı kotalarlar ve bunu cum-fee spread üzerinden doğrudan taker'lara aktarırlar. Bölünmenin etkisi ancak tick bu ayarlamayı engellediğinde vardır — ki bu da sizi 1. nedene geri götürür. Rebate ya fiyat üzerinden ya da kuyruk üzerinden dağıtılır; zehrinizi seçin. (Foucault, Kadan ve Kandel 2013, tamamlayıcı bir görüş sunar: fee bölünmesi, venue'nün maker ve taker katılımını dengelemek için kullandığı bir araçtır, herhangi bir tarafa hediye değil.)
  3. Bozulmalar düzenleyicilerin dikkatini çekti. Angel, Harris ve Spatt, "Equity Trading in the 21st Century" (2011, ve Quarterly Journal of Finance'deki 2015 güncellemesi), zararı kataloglamıştı: kotalanan spread'ler gerçek maliyeti ölçmeyi bırakır çünkü fee'ler ve rebate'ler kotada değildir, best-execution istatistikleri kurmaca haline gelir ve broker'lar müşterinin fill'i ile kendi rebate'i arasında bir çıkar çatışmasıyla karşı karşıya kalır. Battalio, Corwin ve Jennings (2016, Journal of Finance) bu çatışmanın varsayımsal olmadığını gösterdi: yüksek-rebate venue'lere yönlendirme, limit emir execution kalitesini ölçülebilir şekilde kötüleştirdi. SEC bir on yıl boyunca etrafında döndü — 2018 Transaction Fee Pilot mahkemede öldü — ve nihayet Eylül 2024'te değişiklikler kabul etti, erişim-fee sınırını 30'dan 10 mile indirdi (uyum tarihi sonradan Kasım 2026'ya ertelendi). Equities'teki şişman-rebate dönemi idari kararla sona eriyor.

Kriptoda hayatta kalan şey öğretici çünkü bu bir canlanma değil. Üç form:

  • Kamuya açık VIP rebate'leri (OKX'in −0.5 bps'lik en üst maker kademesi ve benzerleri): sadece zaten kuyruk yarışını kazanmış firmaları seçen hacim seviyelerinde mevcut. Döngüsellik, equities'in son perdesinin yeniden oynanmasıdır: rebate maker'ları çekmek için vardır ve onu yakalayan maker'lar zaten kotalayacak olanlardır.
  • Müzakere edilmiş market-maker programları (Bybit −1.5 bps'e kadar reklamını yapıyor): bunlar spread tavanları, minimum boyut ve uptime yükümlülükleriyle gelir. Bu bedava para değil; sürekli olarak — haberler, çöküşler ve her discretionary maker'ın kotalarını çektiği dakikalar dahil — adverse-selection opsiyonunu yazmanız için ödenen bir hizmet sözleşmesidir. Rebate, kimsenin istemediği opsiyon kitabını tutmanın ücretidir.
  • Formül-güdümlü teşvikler (Hyperliquid, toplam maker hacminizdeki payınıza bağlı olarak −0.3 bps'e kadar ödüyor): en azından kuyruk yarışını dürüstçe fiyatlandıran açık bir turnuva.

Saf scratch-için-rebate kriptoda büyük ölçüde var olamaz çünkü perakende maker fee'leri pozitiftir: 2 bps maker'da, bir scratch round trip 4 bps kaybeder. Strateji sadece negatif-maker kademelerinin içinde var olur ve kademeler hendektir.

Kuyruk değeri: bir rebate gerçekte ne değer?

Yukarıdakilerin tümü tek bir fiyatlama denklemine sıkışır. Bekleyen bir kotanın beklenen değeri:

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}}

burada rr rebate'tir (ya da maker fee'sinin eksisi), ve — belirleyici detay — hem fill olasılığı pp hem de koşullu adverse selection AA, kuyruk pozisyonunuzun qq fonksiyonudur. Bunlar en kötü şekilde birlikte hareket ederler. Kuyruğun önündeki bir emir, zararsız akışa karşı fill olur: küçük taker'lar, gürültü, dokun-ve-sıçra print'ler. Kuyruğun arkasındaki bir emir ancak tüm seviye süpürüldüğünde fill olur — yani sadece fiyatın sizin içinizden geçtiği dünya durumlarında. Derin kuyruk pozisyonları sadece daha az sıklıkla fill olmakla kalmaz; daha kötü fill olurlar. Kuyruk bir adverse-selection filtresidir ve içindeki pozisyonunuz filtrenin hangi tarafında olduğunuzu belirler.

Kuyruk pozisyonuna göre fill olasılığı ve koşullu markout, ve ortaya çıkan kota değeri

Sayılar. Mid'den s/2=1s/2 = 1 bps uzakta kotalanan seviye, rebate r=0.5r = 0.5 bps, kaçırma maliyeti Cmiss=1.5C_{\text{miss}} = 1.5 bps:

Kuyruk pozisyonu pp AA (bps) VquoteV_{\text{quote}} (bps)
Ön dilim 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
Arka dilim 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

Aynı venue, aynı fiyat seviyesi, fee tarifesinde aynı rebate satırı — beklenen değerde, işaret dahil, tamamen kuyruk pozisyonu tarafından belirlenen iki baz puanlık bir sallanma. Moallemi ve Yuan (2016), "A Model for Queue Position Valuation in a Limit Order Book," genel sonucu ölçüyor: büyük-tick enstrümanlarda kuyruk önceliğinin değeri yarım spread ile kıyaslanabilir, yani bir kotalama stratejisinin teorik edge'inin tamamıyla aynı büyüklük mertebesinde. Kuyrukta gerçekte nerede olduğunuzu — ve cancel/replace'in ona ne yaptığını — tahmin etmek Duvarın içindeki kuyruk yazısının konusudur; A(q)A(q)'yı kendi fill'lerinizden, fill anındaki kuyruk dilimine göre gruplandırarak kalibre etmek TCA araç setinden bir markout egzersizidir.

Operasyonel kural doğrudan buradan çıkar: alternatifinize göre Vquote>CtakerV_{\text{quote}} > -C_{\text{taker}} iken kotalayın ve öyle olmadığında — kuyruk uzunken, akış toksikken, ya da sinyaliniz fiyatın gittiğini söylerken — geçin. "Tam olarak ne zaman sabırlı olmayı bırakmalı" bir taktik sorusudur — pegging kadansı, eskalasyon merdivenleri, geçiş tetikleyicileri — ve bu kendi başına Child order execution taktikleri yazısında ele alınıyor. Buradaki asıl nokta, bu karara girdinin fee tablosu değil, kuyruğa-koşullu değer olduğudur.

Kademeli fee'leri backtest etmek: VIP-9 hatası

Backtesting'deki en yaygın fee hatası utanç verici derecede basit: config'de maker_fee=0.0, taker_fee=0.00017 yazıyor çünkü biri borsanın VIP tablosunun en üst satırını — ya da masanın eski kademesini, ya da stratejinin "ölçeklendiğinde" tutacağı kademeyi — kopyaladı, ama strateji canlıda 2/5'te işlem görüyor. Buna VIP-9 hatası diyelim.

Bu küçük bir sapma değildir. Round trip başına brüt yakalama (spread eksi adverse selection) 2.6 bps olan, her biri maker olan iki bacaklı bir kotalama stratejisi düşünün:

Fee kademesi Maker fee Round trip başına net
VIP 9 0.0 bps +2.6 bps
Orta kademe 1.0 bps +0.6 bps
Baz (VIP 0) 2.0 bps −1.4 bps

Aynı strateji, backtest ettiğiniz kademede bir para makinesi, ticaret yaptığınız kademede ise bir kıyma makinesi. Bulunacak bir alfa hatası yok, fill modelinde bir incelik yok — sadece config dosyasındaki bir skalerin equity eğrisini kendi aynadaki görüntüsünden ayırması var. Ve maker-strateji edge'leri rutin olarak round trip başına 1-3 bps olduğundan, fee-kademesi hataları her zaman edge'in kendisiyle aynı büyüklük mertebesindedir.

Bunu doğru yapmak, fee'nizin bir sabit değil, path-dependent bir durum değişkeni olduğunu kabul etmek demektir:

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

Beş kural, muhasebeyi dürüst kılar:

  1. Fee'ler her fill olayında, her tarafta, fill olan notional üzerinden tahakkuk eder — emir başına ya da round trip başına değil. Kısmi fill olan bir emir sadece fill olan parça üzerinden fee öder; kısmi fill'ler, iptaller ve fee tahakkuku arasındaki etkileşim, tam olarak Fill simülasyonu yazısındaki state machine'dir, ki bu aynı zamanda düzeltilmiş break-even'in ihtiyaç duyduğu fill-olmama olasılıklarını da sağlar.
  2. Kademe içseldir. Simüle edilen hacminiz simüle edilen kademenizi belirler; stratejiyi büyütmek kendi fee'sini değiştirir. Notional'ı 10 kat ölçeklendiren bir backtest, kademe merdiveninin her iki yönde de tepki vermesine izin vermelidir.
  3. Simülasyonu gerçekte ilk gün tutacağınız kademede başlatın — genellikle baz kademe. Tez "VIP 4'te kârlı" ise, merdiveni senaryolar olarak çalıştırın ve break-even kademesini raporlayın. O kademe, bir dipnot değil, hacim ön koşulu olan bir launch gereksinimidir.
  4. Token-denominasyonlu indirimleri pozisyon olarak modelleyin. Fee'ler BNB ile ödeniyorsa ya da staking ile indirimliyse, float'ın mark-to-market'i başka bir spreadsheet'e değil, strateji PnL'ine ait olmalıdır.
  5. Venue karşılaştırması için cum-fee spread kullanın. Colliard-Foucault ve Angel-Harris-Spatt'ı takiben: venue'ler arasında karşılaştırılabilir büyüklük, bir taker round trip için s+ft(1)+ft(2)s + f_t^{(1)} + f_t^{(2)}'dir (ya da maker bacakları için fmf_m ile), asla ham kotalanan spread değil. 1 bps genişlikte 5 bps taker ile kotalayan bir venue, 4 bps genişlikte 1 bps taker ile kotalayan bir venue'den geçmek için dört kat daha pahalıdır — ve ekran-spread lig tabloları bunları tersten sıralar.

Karar, yeniden ifade edilmiş

Kostümü çıkarın, maker-taker kararı küçük bir kontrol listesi haline gelir. Gerçek fee satırınızı bilin — mevcut kademe, mevcut indirimler, aspirasyonel değil marjinal. Venue başına cum-fee spread'i hesaplayın ve ekranlara güvenmeyi bırakın. Kendi fill'lerinizden koşullu markout'ları, fill anındaki kuyruk pozisyonuna göre gruplandırarak ölçün, çünkü AA kimsenin dokümantasyonunda yok. Her bekleyen kotayı p(q)(s/2+rA(q))(1p(q))Cmissp(q)\,(s/2 + r - A(q)) - (1-p(q))\,C_{\text{miss}} ile fiyatlandırın ve negatife döndüğünde duygusallığa kapılmadan geçin. Rebate'leri opsiyon yazmanın ücreti olarak ele alın ve kimin kullandığını sorun. Ve backtest'te, fee'yi bir skaler değil, bir state machine yapın.

Fee tarifesi size ortalama karşı tarafın immediacy için venue'ye ne ödediğini söyler. Markout'larınız ise size piyasanın onu sağladığınız için size gerçekte ne ödediğini söyler. Bu sayılardan sadece biri sizinle ilgili — o biri üzerinden ticaret yapın.

Sorumluluk Reddi: Bu makalede sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır ve finansal, yatırım veya ticaret tavsiyesi niteliği taşımaz. Kripto para ticareti önemli bir kayıp riski içerir.

Yazarlar

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

Piyasanın Önünde Olun

Özel yapay zeka ticaret içgörüleri, piyasa analizi ve platform güncellemeleri için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.