Drücken Sie ESC, um zu schließen

DEX CEX Arbitrage Anleitung: Spread-Trading manuell nutzen

Anatomie des Spreads: Warum DEX und CEX niemals perfekt synchron laufen können

Wenn du glaubst, dass Arbitrage zwischen DEX und CEX ein magischer „Geld-Druck-Knopf“ ist, bei dem man einfach 2 % Preisunterschied abgreift und Coins hin- und herschiebt, wirst du eine sehr harte Landung erleben. Ein Börsen-Spread ist kein geschenktes Geld – es ist eine Risikoprämie für Illiquidität, Slippage und Latenzen in der Infrastruktur.

Auf einer CEX (Binance, Bybit, EXMON) entsteht der Preis im Orderbuch (Limit Order Book). Die Liquidität dort ist extrem dynamisch: Market Maker verschieben ihr Order-Grid innerhalb von Mikrosekunden, während Algorithmen den Fair Value auf Basis von Futures-Indizes kontinuierlich neu berechnen.

Auf einer DEX (Uniswap, Raydium, PancakeSwap) hängt der Preis von der mathematischen Kurve eines Liquiditätspools ab. In einem klassischen AMM v2 (x · y = k) ändert sich der Preis erst dann, wenn eine Transaktion physikalisch im Pool landet. Wenn der Preis von Token X auf Binance durch einen großen Verkäufer innerhalb einer Sekunde um 5 % einbricht, bleibt der Pool auf Uniswap stur auf seinem alten, höheren Preis stehen – bis:

  • Die Transaktion eines Arbitrage-Bots ins Netzwerk gedroppt wird.
  • Die Transaktion die Validierungsphase im Block erfolgreich durchläuft.

Genau in diesem Zeitfenster – von ein paar Sekunden in schnellen Netzwerken bis hin zu mehreren Blöcken auf Ethereum – entsteht der Spread.

Der Deep Dive: Woher entsteht der manuelle Spread?

Manuell hast du absolut keine Chance gegen HFT-Bots und MEV-Searcher, die an privaten RPC-Nodes hängen und Validatoren über Flashbots Bribe-Gelder zahlen, um sich im selben Block dazwischenzuschieben (Backrunning). Kleine Spreads von 0,2 % bis 0,5 % bei ETH oder BTC werden von Algorithmen in Mikrosekunden abgegrast.

Als manueller Trader jagst du jedoch nach einer ganz anderen Art von Diskrepanzen:

  • Impulsiver Dump/Pump bei Mid-Cap-Altcoins. Ein „Wal“ droppt auf einer DEX eine Sell-Order über 50.000 $ in den Pool. In einem weniger tiefen Pool rauscht der Preis sofort um 4–7 % nach unten. CEX-Bots können diesen Dip nicht sofort aufkaufen, weil das Orderbuch auf der CEX tief ist und sich der Preis dort gar не verändert hat.
  • Netzwerkstaus und Gas-Price-Spikes. Während extremer Marktvolatilität ist der Mempool völlig überlastet. MEV-Bots klinken sich temporär aus oder verlangen astronomische Gebühren – dadurch können Spreads auf der DEX locker 2 bis 5 Minuten offen bleiben.
  • Asynchrone Listings und Aussetzen von Ein-/Auszahlungen (Deposit/Withdrawal Halt). Eine Börse stoppt die Ein- oder Auszahlung eines Tokens auf einem bestimmten Netzwerk wegen eines Node-Updates. Der Liquiditätsfluss zwischen DEX und CEX ist schlagartig unterbrochen. Auf der CEX entsteht ein isoliertes Orderbuch – und der Preis fängt an, sein Eigenleben zu führen und weicht gerne mal um 15 % von der DEX ab.

Setup-Architektur und Kapitalallokation

Der klassische Anfängerfehler: Man sieht einen Spread auf der DEX, kauft auf der CEX, klickt auf „Withdrawal aufs Wallet“ und wartet 15 Minuten lang däumchendrehend auf die Netzwerkbestätigung. Bis die Coins im Wallet ankommen, ist der Spread nicht nur längst weg – du realisierst auch noch einen garantierten Verlust.

Manuelles Spread-Trading erfordert daher ein delta-neutrales Setup oder ein im Voraus aufgeteiltes Guthaben.

