5. September 2026 · Risiko

Dein Backtest wurde nie liquidiert: Margin, Mark Price und die übersehene Hebelgrenze

Dein Backtest wurde nie liquidiert: Margin, Mark Price und die übersehene Hebelgrenze

Letzten Monat kam aus einer generierten Strategie eine Equity-Kurve mit einem Drawdown von 63%. Tief, hässlich, dann eine saubere Erholung in den folgenden 6 Wochen – so eine Kurve, bei der ein Researcher die Augen zusammenkneift und entscheidet, sie sei mit kleinerer Positionsgröße verkraftbar. Ich habe sie erneut durch eine Margin-Engine laufen lassen, die weiß, was eine Maintenance-Margin-Stufe ist. Das Konto wurde am 41. Tag mitten in diesem Drawdown liquidiert, und alles rechts vom 41. Tag war Fiktion.

Das ist die teuerste Klasse von Backtest-Bugs, die ich kenne, weil sie deine Rendite nicht um ein paar Basispunkte verzerrt. Sie löscht einen absorbierenden Zustand aus der Simulation. Eine Strategie, die auf null fallen kann, und eine, die das nicht kann, sind unterschiedliche Strategien. Ein Backtest, der die Margin nie prüft, kann dir nicht sagen, welche davon du hast.

3 Fehler, die ich immer wieder sehe.

Fehler 1: Hebel als Zahl, mit der du die Renditen multiplizierst

Das häufigste Muster. Du berechnest aus deinen Signalen eine Renditereihe, entscheidest dich für 10x Hebel und multiplizierst damit. Manchmal ist es etwas ausgefeilter – die Positionsgröße ist equity * leverage / price –, aber der Kontostand ist nach wie vor nur ein einzelner Wert, der steigt und fällt. Kein Marginkonto, keine Obergrenze für den Nominalwert, keine Abbruchbedingung.

Der Schaden ist subtil, weshalb der Fehler bei Reviews durchgeht. Sharpe ist skaleninvariant, deine Kennzahl ändert sich also nicht, wenn du den Hebel von 3x auf 30x erhöhst. Der Researcher schließt daraus, dass der Hebel ein kostenloser Regler ist, mit dem sich Volatilität gegen Rendite tauschen lässt. Der maximale Drawdown skaliert linear und bleibt durch einen zufälligen Recheneffekt unter 100%, weil sich eine Reihe multiplizierter Renditen asymptotisch null nähert und den Wert nie unterschreitet. Multiplizierst du einen Verlusttag mit -9% mit 12, erhältst du in der realistischen Version -108% und in der naiven Version „-108%, aber die Equity-Kurve ist noch positiv“ – je nachdem, ob du aufgezinst oder addiert hast. Ich habe beides gesehen.

Was fehlt: Der Hebel wird nicht auf deine Renditen angewendet. Er wird auf dein Sicherheitenkapital angewendet. Das Sicherheitenkapital ist eine begrenzte Größe, die die Börse jede Sekunde überwacht. Sinkt es unter die Maintenance-Anforderung, gehört dir die Position nicht mehr.

Das verräterische Zeichen: Wenn deine Simulation bei keinem Hebel einen Totalverlust erzeugen kann, bildet sie den Hebel nicht ab.

Fehler 2: Liquidationspreis allein aus dem Hebel ableiten

Die nächsthöhere Stufe der Raffinesse ergänzt eine Liquidationsprüfung, meist etwa so: Bei 20x vernichtet eine ungünstige Bewegung von 5% die Margin, also liquidieren wir einen Long bei Einstieg × 0.95. Sauber, intuitiv und gleich in 4 Richtungen falsch.

Perp-Börsen richten sich nicht nach deiner Hebeleinstellung, wenn sie entscheiden, wann Schluss ist. Sie verwenden eine Maintenance-Margin-Rate, die abhängig vom Positionsnominalwert stufenweise ansteigt und in einer Tabelle festgelegt ist. Ungefähre Struktur für BTCUSDT USDⓈ-M, die sich mit Anpassungen der Börsen verändert:

Positionsnominalwert (USDT)Maintenance-Margin-RateMax. Hebel
0 – 50,0000.40%125x
50,000 – 600,0000.50%100x
600,000 – 3,000,0001.00%50x
3,000,000 – 12,000,0002.50%20x
12,000,000 – 70,000,0005.00%10x

