Prediction Markets sind im Grunde Casinos für Leute, die nicht rechnen können – aber für die, die es draufhaben, sind sie eine Goldgrube. Man tradet hier keine Assets, sondern Zukunftswahrscheinlichkeiten. Arbitrage ist der einzige Weg, um aus diesem System konstante Gewinne zu ziehen, während man das ganze Nachrichten-Rauschen einfach ausblendet.
Mathe hinter dem Spread-Jagen
Arbitrage auf Plattformen wie Polymarket oder Kalshi basiert darauf, "schiefe" Kurse zu finden, also Situationen, in denen die Summe der "Ja"- und "Nein"-Kontrakte nicht exakt 1 ergibt. Wenn du ein Ergebnis für insgesamt 0,95 $ kaufst und die Auszahlung bei Eintritt 1,00 $ beträgt, hast du 5,2 % Rendite. Das ist ein "risikofreier" Trade – vorausgesetzt, du hast das Execution-Risiko (Leg Risk) im Griff.
Die Formel für den echten Profit:Net Profit = (1 - Price_Yes - Price_No) - (Taker Fees + Network Gas)
Wenn deine Rendite unter 2 % liegt, arbeitest du effektiv im Minus, weil Transaktionsgebühren und deine Zeit fürs Monitoring den Gewinn auffressen.
Bot-Architektur aus der Praxis
Vergiss das Web-Interface. Du brauchst einen lokalen Agenten, der direkt mit der API der Plattformen spricht. Hier ist ein Python-Template, das den Job erledigt, Daten zieht und die Delta-Differenz berechnet.
import requests
import time
# Session für Speed initialisieren
session = requests.Session()
def get_best_bid_ask(market_id):
"""
Orderbook von Polymarket direkt abgreifen
"""
url = f"https://clob.polymarket.com/orderbook/{market_id}"
response = session.get(url).json()
# Beste Preise ziehen
return float(response['bids'][0][0]), float(response['asks'][0][0])
def scan_arbitrage(market_yes, market_no):
# Ask-Preise (Kauf) abholen
_, ask_yes = get_best_bid_ask(market_yes)
_, ask_no = get_best_bid_ask(market_no)
total_cost = ask_yes + ask_no
if total_cost < 0.96: # 4% Puffer für Gas & Slippage
print(f"!!! ARBITRAGE GEFUNDEN: {total_cost:.4f} !!!")
# Hier kommt dein Wallet-Call rein
else:
print(f"Spread zu eng: {total_cost:.4f}")
# Beispiel-ID (muss je nach Event angepasst werden)
# scan_arbitrage('2187654321', '2187654322')
Fallen und Profi-Slang
- Resolution Delay: Der Klassiker. Der Markt ist zu, aber deine Auszahlung hängt fest, weil es im UMA-Oracle Zoff gibt. Dein Kapital ist für 3 bis 14 Tage "eingefroren". Arbitrage ist immer ein Kampf um die Liquidität deines Working Capitals.
- Order Book Ghosting: Auf diesen Plattformen gibt es oft "Ghost Orders". Du siehst 0,40 $, aber sobald du das Volumen abgreifen willst, springt der Preis sofort auf 0,45 $. Das sind die automatisierten Market-Maker (AMM), die ihren Spread mit allen Mitteln verteidigen.
- Cross-Platform Skew: Die Preise auf Kalshi driften oft von Polymarket ab, weil dort ein anderes Publikum sitzt. In den USA (Kalshi) wird bei politischem Risiko viel aggressiver gehedgt, während Polymarket der wilde Westen für Krypto-Enthusiasten ist. Achte auf die Korrelation: Wenn BTC crasht, reagiert Polymarket oft schneller als Kalshi.
Operational Efficiency Tabelle
| Szenario | Risiko | Profitabilität | Empfehlung |
|---|---|---|---|
| Single-Plattform | Niedrig | 1-2% | Nicht der Aufwand wert |
| Cross-Plattform | Mittel | 3-7% | Sweet Spot für Bots |
| Optional Hedge | Hoch | 10%+ | Nur für Pros mit ordentlich Kapital |
Wie man nicht sofort alles verliert
Tipp Nummer eins: Geh nicht in Märkte mit niedrigem Volumen. Wenn die Liquidität auf beiden Seiten unter 50.000 $ liegt, führt dein Kauf direkt zu einem Slippage, der deinen Gewinn killt. Such dir Events mit mindestens 500k $ Tagesumsatz.
Technischer Kniff: Wenn du auf Polygon (Polymarket) unterwegs bist, lass die Gas-Gebühr niemals auf Standard. Bei Arbitrage lieferst du dir ein Rennen mit MEV-Bots. Setz dein maxPriorityFeePerGas über den Marktdurchschnitt, damit deine Transaktion garantiert im nächsten Block landet.
Damit Arbitrage nicht zum schleichenden Kapitalverzehr durch Fees wird, musst du weg vom "Spreads jagen" und hin zum "Execution Management". Gewonnen hat hier nicht der, der den Preisunterschied zuerst findet, sondern der Bot, der die Transaktion am schnellsten kompiliert und in den Mempool drückt.
Anatomie der Execution: Warum dein Code abkackt
Die meisten Skripte scheitern an sequenzieller Ausführung. Du fragst Polymarket ab, wartest auf die Antwort, dann Kalshi, rechnen, und dann Transaktion senden. In der Zeit haben die Market-Maker mit ihren WebSocket-Streams und vorgefertigten Orders das Orderbook schon längst wieder gefressen.
Wie die Profis es machen:
- WebSockets statt REST: Polling ist komplett veraltet. Du musst dauerhaft Sockets für beide Orderbooks offen halten. Real-Time-Updates sparen dir 200 bis 800 ms.
- Multicall/Batching: Schick nicht zwei einzelne Transaktionen. Benutz ein Smart-Contract-Interface. Der Contract nimmt deine Orders in einem Call entgegen und führt sie atomar aus. Wenn eine Seite nicht klappt, macht der Contract einen Revert – so verhinderst du "einbeinige" Arbitrage, wo du eine Seite kaufst, aber auf der anderen sitzen bleibst.
Optimierte Execution (Solidity-Konzept)
Wenn du auf EVM-Chains unterwegs bist, ist `delegatecall` dein bester Freund. Damit kannst du die Arbitrage in einem einzigen atomaren Schritt durchziehen.
// Konzept für die Arbitrage-Ausführung
function executeArbitrage(
address target,
bytes calldata data1,
bytes calldata data2
) external payable {
// Beide Käufe in einem einzigen Bundle
(bool success1, ) = target.call{value: msg.value / 2}(data1);
(bool success2, ) = target.call{value: msg.value / 2}(data2);
// Wenn die Arbitrage nicht klappt, Revert und kein Verlust
require(success1 && success2, "Arbitrage execution failed - reverting");
}
Geheimtipps: "Event-Driven" Trading
Auf Prediction Markets springt der Preis oft nicht durch den Markt selbst, sondern durch neue Infos oder Oracle-Status-Updates.
- Leading Indicators: Wenn du politische Märkte tradest, häng deinen Bot an News-Feeds (Bloomberg API oder spezialisierte Telegram-Scraper). Polymarket reagiert meist erst 1 bis 3 Sekunden nach der News. Dein Ziel ist es, schon in Position zu sein, bevor die breite Masse die News im Orderbook verarbeitet hat.
- Synthetische Arbitrage: Manchmal ist es schlauer, nicht "Ja/Nein" zu arbitragen, sondern Futures zu nutzen. Wenn die Wahrscheinlichkeit im Prediction Market explodiert, aber der entsprechende Future sich nicht rührt, ist der Markt "überhitzt". Du shortest den Prediction Market und kaufst den Future. Sobald der Hype abebbt, kassierst du bei beiden Seiten ab.
Checkliste vor dem Deployment:
- Gas-Benchmarking: Rechne die Gas-Kosten für 50 Gwei und 200 Gwei durch. Wenn dein Arbitrage-Gewinn nur bei 50 Gwei liegt und das Netz ist voll – mach den Bot sofort aus.
- Slippage-Limit: Benutze bei Arbitrage niemals Market-Orders. Nur Limit-Orders, die knapp über dem besten Ask liegen. Wenn der Preis wegläuft: Besser Trade verpassen als mit Verlust in den Markt gehen.
- "Dreckige" Daten: Manche Plattform-APIs zeigen nur einen "gewichteteten Durchschnitt", der nichts mit der Realität im Orderbook zu tun hat. Parse immer Asks und Bids einzeln und ignorier die `last_price`-Spalte.
Arbitrage ist hier kein "schnell reich werden"-Trick, sondern ein mathematisches Grind-Spiel. Je weniger Emotion und je mehr Code, desto eher schlägt deine USDC-Performance die Inflation.