Vi hadde en 1-minutts BTC-momentumstrategi som så ærlig ut på Binance. Taker-gebyrer, funding, et kvadratrot-impactledd vi allerede hadde gjort litt for strengt. Walk-forward som ikke gjorde oss flaue. Paper-kontoen bodde på Bybit, fordi det var der nøklene var. Jeg sa til meg selv at BTC er BTC. Innen fredag hadde jeg en strategi som hadde handlet et lead-lag vi ikke kunne fylle, og en Sharpe som tilhørte en børs vi ikke hadde konto på.
Mandag: en ren Binance-backtest
Agenten hadde spyttet ut noe nesten kjedelig: 15-bars avkastning mot et tregt gjennomsnitt, long eller short på neste bars åpning, flatten på en stopp eller etter tolv minutter. Vi tvang den inn på Binance USD-M BTCUSDT, 2023 til tidlig 2026, og nektet å se på noe brutto av kostnader.
Etter 4.0 bps taker, timevis funding og impact lå walk-forward Sharpe på 1.6. Gjennomsnittlig netto edge per fill var 3.4 bps. Antall handler var høyt nok til at jeg sluttet å pille på bootstrapen. Latenstillegget vi allerede legger inn for vår egen stack (signal til ordre, 40 millisekunder på en god dag) flyttet den knapt. Jeg husker at jeg var svakt irritert over at den ikke var mer skjør.
Tirsdag: paper-kontoen begynner å «slippe»
Paper gikk live kl. 09:12 UTC. Samme kode, samme parametere, samme «neste åpning»-regel, rettet mot Bybits linear BTCUSDT. Første ettermiddag så ut som en uflaksrekke. Vi fylte 2–8 bps dårligere enn Binance-replayen av de samme minuttene, alltid i retning av handelen. Blotteren sa slippage. Jeg trodde på blotteren til missene klumpet seg på minuttene Binance allerede hadde begynt å løpe.
Over natten mean-reverterte ikke gapet slik en støyete fill-modell mean-reverterer. Det ble sittende. Et kjøp på Bybit printet til en pris Binance hadde vist et beat tidligere, så ankom Bybit, så betalte vi den. Og minuttene strategien ville ha, var minuttene de to tape-ene var uenige. På stille minutter lå closene oppå hverandre, og strategien brydde seg ikke. Den selekterte på divergens og kalte det alpha.
Onsdag: to tape, én klokke
Vi hentet begge last-trade-feedene, alignet på børs-tidsstempler, og stilte et frekt spørsmål: når BTC beveget seg minst to ticks, hvilken venue printet først? I rolige timer ledet Binance Bybit på omtrent to tredjedeler av de utbruddene, median lead rundt 40 millisekunder, som er innenfor mange «vi la til latency»-samtaler og utenfor en 1-minutts bar. Under tirsdagens CPI-print strakte lead-et seg inn i hundrevis av millisekunder, og i noen stygge sekunder var de to last price-ene $80 fra hverandre. Jeg satt der med begge stigene oppe og så Bybit jage en film Binance allerede hadde vist.
Det var ukens smak, og det står ikke i Sharpe-en. Du kan vite, intellektuelt, at krypto-last prices er venue-lokale. Det er noe annet å se den samme coinen i to vinduer og innse at den ene lever i fortiden.
Så gjorde vi testen jeg burde ha krevd på mandag. Behold Binance-signalet. Fyll til Bybits neste åpning. Det er paper-kontoens faktiske informasjonssett hvis du kikker på det likvide tape-et og handler et annet sted, og det er også en form for lookahead du aldri får i størrelse: du bruker en pris execution-venueen ikke har printet. Edge gikk til 0.6 bps. Snu det (Bybit-signal, Binance-fill), og du preger en fantasi. Same-venue Binance ble værende på 3.4. Den «strategien» var stort sett å være på den raskere boken.
1-minutts close-gapet på minuttene vi handlet hadde en median på 4.1 bps. Ubetinget, over alle minutter, var det omtrent 1.5. Selvfølgelig. Signalet fyrer når noen allerede har begynt å bevege seg. Vi hadde målt edge på det selekterte utvalget, som er nøyaktig der venue-uenighet lever.
Jeg pleide å tro at den verste venue-bugen var symbolmapping, BTCUSDT versus BTC-PERP, en join som i stillhet dupliserer en posisjon. Det er bokføring. Dette var å se på to bøker under CPI og merke at jeg hadde forsket på et marked jeg ikke handler.
Torsdag: funding, marks og gebyrer var heller ikke det samme markedet
Når du først innrømmer at last prices er ulike, må du innrømme at resten av markedsdatakontrakten også er det. Vi hadde kopiert Binances gebyrplan inn i en Bybit-paperkonto og lurte deretter på hvorfor kostnadslinjen drev.
| Inndata | Binance-backtest | Bybit-paper, den uken |
|---|---|---|
| Siste pris | Binance USD-M | Bybit linear |
| Taker-gebyr | 4.0 bps | 5.5 bps |
| Fundingintervall | timevis | 00 / 08 / 16 UTC |
| Mark / indeks | Binance-kurv | Bybit-kurv |
| Min. antall / tick | 0.001 / 0.10 | 0.001 / 0.10 |
| Likvidasjonsmatte | traff aldri, BTC | annen mark, traff likevel aldri |
Tick og lot stemte tilfeldigvis overens på BTC. Jeg ville ikke generalisere det. På SOL-boken vi kikket på torsdag kveld var både tick size og min notional ulike, og close-gapet på handelsminutter var 11 bps. Funding var den tregere lekkasjen. Binance betalte timevis. Bybit var fortsatt på åttetimersklokken for den linearen. En posisjon holdt gjennom 01:00 UTC fikk en Binance-belastning i research-ledgeren og stillhet i paper, deretter en klump kl. 08:00 som backtesten allerede hadde dryppet ut. Carry-en stemte over en uke og var uenig over en ettermiddag, som er nøyaktig horisonten denne strategien levde på.
Gebyrene var nesten kjedelige, og de spiste likevel 1.5 bps av en 3.4 bps-historie. Folk behandler 4.0 versus 5.5 som en fotnote fordi det ser lite ut ved siden av en 2% daglig bevegelse. Det er ikke lite ved siden av en 3.4 bps edge. Det visste vi allerede. Vi hadde bare anvendt kunnskapen på gebyrplanen til feil venue.
Fredag: en Bybit-native rerun
Bygg hele greia på nytt på Bybit OHLCV, Bybit funding-stempler, Bybit 5.5 bps. Samme kodevei, samme walk-forward-kutt, samme impact-funksjon. Sharpe 0.4. Gjennomsnittlig netto edge 0.9 bps, som er inne i støyen til en 1-minutts taker-strategi når du slutter å forære den Binances første blikk.
Det var et annet marked, ikke et mer støyete ett. Paper hadde ikke avvist backtesten fordi paper er «mer realistisk» i det abstrakte. Paper hadde eksekvert i en bok researchen aldri så. 1.6-en var internt konsistent. Den var konsistent om feil børs.
Vi lot Binance-versjonen ligge i arkivet med et notat på rapporten: ikke paper denne kontoen mot dette tape-et. Bybit-versjonen er den som får fortsette å kjøre, på et tall ingen ville skrive en tråd om. Det er det riktige utfallet. Jeg savner fortsatt 1.6-en litt, som er hvordan du vet at den gjorde arbeid den ikke hadde fortjent.
Hva vi ville hoppe over neste gang
Snarveien var sosiologisk. Binance er tape-et som hver leverandør, hver research-notebook, hver agent-default vil rekke deg. Kontoen er der du faktisk kunne åpne den. De to faktaene føles som en driftsdetalj. De er backtesten.
- Velg execution-venue først. Bygg research-tape-et fra den venueens siste priser, funding-stempler, marks, ticks og gebyrnivå. Hvis leverandørens default er Binance, er det ikke en default. Det er en annen strategi.
- Hvis du ikke kan få historikk for venueen du skal paper på, ikke erstatt med et ledende tape og kall gapet slippage. Enten vent, eller behandle det fremmede tape-et som et forsinket signal og forsink det til det kunne ha vært sett i execution-boken.
- Når du sammenligner paper med backtest, splitt driften: last-price-gap på handelsminutter, gebyrlinje, funding-tidsstempler, mark brukt til stopper. Tirsdagens blotter blandet alle fire og merket dem som slippage.
- Kjør den kryssede testen med vilje. Signal på A, fill på B. Hvis det er der hele edge-en lever, har du ikke en strategi. Du har et lead-lag du ikke blir fylt på i størrelse.
Ville jeg fortsatt kikke på Binance når jeg handler Bybit? For en diskresjonær sanity check, ja. For en fill, nei. Paper-kontoen har allerede fortalt oss hva det kikket er verdt. Det er verdt de 4.1 bps det andre rommet printet først, og de får vi ikke.
← Alle innlegg