Das Split-Balance-Modell

Vergiss Transfers zwischen Plattformen während des Trades. Die Transfers machst du lange bevor du die Session startest.

Dein Kapital wird in zwei gleiche Teile aufgeteilt:

Total Deposit
 

Bei dieser Aufstellung führst du deine Orders simultan aus:

  • Wenn der Token auf der DEX bei 1,10 $ steht und auf der CEX bei 1,00 $: Du verkaufst sofort ARB auf der DEX (sackst 1,10 $ ein) und kaufst ARB auf der CEX (für 1,00 $ nach).
  • Es findet kein physischer Transfer von Coins statt. Du hast dir innerhalb von 3 Sekunden ein Delta von 10 % (abzüglich Gebühren) gesichert.
  • Das Rebalancing deines Kapitals zwischen Wallet und Börse passiert erst später – wenn sich der Markt wieder beruhigt hat und die Netzwerkgebühren auf einem Tiefstand sind.

Trade-Mathematik: Berechnung von Netto-Spread und Breakeven-Punkt

Eine hübsche Differenz von 3 % auf dem Bildschirm zu sehen und sie direkt als garantierten Gewinn zu verbuchen, ist der Hauptgrund, warum Einsteiger-Arbitrageure ihr Depot schrotten. Der Brutto-Spread (Gross Spread) ist komplett wertvollos. Uns interessiert ausschließlich der Netto-Spread (Net Spread), nachdem alle versteckten Infrastruktur-Gebühren abgezogen wurden.

Formel zur Berechnung der Nettorendite

Net_Profit = (Psell · V) - (Pbuy · V) - FeeCEX - FeeDEX - Gas - Impact

Wobei:

  • Psell und Pbuy - tatsächliche Orderausführungspreise (kein Mid-Price aus dem Header der Website, sondern gewichtete Durchschnittspreise unter Berücksichtigung der Orderbuchtiefe).
  • V - Handelsvolumen in Basiswährung oder Stablecoins.
  • FeeCEX - Taker-Gebühr der Börse (normalerweise 0,05 % bis 0,1 %).
  • FeeDEX - Pool-Gebühr (0,01 %, 0,05 %, 0,3 % oder 1 %, je nach Pool-Tier).
  • Gas - Kosten für die Inklusion der Transaktion in den Block, umgerechnet in USD.
  • Impact - Einfluss des eigenen Volumens auf den Preis innerhalb des AMM-Pools.

Der Endgegner – Price Impact auf DEXen

Wenn du im CEX-Orderbuch 10.000 Coins zu je 1,00 $ siehst, kaufst du sie exakt für 1,00 $ (plus Gebühr). Auf einer DEX mit klassischer Constant-Product-Mechanik (x · y = k) kostet jeder neu gekaufte Coin mehr als der vorherige.

Formel für den Verkaufspreis von Token x gegen Token y im Pool x · y = k:

yout = (yreserve · xin · (1 - fee)) / (xreserve + xin · (1 - fee))

Wenn du eine Order über 5.000 $ in einen Pool mit 100.000 $ Liquidität wirfst, verschiebst du den Pool-Preis um ca. 5 %. Dein Netto-Spread von 3 % schmilzt sofort zu 2 % Verlust, noch bevor deine Transaktion überhaupt in einem Block landet.

Tabelle des echten Spreads bei unterschiedlichem Ordervolumen (Pool 50k $, Brutto-Spread 2,5 %)

Handelsvolumen ($)Price Impact (%)Gebühren (Gas + Fees)Netto-Spread (%)Handelsergebnis
$100~0,2 %~$1.50 (1,5 %)+0,8 %Kleiner Gewinn
$500~1,0 %~$1.50 (0,3 %)+1,2 %Optimaler Profit
$2,000~3,8 %~$1.50 (0,075 %)-1,375 %Verlust durch Impact

Fazit: Für jede Pool-Größe gibt es eine strikt mathematische Obergrenze beim Ordervolumen. Zu viel reinzupumpen bedeutet, sich die eigene Mathematik zu zerstören.

Suche automatisieren: Einen Monitor in Python schreiben