Die ungünstige Bewegung, die du bei einem isolierten Long verkraftest, beträgt also ungefähr 1/L − MMR, nicht 1/L. Bei 20x in der zweiten Stufe sind das 5% − 0.5% = 4.5%. Ein halbes Prozent klingt nach Rundung. Bei BTC zu 84,000 sind das 420 Dollar Kursbewegung. In einer heftigen Stunde entscheiden 420 Dollar, ob ein Docht dich ausstoppt oder nicht. Jeder Docht ist ein Münzwurf, und du hast sie alle zu deinen Gunsten verzerrt.

Dann kommen die Gebühren. Die Taker-Gebühr beim Einstieg wird dir sofort bei der Ausführung von der Margin abgezogen: 0.045% von 500,000 Nominalwert sind 225 USDT zulasten eines Marginkontos mit 25,000. Dadurch verschiebt sich der Liquidationspreis, noch bevor die Position sich überhaupt bewegt hat. Funding wirkt genauso, kontinuierlich, und auf den gehebelten Nominalwert gerechnet ist es viel höher, als Researcher erwarten:

4.55%tatsächliche ungünstige Bewegung bis zur Liquidation bei 20x, inklusive Einstiegsgebühr
0.60%täglicher Funding-Abzug von der Margin bei 20x, 0.01%/8h
18%dieser Margin in einem ruhigen Monat aufgebraucht

Eine Position, die sich 30 Tage lang nicht bewegt – keine ungünstige Kursbewegung, keine Trades –, hat fast ein Fünftel ihres Sicherheitenkapitals aufgezehrt und ihren Liquidationspreis merklich näher herangezogen. Die 3. und 4. Fehlerquelle: Die Stufe ändert sich, wenn du die Position aufstockst. Eine Position, die in der 0.5%-Stufe beginnt und durch Nachkäufe in die 1.0%-Stufe wächst, erhält einen ungünstigeren Liquidationspreis als den, den du beim Einstieg berechnet hast. Und bei Cross-Margin werden Sicherheiten über Positionen hinweg zusammengelegt. Ob dein BTC-Long überlebt, hängt also davon ab, was dein ETH-Short macht. Wenn du Cross-Margin als eine Reihe unabhängiger isolierter Positionen simulierst, hast du die Korrelationsstruktur deines eigenen Kontos auf den Kopf gestellt.

Fehler 3: Liquidationen zum falschen Preis, im falschen Moment und zum falschen Ausführungskurs abwickeln

Angenommen, du hast das Triggerniveau richtig bestimmt. Jetzt stellt sich die Frage: Welcher Preis überschreitet es, wann prüfst du das, und zu welchem Kurs wird ausgeführt?

Liquidationen werden durch den Mark Price ausgelöst. Dieser bildet einen Index mehrerer Spot-Börsen mit geglättetem Basisanteil und ist bewusst so konstruiert, dass ein Docht auf einer einzelnen Börse nicht ausreicht. Dein Stop-Loss wird – je nach Konfiguration – wahrscheinlich durch den zuletzt gehandelten Preis ausgelöst. Diese beiden Werte weichen genau dann voneinander ab, wenn es darauf ankommt. Während einer Kaskade kann der letzte Preis des Perps für mehrere zehn Sekunden 1–2% unter den Mark Price fallen. Ein Backtest, der Stop und Liquidation anhand desselben OHLCV-Tiefs auslöst, simuliert eine Börse, die es nicht gibt.

Beide Fehler sind hier gleichzeitig vorhanden, und sie heben sich nicht auf. Beim letzten Preis liquidierst du bei Dochten, die die Börse ignoriert hat. Beim Mark Price übersiehst du den Fall, in dem sich der Mark Price selbst bewegt hat – eine Indexabweichung auf einer Spot-Börse kann tatsächlich dazu führen, dass du zu einem Preis liquidiert wirst, der auf dem von dir gehandelten Perp nie erreicht wurde.

