7 Tage Pro+ gratis · keine KarteKostenlose Testphase starten

Whale walls

Wie große ruhende Orders im laufenden Orderbook erkannt werden und was die Schwellenwerte bedeuten.

Was als whale wall zählt

Eine whale wall (große ruhende Order) ist ein einzelnes Preisniveau im Orderbook einer Börse, dessen ruhende Menge einen eingestellten Mindestwert erreicht oder übertrifft. Der Tracker liest das laufende Buch, behält jedes Bid- oder Ask-Niveau, das den Mindestwert erreicht, und verfolgt dieses Niveau über die Zeit als ein einziges Objekt. Die Mindestwerte liegen je Handelspaar und je Handelsplatz vor, nicht als eine globale Zahl, und verfolgt werden nur Paare mit einer gespeicherten, aktivierten Konfiguration. Verschwindet eine wall und taucht innerhalb von fünf Minuten zum selben Preis mit ähnlicher Menge wieder auf, gilt sie als dieselbe Order und nicht als eine neue.

Das Leben einer wall im Tracker

Der Stream trägt fünf Ereignisnamen: wall_appeared, wall_updated, wall_cancelled, wall_filled und wall_partialfill. wall_appeared markiert das erste Mal, dass ein Niveau den Mindestwert erreicht; wall_updated feuert bei jeder Mengenänderung. Ein Niveau, das verschwindet, schließt nicht sofort ab. Es geht für bis zu fünf Minuten in einen wartenden Zustand, und kehrt derselbe Preis mit einer Menge zurück, die der Tracker mit 0,70 oder besser als dieselbe Order bewertet, wird es wieder zusammengeführt und sein Lückenzähler steigt. Erst wenn die fünf Minuten ohne Rückkehr vergehen, gibt der Tracker ein abschließendes Ereignis aus. Auf der Tafel entfernen wall_cancelled und wall_filled die Zeile, während wall_updated und die Teilfüllung sie behalten und ihre Zahlen neu schreiben.

Abschließende Ereignisse werden anders behandelt als die Größenfilterung. Der Server verwirft wall_appeared und wall_updated unterhalb des eingestellten Mindestwerts, bevor sie den Kanal verlassen, leitet wall_cancelled und wall_filled aber immer weiter, weil ein Client diese wall womöglich noch aus einem früheren snapshot hält und sie entfernen muss. Die Tafel folgt derselben Regel: Sie ignoriert eine Aktualisierung unterhalb der Schwelle, aber nie eine Entfernung. Deshalb kann eine wall kurz nach dem Anheben des Mindestwerts von der Tafel verschwinden, ohne dass eine neue wall an ihre Stelle tritt.

Neues Niveauerreicht das MinimumVerfolgtauf der Tafel sichtbarWartendweg, bis zu 5 Minutenwall_appearedNiveau verschwindetwall_updatedkehrt zurück und passt90 % gefülltGefüllt90 % oder mehr20 % gefülltTeilfüllung20 % bis 89 %kein FüllbelegStorniertunter 20 %Blitz-Lebensdauerspoofinglebte unter 500 ms
Der Tracker hält ein verschwundenes Niveau fünf Minuten lang in einem wartenden Zustand. Kehrt derselbe Preis mit einer Menge zurück, die als dieselbe Order mit 0,70 oder besser bewertet wird, kommt er mit Historie und Lückenzähler intakt zurück auf die Tafel. Andernfalls wird genau eine abschließende Einstufung ausgegeben, entschieden über den kumulierten gefüllten Anteil, mit zwei Ausnahmen: Eine wall, durch die der Preis gehandelt hat, gilt auch ohne erfasste Verkleinerungen als gefüllt, und eine wall, die unter 500 Millisekunden lebte, fast nichts füllte und keinen Preisdurchgang sah, gilt als spoofing.

Wie der Tracker zwischen gefüllt, Teilfüllung und storniert entscheidet