Den Browser öffnen und DexScreener-Tabs sowie das Orderbuch manuell zu refreshen ist absoluter Steinzeit-Modus. Ein manueller Trader nutzt Software nicht für automatische Trade-Ausführung (da hast du gegen MEV sowieso keine Chance), sondern um sofort einen Audio- oder Text-Alert in Telegram/auf der Konsole zu bekommen, sobald sich ein anomales Zeitfenster öffnet.

Unten siehst du ein komplett funktionsfähiges, vollständiges Skript für Python 3.10+. Das Skript überwacht in Echtzeit die direkten Reserven eines PancakeSwap v2-Pools (BNB Chain) über RPC und vergleicht sie mit dem CEX-Orderbuch (in diesem Beispiel wird die Binance REST API genutzt, lässt sich aber easy auf EXMON anpassen). Klar, das Skript ist simpel und könnte noch weiter optimiert werden, aber es tut absolut zuverlässig seinen Job.

Spread-Scanner-Code inklusive Reserven und Gebühren

import sys
import time
import requests
from web3 import Web3
# ============================================================
# CONFIG
# ============================================================
BSC_RPC = "https://bsc-dataseed1.binance.org"
POOL_ADDRESS = Web3.to_checksum_address(
    "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE"
)
BINANCE_DEPTH_URL = (
    "https://api.binance.com/api/v3/depth"
    "?symbol=BNBUSDT&limit=20"
)
TRADE_VOLUME_USD = 300.0
CEX_TAKER_FEE = 0.001
DEX_FEE = 0.0025
MIN_NET_SPREAD_PCT = 0.8
# ungefähre Gas-Kosten für den Swap
ESTIMATED_GAS_COST_USD = 0.15
REQUEST_TIMEOUT = 3
# ============================================================
# WEB3
# ============================================================
w3 = Web3(Web3.HTTPProvider(BSC_RPC))
if not w3.is_connected():
    print("Fehler bei der Verbindung zum BSC RPC")
    sys.exit(1)
# ============================================================
# ABI
# ============================================================
PAIR_ABI = [
    {
        "constant": True,
        "inputs": [],
        "name": "getReserves",
        "outputs": [
            {"name": "_reserve0", "type": "uint112"},
            {"name": "_reserve1", "type": "uint112"},
            {"name": "_blockTimestampLast", "type": "uint32"},
        ],
        "stateMutability": "view",
        "type": "function",
    },
    {
        "constant": True,
        "inputs": [],
        "name": "token0",
        "outputs": [{"name": "", "type": "address"}],
        "stateMutability": "view",
        "type": "function",
    },
    {
        "constant": True,
        "inputs": [],
        "name": "token1",
        "outputs": [{"name": "", "type": "address"}],
        "stateMutability": "view",
        "type": "function",
    },
]
pair = w3.eth.contract(
    address=POOL_ADDRESS,
    abi=PAIR_ABI
)
# ============================================================
# KNOWN TOKENS
# ============================================================
WBNB = Web3.to_checksum_address(
    "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
)
USDT = Web3.to_checksum_address(
    "0x55d398326f99059fF775485246999027B3197955"
)
# ============================================================
# VERIFY PAIR
# ============================================================
try:
    token0 = Web3.to_checksum_address(
        pair.functions.token0().call()
    )
    token1 = Web3.to_checksum_address(
        pair.functions.token1().call()
    )
except Exception as e:
    print("Fehler beim Lesen von token0/token1")
    print(e)
    sys.exit(1)
PAIR_LAYOUT = None
if token0 == WBNB and token1 == USDT:
    PAIR_LAYOUT = "WBNB_USDT"
elif token0 == USDT and token1 == WBNB:
    PAIR_LAYOUT = "USDT_WBNB"
else:
    print("Pool ist kein WBNB/USDT-Paar")
    print("token0 =", token0)
    print("token1 =", token1)
    sys.exit(1)
print("Pair verified:")
print("token0 =", token0)
print("token1 =", token1)
# ============================================================
# BINANCE
# ============================================================
def get_orderbook():
    try:
        response = requests.get(
            BINANCE_DEPTH_URL,
            timeout=REQUEST_TIMEOUT
        )
        response.raise_for_status()
        data = response.json()
        if "bids" not in data:
            return None
        if "asks" not in data:
            return None
        return data
    except Exception:
        return None