Dann die Ausführung. Naive Engines schließen die Position zum Liquidationspreis und verbuchen den Verlust so, als wäre es ein Stop. Tatsächlich übernimmt die Liquidations-Engine die Position zum Bankrottkurs – dem Niveau, bei dem deine Margin genau null beträgt und das ungünstiger ist als der Trigger. Zusätzlich fällt eine Liquidationsgebühr an, abhängig von der Stufe und in den unteren Stufen ungefähr 1% des Nominalwerts. Bei 20x entsprechen 1% des Nominalwerts 20% deiner verbleibenden Margin. Führt die Engine unter dem Bankrottkurs aus, deckt der Versicherungsfonds die Differenz. Ist der Fonds auf manchen Börsen erschöpft, reichen sozialisierte Verluste bis auf die profitable Seite des Orderbuchs. Dein realisierter Verlust entspricht nicht dem Drawdown bis zum Liquidationspreis. Er ist höher, und der Aufschlag ist genau an den Tagen am größten, an denen das Orderbuch dünn genug war, um es besonders schlimm zu machen.

Auch die Frage nach dem Timing aus der Intrabar-Mechanik stellt sich hier – mit deutlich schärferen Folgen als sonst. Enthält ein 1-minute-Bar sowohl dein Take-Profit- als auch dein Liquidationsniveau, verbucht ein Backtest, der Exits vor der Margin prüft, bereitwillig den Gewinn. Die Börse prüft die Margin bei jedem Update des Mark Price, ungefähr einmal pro Sekunde, bevor alles andere passieren kann.

Was die Engine stattdessen erfassen muss

Das muss alles nicht exotisch sein. Die Simulation muss den Zustand fortschreiben. Das Konto ist ein Objekt mit einem Kontostand, keine Renditereihe. Bei jedem Bar wird es in der Reihenfolge aktualisiert, in der auch die Börse vorgehen würde:

  1. Wallet-Kontostand und unrealisierter PnL getrennt erfassen. Das Margin-Verhältnis ist Maintenance-Margin geteilt durch Margin-Kontostand, und der Margin-Kontostand enthält den unrealisierten PnL. Werden diese Werte vermischt, wirkt eine Verlustposition besser besichert, als sie tatsächlich ist.
  2. Die Stufentabelle für jedes Symbol, nach Datum versioniert. Die Stufen werden angepasst. Ein Backtest von 2023 mit den Stufen von 2026 ist ein subtiler Look-ahead – meistens ein vorteilhafter, da die Börsen die Anforderungen für große Coins im Laufe der Zeit generell gelockert haben.
  3. Eine Mark-Price-Reihe, nicht nur Klines. Wenn du keine historische Mark-Price-Reihe beschaffen kannst, weise in den Ergebnissen darauf hin und verwende einen konservativen Näherungswert. Ersetze den letzten Preis niemals stillschweigend.
  4. Die Margin-Prüfung steht an erster Stelle der Ereignisreihenfolge eines Bars, vor Stops, Zielen, Signalen oder Rebalancing.
  5. Ausführungen zum Bankrottkurs plus Liquidationsgebühr, wobei der Gebührensatz aus derselben Stufenzeile wie die MMR gelesen wird.
  6. Ein absorbierender Endzustand. Sobald das Eigenkapital null erreicht, endet der Lauf. Kein Zurücksetzen, kein „angenommen, der Trader schießt Geld nach“, kein Fortsetzen der Reihe mit einem neuen Nominalwert.

Der letzte Punkt sorgt für die meisten Diskussionen. Irgendjemand weist immer darauf hin, dass ein echter Trading-Desk weiteres Sicherheitenkapital einzahlen würde und der Abbruch der Simulation deshalb unrealistisch hart sei. Vielleicht. Aber „diese Strategie funktioniert, wenn du nach dem Crash immer weiter Geld nachschießt“ ist eine Behauptung, die genau so formuliert und gezielt getestet werden sollte – mit Nachschüssen als ausdrücklicher Eingabe, statt sie stillschweigend als Standard anzunehmen. Sobald man es ehrlich aufschreibt, merken die meisten, dass sie das gar nicht gemeint haben.

Der praktische Nutzen von all dem: Wenn du dieselbe Strategie live bei der Börse auf dem Papier mitlaufen lässt, sollten das von der Börse gemeldete Margin-Verhältnis und das von deinem Simulator berechnete den ganzen Tag über höchstens 1 oder 2 Basispunkte auseinanderliegen. Diese Übereinstimmung lässt sich kostenlos jede Minute für jede offene Position prüfen. Das ist der günstigste Paritätstest im gesamten Stack, und fast niemand führt ihn durch. Weichen die beiden Werte voneinander ab, hat die Börse recht, und du hast einen Bug, den du finden solltest, bevor es der Drawdown für dich tut.

Perpetual-FuturesHebelLiquidationMargin-EngineBacktesting
← Alle Beiträge