Jedes Mal, wenn ein verfolgtes Niveau schrumpft, sucht der Tracker nach Trades, die etwa im selben Moment zu diesem Preis oder in dessen Nähe ausgeführt wurden. Decken diese Trades den größten Teil der Verkleinerung ab, wird sie als gefüllt verbucht. Decken sie nur einen Teil davon ab, wird allein das von ihnen bestätigte Volumen angerechnet, und wo die Belege dünn sind, davon nur ein verringerter Anteil. Eine Verkleinerung, hinter der überhaupt kein Handelsbeleg steht, wird als Stornierung verbucht. Das Suchfenster reicht weiter zurück als nach vorn, weil ein Trade den Tracker in der Regel vor der Tiefenaktualisierung erreicht, die ihn abbildet.

Diese Beträge summieren sich über das Leben der wall zu einer gefüllten und einer stornierten Gesamtmenge. Schließt die wall schließlich ab, entscheidet der kumulierte gefüllte Anteil über das abschließende Ereignis: 90 Prozent oder mehr gelten als gefüllt, 20 Prozent oder mehr als Teilfüllung, alles darunter als storniert. Zwei Sonderfälle setzen die Rechnung außer Kraft. Eine wall, die in einem einzigen Takt ohne erfasste Verkleinerungen verschwindet, während der Marktpreis durch ihr Niveau hindurchgegangen ist, gilt als gefüllt. Eine wall, die unter 500 Millisekunden lebte, dabei fast nichts füllte und die der Preis nie kreuzte, wird als spoofing (Scheinorder) eingestuft.

Abgedeckte Börsen und Märkte

Vier Handelsplätze sind abgedeckt: Binance Futures, Binance Spot, Coinbase und Hyperliquid. Binance Futures und Hyperliquid sind als Futures gruppiert, Binance Spot und Coinbase als Spot. Orderbook- und Handelsdaten werden direkt aus dem öffentlichen WebSocket-Feed der jeweiligen Börse gelesen. Die Abdeckung ist nicht überall gleich — die Tracker für Coinbase und Hyperliquid laufen nur für eine ausdrückliche Liste der jeweils unterstützten Paare, und einige Paare entfallen auf Binance Spot, weil sie dort nicht gelistet sind. In der Oberfläche wird gewählt, welche Handelsplätze angezeigt werden, und die Kopfzeile zeigt, wie viele der vier gerade ausgewählt sind.

Einstellbare Werte

Zwei Größenfilter steuern die Tafel. „Min“ legt die kleinste überhaupt angezeigte wall fest; „Big“ legt fest, ab wann eine wall als große Order markiert wird. Beide bieten dieselben Vorgaben — 5, 10, 25, 50, 100 und 250 Einheiten des Basiswerts — plus einen freien Betrag, und beide lassen sich über einen einzigen Währungsschalter in Einheiten des Basiswerts oder in US-Dollar ausdrücken, wobei der Dollargegenwert neben jeder Vorgabe steht. Die Voreinstellungen unterscheiden sich je Paar, ein Symbolwechsel übernimmt also die Voreinstellungen dieses Paares. Die Einstellungen bleiben im Browser und werden im angemeldeten Zustand mit dem Konto abgeglichen.

Wie aktuell die Daten sind

Die Tafel öffnet mit einem einmaligen snapshot der derzeit aktiven walls und hält sich danach über einen Server-Sent-Event-Stream aktuell — einer für Futures, einer für Spot —, sodass Änderungen ankommen, sobald sie geschehen, und nicht im Takt eines Aktualisierungszeitgebers. Der Größenfilter wird serverseitig in der snapshot-Anfrage angewendet. Der Server sendet alle 15 Sekunden einen heartbeat und alle 30 Sekunden einen keep-alive-Kommentar. Der Client markiert Daten nach 30 Sekunden ohne Ereignisse als veraltet, behandelt einen ausbleibenden heartbeat von 45 Sekunden als tote Verbindung und verbindet mit exponentiellem Backoff bis zu zehnmal neu. Ein snapshot wird beim Verbinden geladen sowie nach einem Wechsel von Symbol oder Schwellenwert; eine automatische Neuverbindung stellt nur den Stream wieder her und setzt an der zuletzt gesehenen Sequenznummer an.