def calculate_execution_buy_price(
    asks,
    target_usd
):
    """
    Kauf von BNB für USDT.
    Gibt zurück:
        avg_price,
        received_bnb
    """
    spent_usd = 0.0
    received_bnb = 0.0
    for price_str, qty_str in asks:
        price = float(price_str)
        qty = float(qty_str)
        level_usd = price * qty
        if spent_usd + level_usd >= target_usd:
            remaining_usd = target_usd - spent_usd
            partial_qty = remaining_usd / price
            received_bnb += partial_qty
            spent_usd += remaining_usd
            break
        received_bnb += qty
        spent_usd += level_usd
    if spent_usd < target_usd:
        return None, None
    avg_price = spent_usd / received_bnb
    return avg_price, received_bnb
def calculate_execution_sell_price(
    bids,
    sell_bnb
):
    """
    Verkauf von BNB zu USDT.
    Gibt zurück:
        avg_price,
        received_usdt
    """
    remaining_bnb = sell_bnb
    received_usdt = 0.0
    sold_bnb = 0.0
    for price_str, qty_str in bids:
        price = float(price_str)
        qty = float(qty_str)
        take_qty = min(
            remaining_bnb,
            qty
        )
        received_usdt += take_qty * price
        sold_bnb += take_qty
        remaining_bnb -= take_qty
        if remaining_bnb <= 0:
            break
    if remaining_bnb > 0:
        return None, None
    avg_price = received_usdt / sold_bnb
    return avg_price, received_usdt
# ============================================================
# DEX
# ============================================================
def get_reserves():
    try:
        reserves = (
            pair.functions
            .getReserves()
            .call()
        )
        raw0 = reserves[0]
        raw1 = reserves[1]
        if PAIR_LAYOUT == "WBNB_USDT":
            reserve_bnb = raw0 / 1e18
            reserve_usdt = raw1 / 1e18
        else:
            reserve_usdt = raw0 / 1e18
            reserve_bnb = raw1 / 1e18
        return (
            reserve_bnb,
            reserve_usdt
        )
    except Exception:
        return None, None
def amm_out(
    amount_in,
    reserve_in,
    reserve_out
):
    if (
        amount_in <= 0
        or reserve_in <= 0
        or reserve_out <= 0
    ):
        return 0.0
    amount_in_fee = (
        amount_in
        * (1 - DEX_FEE)
    )
    numerator = (
        amount_in_fee
        * reserve_out
    )
    denominator = (
        reserve_in
        + amount_in_fee
    )
    return numerator / denominator
# ============================================================
# MONITOR
# ============================================================
def monitor():
    print()
    print("DEX/CEX Arbitrage Monitor Started")
    print("-" * 80)
    while True:
        book = get_orderbook()
        if book is None:
            time.sleep(1)
            continue
        reserve_bnb, reserve_usdt = (
            get_reserves()
        )
        if (
            reserve_bnb is None
            or reserve_usdt is None
        ):
            time.sleep(1)
            continue
        bids = book["bids"]
        asks = book["asks"]
        # ====================================================
        # SCENARIO A
        # BUY ON DEX
        # SELL ON CEX
        # ====================================================
        bnb_from_dex = amm_out(
            TRADE_VOLUME_USD,
            reserve_usdt,
            reserve_bnb
        )
        if bnb_from_dex <= 0:
            time.sleep(1)
            continue
        sell_price, usdt_received = (
            calculate_execution_sell_price(
                bids,
                bnb_from_dex
            )
        )
        if usdt_received is None:
            time.sleep(1)
            continue
        usdt_received *= (
            1 - CEX_TAKER_FEE
        )
        usdt_received -= (
            ESTIMATED_GAS_COST_USD
        )
        spread_a = (
            (usdt_received - TRADE_VOLUME_USD)
            / TRADE_VOLUME_USD
        ) * 100
        # ====================================================
        # SCENARIO B
        # BUY ON CEX
        # SELL ON DEX
        # ====================================================
        buy_price, bought_bnb = (
            calculate_execution_buy_price(
                asks,
                TRADE_VOLUME_USD
            )
        )
        if bought_bnb is None:
            time.sleep(1)
            continue
        bought_bnb *= (
            1 - CEX_TAKER_FEE
        )
        usdt_from_dex = amm_out(
            bought_bnb,
            reserve_bnb,
            reserve_usdt
        )
        usdt_from_dex -= (
            ESTIMATED_GAS_COST_USD
        )
        spread_b = (
            (usdt_from_dex - TRADE_VOLUME_USD)
            / TRADE_VOLUME_USD
        ) * 100
        dex_price = (
            reserve_usdt
            / reserve_bnb
        )
        sys.stdout.write(
            "\r"
            f"DEX={dex_price:.2f} | "
            f"A:{spread_a:+.2f}% | "
            f"B:{spread_b:+.2f}%"
        )
        sys.stdout.flush()
        if spread_a >= MIN_NET_SPREAD_PCT:
            print(
                "\n"
                f"[SIGNAL] "
                f"BUY DEX -> SELL CEX "
                f"({spread_a:.2f}%)"
            )
        elif spread_b >= MIN_NET_SPREAD_PCT:
            print(
                "\n"
                f"[SIGNAL] "
                f"BUY CEX -> SELL DEX "
                f"({spread_b:.2f}%)"
            )
        time.sleep(1.5)
