Wir hatten eine 1-Minuten-BTC-Momentum-Strategie, die auf Binance ehrlich wirkte. Taker-Fees, Funding, ein Square-Root-Impact-Term, den wir schon etwas zu gemein gemacht hatten. Walk-Forward, der uns nicht peinlich war. Das Paper-Konto lebte auf Bybit, weil dort die Keys waren. Ich sagte mir, BTC ist BTC. Am Freitag hatte ich eine Strategie, die einen Lead-Lag gehandelt hatte, den wir nicht füllen konnten, und einen Sharpe, der zu einer Börse gehörte, auf der wir kein Konto hatten.
Montag: ein sauberer Binance-Backtest
Der Agent hatte etwas fast Langweiliges ausgespuckt: 15-Bar-Return gegen einen langsamen Durchschnitt, long oder short auf das Open der nächsten Bar, glattstellen auf einen Stop oder nach 12 Minuten. Wir haben sie auf Binance USD-M BTCUSDT gezwungen, 2023 bis Anfang 2026, und uns geweigert, irgendetwas vor Kosten anzusehen.
Nach 4.0 bps Taker, stündlichem Funding und Impact lag der Walk-Forward-Sharpe bei 1.6. Der durchschnittliche Netto-Edge pro Fill betrug 3.4 bps. Die Trade-Anzahl war hoch genug, dass ich aufgehört habe, am Bootstrap herumzustochern. Das Latency-Pad, das wir für unseren eigenen Stack ohnehin einrechnen (Signal bis Order, 40 Millisekunden an einem guten Tag), hat ihn kaum bewegt. Ich erinnere mich, leicht genervt gewesen zu sein, dass es nicht fragiler war.
Dienstag: das Paper-Konto fängt an zu „slipping“
Paper ging um 09:12 UTC live. Derselbe Code, dieselben Parameter, dieselbe „next open“-Regel, gerichtet auf Bybits lineares BTCUSDT. Der erste Nachmittag sah aus wie eine Pechsträhne. Wir haben 2–8 bps schlechter gefüllt als das Binance-Replay derselben Minuten, immer in Richtung des Trades. Das Blotter sagte Slippage. Ich habe dem Blotter geglaubt, bis sich die Misses auf den Minuten häuften, in denen Binance schon losgelaufen war.
Über Nacht ist die Gap nicht so mean-revertet, wie ein verrauschtes Fill-Modell mean-revertet. Sie blieb sitzen. Ein Buy auf Bybit druckte zu einem Preis, den Binance einen Beat früher gezeigt hatte, dann kam Bybit an, dann haben wir ihn bezahlt. Und die Minuten, die die Strategie wollte, waren die Minuten, in denen die beiden Tapes uneins waren. In ruhigen Minuten saßen die Closes übereinander und die Strategie interessierte das nicht. Sie hat auf Divergenz selektiert und das Alpha genannt.
Mittwoch: zwei Tapes, eine Uhr
Wir haben beide Last-Trade-Feeds gezogen, an den Exchange-Timestamps ausgerichtet und eine unhöfliche Frage gestellt: Wenn BTC mindestens 2 Ticks bewegt hat, welche Venue hat zuerst gedruckt? In ruhigen Stunden führte Binance Bybit bei etwa 2 Dritteln dieser Bursts an, medianer Lead um die 40 Millisekunden, das liegt innerhalb vieler „wir haben Latency dazugelegt“-Gespräche und außerhalb einer 1-Minuten-Bar. Beim CPI-Print am Dienstag dehnte sich der Lead auf Hunderte von Millisekunden, und für ein paar hässliche Sekunden lagen die beiden Last Prices $80 auseinander. Ich saß da mit beiden Ladders offen und habe zugesehen, wie Bybit einem Film hinterherlief, den Binance schon gezeigt hatte.
Das war der Geschmack der Woche, und der steht nicht im Sharpe. Man kann intellektuell wissen, dass Krypto-Last-Prices venue-lokal sind. Es ist etwas anderes, denselben Coin in zwei Fenstern zu sehen und zu merken, dass eines davon in der Vergangenheit lebt.
Dann haben wir den Test gemacht, den ich schon am Montag hätte verlangen sollen. Das Binance-Signal behalten. Fill am nächsten Open von Bybit. Das ist das tatsächliche Informationsset des Paper-Kontos, wenn man auf das liquide Tape schielt und woanders handelt, und es ist auch eine Form von Lookahead, die man in Size nie bekommen wird: man verwendet einen Preis, den die Execution-Venue noch nicht gedruckt hat. Der Edge ging auf 0.6 bps. Umgedreht (Bybit-Signal, Binance-Fill) prägt man eine Fantasie. Same-Venue-Binance blieb bei 3.4. Die „Strategie“ bestand vor allem darin, auf dem schnelleren Book zu sein.
Die 1-Minuten-Close-Gap in den Minuten, die wir gehandelt haben, hatte einen Median von 4.1 bps. Unkonditional, über alle Minuten, lag sie bei etwa 1.5. Natürlich. Das Signal feuert, wenn jemand schon angefangen hat, sich zu bewegen. Wir hatten den Edge auf der selektierten Stichprobe gemessen, und genau dort lebt die Uneinigkeit der Venues.
Früher dachte ich, der schlimmste Venue-Bug sei Symbol-Mapping, BTCUSDT versus BTC-PERP, ein Join, der still eine Position verdoppelt. Das ist Buchhaltung. Das hier war, während CPI zwei Books zu beobachten und festzustellen, dass ich einen Markt recherchiert hatte, den ich nicht handle.
Donnerstag: Funding, Marks und Fees waren auch nicht derselbe Markt
Sobald man zugibt, dass die Last Prices unterschiedlich sind, muss man zugeben, dass der Rest des Marktdaten-Vertrags es auch ist. Wir hatten den Gebührenplan von Binance in ein Bybit-Paper-Konto kopiert und uns dann gewundert, warum die Cost-Line driftete.
| Eingabe | Binance-Backtest | Bybit-Paper, diese Woche |
|---|---|---|
| Last Price | Binance USD-M | Bybit linear |
| Taker-Gebühr | 4.0 bps | 5.5 bps |
| Funding-Intervall | stündlich | 00 / 08 / 16 UTC |
| Mark / Index | Binance-Basket | Bybit-Basket |
| Min. Menge / Tick | 0.001 / 0.10 | 0.001 / 0.10 |
| Liquidations-Mathe | nie ausgelöst, BTC | anderer Mark, trotzdem nie ausgelöst |
Tick und Lot passten bei BTC zufällig überein. Das würde ich nicht verallgemeinern. Auf dem SOL-Book, in das wir Donnerstagabend geschaut haben, wichen Tick Size und Min Notional beide ab, und die Close-Gap in den Trade-Minuten lag bei 11 bps. Funding war das langsamere Leck. Binance hat stündlich abgerechnet. Bybit war für dieses Linear noch auf der 8-Stunden-Uhr. Eine Position, die über 01:00 UTC gehalten wurde, bekam im Research-Ledger eine Binance-Belastung und im Paper Stille, dann einen Brocken um 08:00, den der Backtest schon tropfenweise rausgegeben hatte. Der Carry stimmte über eine Woche und wich über einen Nachmittag ab, und genau das ist der Horizont, auf dem diese Strategie lebte.
Die Fees waren fast langweilig, und sie haben trotzdem 1.5 bps einer 3.4-bps-Geschichte gefressen. Leute behandeln 4.0 versus 5.5 als Fußnote, weil es neben einer 2%igen Tagesbewegung klein wirkt. Neben einem 3.4-bps-Edge ist es nicht klein. Das wussten wir schon. Wir hatten das Wissen nur auf den Gebührenplan der falschen Venue angewendet.
Freitag: ein Bybit-nativer Rerun
Das Ganze auf Bybit-OHLCV, Bybit-Funding-Stamps, Bybit 5.5 bps neu aufgebaut. Derselbe Code-Pfad, dieselben Walk-Forward-Cuts, dieselbe Impact-Funktion. Sharpe 0.4. Durchschnittlicher Netto-Edge 0.9 bps, das liegt im Rauschen einer 1-Minuten-Taker-Strategie, sobald man ihr nicht mehr Binances First Look schenkt.
Es war ein anderer Markt, kein verrauschterer. Paper hatte den Backtest nicht verworfen, weil Paper abstrakt „realistischer“ ist. Paper hatte in einem Book ausgeführt, das die Research nie gesehen hat. Die 1.6 war intern konsistent. Sie war konsistent über die falsche Börse.
Wir haben die Binance-Version im Archiv gelassen, mit einer Notiz im Report: dieses Konto nicht gegen dieses Tape papern. Die Bybit-Version darf weiterlaufen, bei einer Zahl, über die niemand einen Thread schreiben würde. Das ist das richtige Ergebnis. Ich vermisse die 1.6 immer noch ein bisschen, und genau daran merkt man, dass sie Arbeit gemacht hat, die sie nicht verdient hatte.
Was wir nächstes Mal überspringen würden
Die Abkürzung war soziologisch. Binance ist das Tape, das jeder Vendor, jedes Research-Notebook, jeder Agent-Default einem in die Hand drücken will. Das Konto ist dort, wo man es tatsächlich eröffnen konnte. Diese 2 Fakten fühlen sich wie ein Operations-Detail an. Sie sind der Backtest.
- Zuerst die Execution-Venue wählen. Das Research-Tape aus den Last Prices, Funding-Stamps, Marks, Ticks und der Fee-Tier dieser Venue bauen. Wenn der Default des Vendors Binance ist, ist das kein Default. Es ist eine andere Strategie.
- Wenn man keine Historie für die Venue bekommt, auf der man im Paper handeln wird, kein führendes Tape unterschieben und die Gap Slippage nennen. Entweder warten, oder das fremde Tape als verzögertes Signal behandeln und so lange laggen, bis es im Execution-Book hätte sichtbar sein können.
- Wenn man Paper mit dem Backtest vergleicht, den Drift aufteilen: Last-Price-Gap in den Trade-Minuten, Fee-Line, Funding-Timestamps, Mark für die Stops. Das Blotter vom Dienstag hat alle 4 vermischt und sie Slippage genannt.
- Den gekreuzten Test absichtlich fahren. Signal auf A, Fill auf B. Wenn dort der ganze Edge lebt, hat man keine Strategie. Man hat einen Lead-Lag, auf den man in Size nicht gefüllt wird.
Würde ich immer noch auf Binance schielen, wenn ich Bybit handle? Für einen diskretionären Sanity-Check, klar. Für einen Fill, nein. Das Paper-Konto hat uns schon gesagt, was dieser Blick wert ist. Er ist die 4.1 bps wert, die der andere Raum zuerst gedruckt hat, und die bekommen wir nicht.
← Alle Beiträge