Verbindensnapshot + Stream0s15s30s45sServer sendetheartbeatkeep-alive-KommentarClient schließt darausDaten veraltetVerbindung totexponentielles Backoff, bis zu 10 VersucheNeu verbindennur Stream — kein snapshot
Die Zeiten werden ab dem letzten Ereignis oder dem letzten heartbeat gemessen, nicht ab Verbindungsbeginn. Nur die bewussten Wege — Seite öffnen, Symbol wechseln, Schwellenwert ändern — holen einen snapshot; die automatische Neuverbindung nach einem abgerissenen Stream öffnet nur den Stream und sonst nichts, weil der Server keine wiederaufnehmbaren Ereignis-IDs sendet. Das Backoff verdoppelt sich von einer Sekunde bis zu einer Obergrenze von 30 Sekunden und endet nach zehn Versuchen; danach wird die Verbindung als Fehler gemeldet und eine Schaltfläche zum manuellen Neuverbinden erscheint.

Wie die Tafel snapshot und Stream in Einklang hält

Der Stream öffnet, bevor der snapshot angekommen ist; die Ereignisse würden sonst auf ein Buch angewendet, das gleich ersetzt wird. Stattdessen werden sie während des Abrufs in einem Puffer von bis zu 10.000 Ereignissen gehalten; läuft dieser Puffer über, wird die ältere Hälfte verworfen und der Verlust protokolliert. Sobald der snapshot vorliegt, wird der Puffer sortiert und abgespielt, wobei nur Ereignisse mit einer höheren Sequenznummer als der des snapshot erhalten bleiben. Angewendete Ereignisse werden anschließend in Stapeln je Animationsbild auf den Bildschirm geschrieben, wobei wall_appeared, wall_filled und wall_cancelled vor dem Rest eingereiht werden.

  • Unter Last wirft der Server nur Verkehr niedriger Priorität ab: wall_appeared, wall_filled und wall_cancelled werden nie aus einem Kanal verworfen, wall_updated dagegen schon, sobald der Kanalpuffer 800 Einträge überschreitet.
  • Wird etwas verworfen, bleibt der Server nicht still — er sendet ein data_gap-Ereignis mit der Zahl der verworfenen Ereignisse und dem Grund, entweder Lastabwurf oder ein zurückgefallener Client.
  • Ein geänderter Größenschwellenwert öffnet den Stream mit dem neuen Filter erneut und holt einen frischen snapshot; walls, die den Schwellenwert nicht mehr erreichen, werden zuerst aus der lokalen Karte entfernt.
  • Ein Symbolwechsel leert die wall-Karte, die Sequenznummer und die Kennzahlen, bevor irgendetwas Neues angefragt wird, damit sich die beiden Symbole nie vermischen.

Die Tafel lesen

walls desselben Handelsplatzes werden zu Preis-buckets (Preisfächern) gruppiert, deren Größe automatisch aus dem Preisniveau gewählt wird. Jede Zeile zeigt den bucket-Preis und dessen Gesamtgröße in Dollar oder Einheiten des Basiswerts, eine Markierung für Zeilen oberhalb der eingestellten Schwelle für große Orders sowie einen Balken für die kumulierte Größe, gestapelt in Richtung des besten Preises. Beim Überfahren einer Zeile öffnet sich ein Detailstreifen mit Handelsplatz, Seite, Preis, Wert, kumuliertem Wert, Abstand zum aktuellen Preis in Prozent, Menge und dem Alter der ältesten wall im bucket. walls, durch die der Markt bereits gehandelt hat, sind standardmäßig ausgeblendet, weil sie vermutlich gefüllt sind; eine Aktion in der Befehlspalette blendet sie wieder ein.

Was eine Zeile wirklich ist: Preis-buckets

Eine Zeile ist nicht eine Order. Bevor irgendetwas gezeichnet wird, wird jede verfolgte wall auf ein Preisraster gerundet, und walls, die auf derselben Stufe, demselben Handelsplatz und derselben Seite landen, werden zu einer Zeile zusammengefasst. Die Schrittweite ergibt sich aus dem Preis selbst: ab 1.000 aufwärts beträgt sie 0,1, von 10 bis 1.000 beträgt sie 0,01, und unter 10 beträgt sie 0,001. Ein Niveau nahe 100.000 landet also in einem bucket von einem Zehntel Dollar, ein Niveau nahe 3 in einem von einem Zehntel Cent. An den Größeneinstellungen hängt das Raster nicht.