# ============================================================
# ENTRY
# ============================================================
if __name__ == "__main__":
    try:
        monitor()
    except KeyboardInterrupt:
        print("\nStopped.")

Dieses Skript berechnet den echten Slippage, weil es den Preis nicht anhand des Standardkurses ermittelt, sondern dein Volumen von 300 $ durch das mathematische Modell des Pools jagt.

Manuelles Ausführungsprotokoll: Wie man nicht zum Opfer von Sandwich-Bots wird

Zwei Klicks auf verschiedenen Plattformen klingen nach einer simplen Aufgabe. In der Realität verbrennen 80 % der manuellen Trader ihren Profit im genau selben Moment, in dem sie ihre Transaktion in den öffentlichen Mempool abschicken.

Sobald Ihre DEX-Kauftransaktion im öffentlichen Mempool von Ethereum, BNB Chain oder Arbitrum landet, stürzen sich MEV-Bots (Maximum Extractable Value) sofort darauf. Wenn Ihre Slippage Tolerance (Slippage-Toleranz) höher als 0.5 % eingestellt ist, feuert der Bot unmittelbar eine Sandwich-Attacke (Sandwich Attack) ab:

  • Der Bot kauft den Token direkt vor Ihrer Transaktion und treibt den Preis nach oben (Frontrun).
  • Ihre Transaktion wird zum schlechtesten aller möglichen Preise an der Grenze Ihres Slippage-Limits ausgeführt.
  • Der Bot verkauft den Token sofort nach Ihnen mit Gewinn (Backrun).

Das Endergebnis? Sie erhalten den Token zu einem hochgetriebenen Preis, und der gesamte Spread geht an den MEV-Searcher.

Sicherer Ausführungspfad (Pipeline)

Um Spreads manuell abzugreifen, ohne die Bots zu füttern, müssen Sie Ihre Transaktionen nach folgendem Schema aufsetzen:

  • Private RPC-Nodes (MEV-Blocker / Flashbots). Vergessen Sie die Standard-Netzwerkeinstellungen in MetaMask. Alle DEX-Transaktionen dürfen ausschließlich über private Relays laufen, die Transaktionen unter Umgehung des öffentlichen Mempools direkt an den Blockvalidator übermitteln.
    Für Ethereum: https://rpc.mevblocker.io oder https://rpc.flashbots.net
    Für BNB Chain / Polygon / Arbitrum: Nutzen Sie QuickNode MEV-Protection Services oder Anbieter wie BloXroute.
  • Striktes Slippage Limit. Keine Standard-1-%- oder -2-%-Einstellungen in den Uniswap- oder 1inch-Interfaces. Das maximal zulässige Slippage für einen Arbitrage-Trade liegt bei 0.1 %–0.3 %. Sollte sich der Preis Millisekunden vor dem Block-Inclusion wegbewegen, muss die Transaktion fehlschlagen (revert), anstatt mit Verlust ausgeführt zu werden.
  • Gas-Fee-Optimierung. Schalten Sie die Gebühreneinstellungen im Web3-Wallet auf den manuellen Modus (Advanced Gas Controls). Setzen Sie die Max Priority Fee (Validator-Trinkgeld) leicht über den aktuellen Medianwert des Netzwerks, um sich den Platz am Anfang des nächsten Blocks zu sichern. Auf L2-Netzwerken (Arbitrum, Base, OP) ist es kritisch, die L1 Data Fees im Auge zu behalten – bei hoher Auslastung auf Ethereum kann das Versenden von L2-Transaktionen bis zu 5-mal teurer als gewöhnlich sein.