Jeder bucket trägt anschließend die summierte Menge, den summierten Dollarwert, die Zahl der enthaltenen walls sowie das Alter der ältesten und der jüngsten davon. Die Markierung für große Orders wird gegen die bucket-Summe geprüft, nicht gegen eine einzelne Order — mehrere mittelgroße walls auf einer Stufe können sie also gemeinsam auslösen. Nach dem Zusammenfassen werden Bids absteigend und Asks aufsteigend sortiert, und vom oberen Ende jeder Liste wird eine laufende Summe gebildet. Der Balken hinter einer Zeile zeigt diese laufende Summe im Verhältnis zur größten laufenden Summe derselben Karte — deshalb sind die Balken innerhalb eines Handelsplatzes vergleichbar, über Handelsplätze hinweg aber nicht.

108,450$4.2MbinanceEine Zeileein Preis-bucket, keine OrderPunkt für große Orderbucket-Summe ≥ Bigbucket-Preisauf Raster gerundetbucket-SummeUSD oder BasiswertBörsen-Abzeichennur zusammengeführtKumulierter BalkenAnteil am KartenmaximumDetailstreifenbeim ÜberfahrenAbstand zum Preis, in ProzentAlter der ältesten wall im bucket
Von links nach rechts trägt eine Zeile die Markierung für große Orders, den gerundeten bucket-Preis und den Gesamtwert des bucket; der schattierte Balken dahinter ist die laufende Summe vom oberen Ende dieser Seite, skaliert an der größten laufenden Summe derselben Karte. Das Börsen-Abzeichen erscheint nur in den zusammengeführten Ansichten. Beim Überfahren der Zeile öffnet sich der Detailstreifen am unteren Seitenrand, wo der Abstand die Lücke zwischen bucket-Preis und aktuellem Preis in Prozent ist und das Alter das Alter der ältesten wall im bucket.

Gekreuzte walls und die Preismarken

„Gekreuzt“ entscheiden zwei Zahlen, die die Seite für sich selbst führt: der höchste und der niedrigste Preis, den sie seit der Wahl des aktuellen Symbols gesehen hat. Eine Ask-wall gilt als gekreuzt, sobald die Höchstmarke ihren Preis erreicht oder überschreitet; eine Bid-wall gilt als gekreuzt, sobald die Tiefstmarke ihren Preis erreicht oder unterschreitet. Die Überlegung dahinter: Der Markt hat auf diesem Niveau bereits gehandelt, eine dort noch liegende wall ist also eher ein Überbleibsel im Zustand des Clients als echte ruhende Größe. Ausblenden ist die Voreinstellung.

Zwei Folgen sind gut zu kennen. Die Marken werden bei jedem Symbolwechsel zurückgesetzt, direkt nach einem Wechsel hat der Filter also nichts, worauf er wirken kann, und es bleibt nichts ausgeblendet, bis Preise eintreffen. Und der Filter greift schon beim Zusammenfassen und nicht erst beim Darstellen, eine ausgeblendete wall verschwindet daher auch aus den Summen des Handelsplatzes und aus dem Maximum, das die Balken skaliert. Wird der Filter über die Befehlspalette abgeschaltet, kommen diese walls und ihr Beitrag zu den Summen unmittelbar zurück.

Die vier Layouts

Das Layout-Menü bietet vier Vorgaben. Alle vier lesen dieselben wall-Daten und dieselben Schwellenwerte; sie unterscheiden sich darin, wie die Zeilen angeordnet sind, und in einem Fall darin, was überhaupt gezeichnet wird.

  • Default: eine Karte je gewähltem Handelsplatz, nebeneinander gelegt und waagerecht scrollend, mit Bids in der linken und Asks in der rechten Spalte. Die Karten lassen sich ziehen, um die Reihenfolge der Handelsplätze zu ändern, und ihre Breite lässt sich in Pixeln festlegen, als Anteil des Containers setzen oder automatisch anpassen. Eine zusätzliche Sammelkarte kann am Ende angehängt werden.
  • Compact: ebenfalls eine Karte je Handelsplatz, jede Karte aber als senkrechte Leiter — Asks oben, der aktuelle Preis des Handelsplatzes in der Mitte, Bids darunter.
  • Aggregate: zwei Felder nebeneinander, beide mit allen gewählten Handelsplätzen zu einer Liste zusammengeführt und einem farbigen Handelsplatz-Abzeichen in jeder Zeile. Das linke Feld ist die senkrechte Leiter, das rechte die zweispaltige Bid- und Ask-Ansicht.
  • Chart: ersetzt die Tafel vollständig durch einen Kerzenchart für einen einzelnen Handelsplatz — Binance Futures, Binance Spot oder Coinbase. Die Zeitrahmen reichen von einer Minute bis zu einer Woche, mit fünf Minuten als Voreinstellung. wall-Niveaus werden über den Kerzen als waagerechte Bänder gezeichnet, beschriftet mit ihrem Wert und einem Hinweis „Alter · Anzahl“, höchstens 64 Niveaus gleichzeitig, und neben dem Chart steht ein Tiefenfeld.

Der spoofing-Wert steckt in der API, nicht auf der Tafel

Die Oberfläche hat keine spoofing-Anzeige. Der Detailstreifen einer Zeile zeigt Handelsplatz, Seite, Preis, Wert, kumulierten Wert, Abstand, Menge, Alter und das Abzeichen für große Orders; die Statusleiste zeigt Verbindungszustand, Ereignisse pro Sekunde, Aktualität, Zahl der walls, Bid- und Ask-Summen, Ungleichgewicht und ein Gesundheitsabzeichen. Keines von beiden trägt einen spoofing-Wert, und es gibt weder Filter noch Sortierung darauf. Der Wert lebt allein in der API, auf zwei Endpunkten — einer für Futures, einer für Spot — unter dem whale-walls-Pfad.

Eine Anfrage nimmt optional einen Filter für Symbol und Handelsplatz sowie einen lookback in Stunden, der standardmäßig 24 beträgt und bei 168 gedeckelt ist. Die Antwort enthält einen Eintrag je Symbol und Handelsplatz, jeweils mit einem zusammengesetzten Wert von 0 bis 100, einer Einstufung als niedrig, mittel oder hoch an den Marken 40 und 70, der Zahl der ausgewerteten walls und den vier Faktoren hinter dem Wert: dem Anteil der walls, die unter 60 Sekunden lebten, der mittleren Zahl der Verschwinde-und-Rückkehr-Lücken je wall, dem Anteil stornierter walls oberhalb eines festen Dollarbetrags und der mittleren Zahl der Mengenänderungen. Es zählen nur abgeschlossene walls, ein Paar braucht mindestens zehn davon, um überhaupt zu erscheinen, und die Ergebnisse werden eine Minute lang zwischengespeichert.

Wo die whale-wall-Tafel neben dem übrigen Orderbook steht

Die Tafel ist bewusst kein vollständiges Orderbook. Verfolgt werden nur Niveaus ab dem eingestellten Mindestwert, der Raum zwischen zwei Zeilen ist also kein leeres Buch — es ist schlicht Größe, die nie in Frage kam. Aggregierte Markttiefe, die Ungleichgewichtshistorie, die Tiefenhistorie und die Orderbook-Heatmap sind eigene Endpunkte mit eigenem Datenweg, und eine zweite Familie von Endpunkten fasst dieselben wall-Ereignisse zu Bid-Ask-Summen, Verhältnissen und Differenzen zusammen statt zu einzelnen Niveaus. Eine whale-wall-Zeile als vollständiges Bild der Liquidität zu diesem Preis zu lesen, ist ein Fehler, den die Daten nicht hergeben.

Die Preise neben den einzelnen Handelsplätzen stammen gar nicht aus dem wall-Stream. Der Browser öffnet eigene WebSocket-Verbindungen zu Binance Futures, Binance Spot, Coinbase und Hyperliquid und liest die Preise direkt — deshalb kann eine Karte einen laufenden Preis anzeigen, bevor eine einzige wall eingetroffen ist, und deshalb bewegt sich der Preis weiter, während der wall-Stream neu verbindet. Dieselbe wall-Laufzeit versorgt auch ein whale-walls-Widget im Terminal, die an einer Stelle gesetzten Größenschwellen und der Währungsschalter gelten also auch an der anderen.