Fortgeschrittene Technik: Delta-neutrales Arbitrage „DEX Spot vs. CEX Futures“

Einen Altcoin physisch auf beiden Balances zu halten, während man auf das Erscheinen eines Spreads wartet, birgt das Risiko eines Kursverlusts des eigentlichen Assets (Market Price Risk). Wenn die Coins um 15 % einbrechen, fängt Ihr fixierter 2-%-Spread den Drawdown des Depots nicht auf.

Die in der EXMON Academy angewandte fortgeschrittene Methodik ist der delta-neutrale Spread-Trading über Futures.

Mechanik über einen Short-Hedge

Anstatt das Spot-Asset auf einer CEX zu kaufen, halten Sie dort eine Short-Position im Future mit 1x-Hebel.

Delta Portfolio
 

Ausführungs-Algorithmus:

  • Auf der DEX gibt es einen Price Dump: Der Token stürzt auf 0.95 $ ab, während Future und Spot auf der CEX noch bei 1.00 $ stehen (Spread von 5.2 %).
  • Sie kaufen den Spot auf der DEX für 0.95 $.
  • Gleichzeitig eröffnen Sie auf der CEX einen Short-Future zum Preis von 1.00 $.
  • Ihr Delta ist sofort neutralisiert: Egal in welche Richtung der Markt läuft, der Gesamtwert des Depots verändert sich nicht.
  • Sobald sich der Preis auf der DEX an die CEX angleicht (beispielsweise beide Plattformen bei 0.98 $ einpendeln), schließen Sie beide Positionen:
    • Verkauf des Spots auf der DEX zu 0.98 $ (Profit: +0.03 $ pro Coin).
    • Schließen des Shorts auf der CEX zu 0.98 $ (Profit: +0.02 $ pro Coin).

Gesamter Reingewinn: 0.05 $ pro Coin (5 % auf das eingesetzte Volumen) bei absolutem Ausschluss des Kursverlustrisikos für den Token selbst.

Zusätzlicher Bonus: Handelt der Future auf der CEX im Contango (Future-Preis liegt über dem Spot-Preis), nehmen Sie stündlich parallel die positive Funding Rate (Finanzierungsrate) mit.

Unbekannte Fallstricke und Risiken

Wenn eine Strategie perfekt aussieht, haben Sie die versteckten Schwachstellen noch nicht entdeckt. Manuelles Spread-Trading strotzt nur so vor technischen Minen.

1. Token mit integrierter Steuer (Transfer Tax / Reflection Tokens)

Einige ERC-20- / BEP-20-Token verankern eine Gebühr direkt im Smart Contract für jede Transaktion (z. B. 2 %–5 % für Burn- oder Marketing-Wallets).

Haben Sie den Contract-Code nicht über einen Explorer oder Scanner (TokenSniffer, GoPlus) geprüft, ziehen Sie den Token aus dem Pool, verlieren sofort 5 % durch die Token-Mechanik, plus 0.3 % AMM-Gebühr, und schließen den Trade mit einem massiven Minus.

2. Verschiebung der virtuellen Liquidität in Uniswap v3 (Concentrated Liquidity Trap)

Bei Uniswap v2 ist die Liquidität von Null bis Unendlich verteilt. Bei v3 konzentriert sich die Liquidität in engen Preisspannen (Ticks).

Entstand der Spread, weil der Preis aus der Spanne des Haupt-Market-Makers herausgeschossen ist, kann die visuelle Preisdifferenz gewaltig erscheinen (bis zu 10 %–20 %). Doch das Liquiditätsvolumen im aktuellen Tick beträgt womöglich gerade mal 15 $. Der Versuch, dort einen Trade zu platzieren, führt zu einem sofortigen Slippage von Dutzenden Prozent gegen Sie.

3. Liquiditäts-Imbalance und „Feststeckendes Kapital“ (Inventory Risk)

Haben Sie den Spread 5-mal in Folge in dieselbe Richtung gespielt (z. B. Kauf auf DEX -> Verkauf auf CEX), haben Sie Ihre USDT-Reserven auf der CEX komplett aufgebraucht und Ihr Web3-Wallet mit Altcoins geflutet.

Ein Rebalancing kostet Zeit und Gebühren. Läuft der Markt in einen starken Trend, stecken Sie in einem „einbeinigen“ Trade fest. Risikoregel: Erlauben Sie niemals ein Ungleichgewicht der Balances zwischen den Plattformen von mehr als 70/30.

Trader-Checkliste vor dem Klick

Hängen Sie sich diese Checkliste direkt vor Ihren Arbeitsmonitor. Der Einstieg in einen Trade erfolgt nur, wenn alle 5 Punkte erfüllt sind:

  • MEV-Schutz aktiv: Privater RPC-Node im Wallet ausgewählt (MEV-Blocker / Flashbots).
  • Pool-Tiefe überprüft: Das Handelsvolumen übersteigt nicht 1 %–2 % der gesamten Pool-Reserves auf der DEX (Price Impact < 0.3 %).
  • Reiner Spread bestätigt: Die Preisdifferenz deckt die kumulierten CEX- + DEX- + Gas-Gebühren um das mindestens 2.5-Fache.
  • Smart Contract sauber: Der Token hat keine versteckten Transfergebühren (Transfer Fee = 0 %).
  • Kapital verteilt: Ausreichend Guthaben in beiden Währungen des Paares ist auf CEX und DEX vorhanden, um eine sofortige Ausführung ohne Brücken-Wartezeiten zu garantieren.

Spread-Trading zwischen dezentralen und zentralen Plattformen ist eine reine mathematische Disziplin. Hier gewinnt nicht derjenige, der die Trendrichtung errät, sondern derjenige, der am besten rechnet, die Infrastruktur kontrolliert und gelernt hat, auf seine Anomalie zu warten.


FAQ

Manuelles DEX-CEX-Arbitrage nutzt temporäre Preisabweichungen zwischen Automated Market Makern (AMM) und zentralisierten Orderbüchern durch zeitgleiche Ausführung entgegengesetzter Order über zuvor auf beiden Plattformen bereitgestelltes Kapital. Der Trader führt während des Impulses keine On-Chain-Transfers zwischen den Börsen durch, sondern sichert den Spread ab, sobald die Brutto-Preisabweichung die Gesamtsumme aus Taker-Gebühren, Pool-Swap-Gebühren, Gas-Kosten und Price Impact übersteigt.

Der Schutz vor MEV-Sandwich-Attacken erfolgt durch das Routing von Swap-Transaktionen über private RPC-Endpunkte wie Flashbots oder MEV-Blocker, wodurch die Anfragen am öffentlichen Mempool vorbeigeleitet werden. Ergänzend verhindert die manuelle Begrenzung der Slippage Tolerance auf einen engen Bereich zwischen 0.1% und 0.3% die Ausführung, da die Transaktion automatisch fehlschlägt (Revert), sobald ein Searcher-Bot versucht, die Pool-Reserven vor der Block-Inklusion zu manipulieren.

Der Reingewinn ergibt sich aus der Subtraktion aller Ausführungskosten von der Brutto-Preisdifferenz beider Ausführungsorte. Zu diesen Kosten zählen die CEX-Taker-Gebühr, die Protokollgebühr des DEX-Pools, die in die Basiswährung umgerechneten Gas-Gebühren sowie der durch das Volumen auf der mathematischen AMM-Kurve (X x Y = k) verursachte Price Impact. Eine Arbitrage-Gelegenheit ist nur dann tragfähig, wenn der Brutto-Spread die Summe dieser Reibungsverluste unter Berücksichtigung der Pool-Tiefe übersteigt.
Martyn Borkowski

I am a crypto trader specializing in digital assets and blockchain markets.

My focus is on identifying opportunities, managing risk, and optimizing strategies to achieve consistent growth in the fast-evolving world of cryptocurrency.

Verification & Professional Profiles: X Profile

...

Diskussion beitreten

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *