Was ist die Bybit Unified Trading Account API?
Die Bybit 统一交易账户 API (Unified Trading Account API) ist eine Schnittstelle, die es dir ermöglicht, automatisiert auf dein Bybit-Konto zuzugreifen. Stelle dir vor, du könntest alle deine Handelsaktivitäten – vom Abrufen deines Kontostands bis zum Platzieren von Orders – mit einfachen Befehlen steuern, ohne die Bybit-Website manuell bedienen zu müssen.
In diesem Tutorial erkläre ich dir Schritt für Schritt, wie du als absoluter Anfänger ohne Programmiererfahrung startest. Ich verwende dabei anschauliche Vergleiche und minimale Fachbegriffe.
Warum die Unified Trading Account API nutzen?
Bybit hat 2023 sein System modernisiert. Die neue Unified Trading Account (UTA) vereint alle Kontotypen in einer Plattform:
- Spot-Wallet – für den Handel mit Kryptowährungen zum Tageskurs
- Derivatives-Wallet – für Futures und Optionen
- Perpetual-Wallet – für unbefristete Kontrakte
Mit der UTA-API kannst du alle Konten gleichzeitig verwalten. Das spart Zeit und reduziert Fehler.
Grundvoraussetzungen für den Einstieg
Bevor du loslegst, brauchst du folgende Dinge:
- Bybit-Konto – Registriere dich auf bybit.com mit Verifizierung (KYC)
- API-Key-Paar – Ein öffentlicher Schlüssel und ein geheimer Schlüssel
- Grundlegendes Verständnis – Ich erkläre alles so einfach wie möglich
API-Schlüssel erstellen: Schritt für Schritt
Schritt 1: Bybit-Konto aufladen
Logge dich in dein Bybit-Konto ein. Navigiere zu Account > API. Du siehst dort eine leere Liste – keine Sorge, das ändern wir jetzt.
[Screenshot-Hinweis: Bybit Dashboard → Account > API → "Create New Key" Button]
Schritt 2: Neuen API-Key generieren
- Klicke auf "Create New Key"
- Wähle als Schlüsseltyp "Unified Trading Account"
- Gib einen eindeutigen Namen ein (z.B. "Trading-Bot-2026")
- Wähle die Berechtigungen aus:
- Read-Only – Nur Daten lesen (empfohlen für den Anfang)
- Trade – Orders platzieren
- Withdraw – Abheben (mit großer Vorsicht!)
- Bestätige mit 2FA (Google Authenticator oder SMS)
[Screenshot-Hinweis: API-Key-Konfigurationsseite mit Berechtigungsoptionen]
Schritt 3: Schlüssel sicher speichern
Nach der Erstellung zeigt Bybit dir zwei Schlüssel:
API Key: bybit_Xz8kL9mNp2QrT4vU6yH1wE5jK
Secret Key: 7Gh8JkLmN0PqR2sT4vU6yXzA1bC5dE7fG
⚠️ WICHTIG: Speichere den Secret Key NIEMALS in einer Textdatei oder E-Mail. Verwende einen Passwort-Manager (z.B. Bitwarden, 1Password). Der Secret Key wird nur einmal angezeigt!
Erste API-Verbindung mit Python
Jetzt kommt der spannende Teil – dein erstes API-Programm! Keine Sorge, ich führe dich durch jede Zeile.
Python installieren
Falls du Python noch nicht installiert hast:
- Gehe zu python.org
- Lade Python 3.11 oder neuer herunter
- Installiere mit Standardeinstellungen
Bibliothek installieren
# Öffne die Kommandozeile (Windows: cmd, Mac: Terminal)
Führe diesen Befehl aus:
pip install pybit requests
Dein erstes Programm: Kontostand abrufen
import requests
import time
import hashlib
import hmac
============================================
KONFIGURATION - HIER DEINE WERTE EINFÜGEN
============================================
API_KEY = "bybit_Xz8kL9mNp2QrT4vU6yH1wE5jK"
API_SECRET = "7Gh8JkLmN0PqR2sT4vU6yXzA1bC5dE7fG"
BASE_URL = "https://api.bybit.com"
def generate_signature(param_str, secret_key):
"""Erstellt eine digitale Signatur für die Authentifizierung"""
signature = hmac.new(
secret_key.encode('utf-8'),
param_str.encode('utf-8'),
hashlib.sha256
).hexdigest()
return signature
def get_account_balance():
"""Fragt den Kontostand ab"""
# Zeitstempel in Millisekunden
timestamp = int(time.time() * 1000)
# Anfrage-Parameter
params = {
"api_key": API_KEY,
"timestamp": timestamp,
"account_type": "UNIFIED", # Unified Trading Account
"coin": "USDT" # Wir fragen USDT-Guthaben ab
}
# Parameter in URL-Format umwandeln
param_str = "&".join([f"{k}={v}" for k, v in sorted(params.items())])
# Signatur erstellen
signature = generate_signature(param_str, API_SECRET)
# Vollständige URL
url = f"{BASE_URL}/v5/account/wallet-balance?{param_str}&sign={signature}"
# Anfrage senden
response = requests.get(url)
data = response.json()
return data
=== PROGRAMM START ===
if __name__ == "__main__":
print("📊 Rufe Kontostand ab...")
result = get_account_balance()
if result["retCode"] == 0:
print("✅ Erfolg!")
print(result["result"])
else:
print(f"❌ Fehler: {result['retMsg']}")
Wenn du das Programm ausführst und ✅ Erfolg! siehst, dann hast du deine erste API-Verbindung erfolgreich hergestellt! 🎉
Positionsdaten abrufen
Nachdem du weißt, wie du dich authentifizierst, fragen wir nun die aktuellen Positionen ab:
def get_positions(category="linear"):
"""
Ruft alle offenen Positionen ab
category: "linear" für USDT Perpetual, "option" für Optionen
"""
timestamp = int(time.time() * 1000)
params = {
"api_key": API_KEY,
"timestamp": timestamp,
"category": category, # linear = Perpetual Futures
}
param_str = "&".join([f"{k}={v}" for k, v in sorted(params.items())])
signature = generate_signature(param_str, API_SECRET)
url = f"{BASE_URL}/v5/position/list?{param_str}&sign={signature}"
response = requests.get(url)
return response.json()
=== Beispiel-Ausgabe ===
if __name__ == "__main__":
print("📈 Rufe offene Positionen ab...")
positions = get_positions()
if positions["retCode"] == 0:
print(f"Gefundene Positionen: {len(positions['result']['list'])}")
for pos in positions["result"]["list"]:
print(f" - {pos['symbol']}: {pos['size']} Kontrakte")
else:
print(f"❌ Fehler: {positions['retMsg']}")
Order platzieren (Fortgeschritten)
Das Platzieren von Orders ist ähnlich, erfordert aber zusätzliche Parameter:
def place_order(symbol, side, order_type, qty, price=None):
"""
Platziert eine neue Order
Parameters:
- symbol: z.B. "BTCUSDT"
- side: "Buy" oder "Sell"
- order_type: "Market" oder "Limit"
- qty: Anzahl der Kontrakte
- price: Limit-Preis (nur für Limit-Orders)
"""
timestamp = int(time.time() * 1000)
params = {
"api_key": API_KEY,
"timestamp": timestamp,
"category": "linear",
"symbol": symbol,
"side": side,
"order_type": order_type,
"qty": qty,
"time_in_force": "GTC" # Good Till Cancel
}
# Nur Preis hinzufügen, wenn Limit-Order
if order_type == "Limit" and price:
params["price"] = price
param_str = "&".join([f"{k}={v}" for k, v in sorted(params.items())])
signature = generate_signature(param_str, API_SECRET)
url = f"{BASE_URL}/v5/order/create"
response = requests.post(
url,
data={**params, "sign": signature},
headers={"Content-Type": "application/x-www-form-urlencoded"}
)
return response.json()
=== BEISPIEL: Market-Order ===
if __name__ == "__main__":
print("📝 Platziere Market-Order...")
order = place_order(
symbol="BTCUSDT",
side="Buy",
order_type="Market",
qty="0.001" # 0.001 BTC
)
if order["retCode"] == 0:
print(f"✅ Order platziert! ID: {order['result']['orderId']}")
else:
print(f"❌ Fehler: {order['retMsg']}")
Häufige Fehler und Lösungen
Fehler 1: "Signature verification failed"
Symptom: Du erhältst den Fehler retCode: 10001 mit der Meldung "Signature verification failed".
Ursache: Der geheime API-Schlüssel stimmt nicht mit der Signatur überein, oder die Parameter-Reihenfolge ist falsch.
# Lösung: Prüfe die Parameter-Sortierung
Die Parameter MÜSSEN alphabetisch sortiert sein!
❌ FALSCH:
param_str = f"api_key={API_KEY}×tamp={timestamp}&symbol=BTCUSDT"
✅ RICHTIG:
params = {"api_key": API_KEY, "timestamp": timestamp, "symbol": "BTCUSDT"}
param_str = "&".join([f"{k}={v}" for k, v in sorted(params.items())])
Fehler 2: "Timestamp expired"
Symptom: retCode: 10002 mit "Timestamp expired".
Ursache: Die Systemzeit deines Computers weicht zu stark von der Bybit-Serverzeit ab.
# Lösung: Synchronisiere die Systemzeit
Für Windows:
Systemsteuerung → Datum und Uhrzeit → Internetzeit → "Jetzt aktualisieren"
Für Mac/Linux im Terminal:
#sudo ntpdate -s time.google.com
Oder im Code: Nutze Bybit-Serverzeit als Referenz
import requests
def get_server_time():
"""Holt die Serverzeit von Bybit"""
response = requests.get("https://api.bybit.com/v5/common/time")
return response.json()["result"]["timeNano"]
Verwende statt time.time() * 1000:
timestamp = int(get_server_time() // 1_000_000) # Nanosekunden zu Millisekunden
Fehler 3: "Reach rate limit"
Symptom: retCode: 10006 mit "Too many requests".
Ursache: Du sendest zu viele Anfragen in kurzer Zeit. Bybit erlaubt 10 Anfragen/Sekunde für Endpunkte.
# Lösung: Implementiere Rate Limiting
import time
from collections import deque
class RateLimiter:
"""Begrenzt Anfragen auf 10 pro Sekunde"""
def __init__(self, max_requests=10, time_window=1):
self.max_requests = max_requests
self.time_window = time_window
self.requests = deque()
def wait_if_needed(self):
jetzt = time.time()
# Entferne alte Zeitstempel
while self.requests and self.requests[0] < jetzt - self.time_window:
self.requests.popleft()
# Wenn Limit erreicht, warte
if len(self.requests) >= self.max_requests:
sleep_time = self.requests[0] + self.time_window - jetzt
time.sleep(sleep_time)
self.requests.append(time.time())
Verwendung:
limiter = RateLimiter()
def throttled_api_call():
limiter.wait_if_needed()
return get_account_balance()
Fehler 4: "Invalid category"
Symptom: retCode: 110001 mit "Invalid category".
Ursache: Falscher Kontotyp bei der Anfrage verwendet.
# Lösung: Verwende die korrekten Kategorien
Für Perpetual Futures (USDT-Margined):
category = "linear"
Für Inverse Futures:
category = "inverse"
Für Optionen:
category = "option"
Für Spot (Unified Portfolio):
category = "spot"
Prüfe vor jeder Anfrage:
def validate_category(cat):
gültige_kategorien = ["linear", "inverse", "option", "spot"]
if cat not in gültige_kategorien:
raise ValueError(f"Ungültige Kategorie. Wähle aus: {gültige_kategorien}")
return True
WebSocket für Echtzeit-Daten
Statt alle 5 Sekunden die API zu pollen, kannst du mit WebSockets sofortige Updates erhalten:
import websocket
import json
class BybitWebSocket:
"""Empfängt Echtzeit-Daten von Bybit"""
def __init__(self, api_key, api_secret):
self.ws_url = "wss://stream.bybit.com/v5/private"
self.api_key = api_key
self.api_secret = api_secret
def on_message(self, ws, message):
data = json.loads(message)
print(f"📩 Neue Daten: {data}")
def on_error(self, ws, error):
print(f"❌ WebSocket Fehler: {error}")
def on_close(self, ws):
print("🔒 Verbindung geschlossen")
def start(self):
ws = websocket.WebSocketApp(
self.ws_url,
on_message=self.on_message,
on_error=self.on_error,
on_close=self.on_close
)
ws.run_forever()
Verwendung:
if __name__ == "__main__":
client = BybitWebSocket(API_KEY, API_SECRET)
client.start()
Automatisierter Trading-Bot: Grundgerüst
Hier ist ein vollständiges Grundgerüst für einen einfachen Trading-Bot:
"""
Bybit Trading Bot - Grundgerüst
⚠️ WARNUNG: Dies ist ein LERNBEISPIEL. Handle mit Bedacht!
"""
import time
import logging
from datetime import datetime
Logging einrichten
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)
class SimpleTradingBot:
def __init__(self, api_key, api_secret, dry_run=True):
self.api_key = api_key
self.api_secret = api_secret
self.dry_run = dry_run # Wenn True: kein echter Handel
if dry_run:
logger.warning("🟡 DRY-RUN MODUS: Keine echten Orders!")
def check_market_opportunity(self):
"""
Hier kommt deine Strategie rein.
Beispiel: Prüfe ob BTC über/unter einem Schwellenwert liegt
"""
balance = get_account_balance()
if not balance or balance["retCode"] != 0:
logger.error("Konnte Kontostand nicht abrufen")
return None
# Beispiel-Logik: Kaufe wenn Preis fällt
# (Dies ist nur ein Beispiel, keine Anlageberatung!)
logger.info(f"Kontostand: {balance['result']}")
return None # Fürs Erste: Keine Order
def run(self):
"""Hauptschleife des Bots"""
logger.info("🚀 Bot gestartet!")
while True:
try:
# Prüfe Marktchancen
order = self.check_market_opportunity()
if order and not self.dry_run:
result = place_order(**order)
if result["retCode"] == 0:
logger.info(f"✅ Order platziert: {order}")
else:
logger.error(f"❌ Order fehlgeschlagen: {result['retMsg']}")
except Exception as e:
logger.error(f"Fehler in Hauptschleife: {e}")
# Warte 60 Sekunden bis zur nächsten Prüfung
logger.info("⏳ Warte 60 Sekunden...")
time.sleep(60)
=== START ===
if __name__ == "__main__":
bot = SimpleTradingBot(
api_key=API_KEY,
api_secret=API_SECRET,
dry_run=True # Ändere zu False für echten Handel!
)
bot.run()
Geeignet / Nicht geeignet für
| ✅ Geeignet für | ❌ Nicht geeignet für |
|---|---|
| Anfänger, die API-Programmierung lernen möchten | Personen ohne jegliches technisches Interesse |
| Tragfähige Trading-Strategien automatisieren | Impulsive Daytrader ohne Strategie |
| Portfolio-Überwachung ohne manuelles Login | Personen, die nur auf Hebel handeln wollen |
| Backtesting von Strategien mit historischen Daten | User, die kein Verständnis für Risikomanagement haben |
| Entwickler, die Krypto-Tools bauen möchten | User, die schnelles Geld ohne Aufwand suchen |
Preise und ROI: Bybit API vs. HolySheop AI
| Kriterium | Bybit API | HolySheep AI API |
|---|---|---|
| API-Kosten | Kostenlos | Kostenlos (mit Credits) |
| Modell GPT-4.1 | - | $8.00 / 1M Tokens |
| Modell Claude Sonnet 4.5 | - | $15.00 / 1M Tokens |
| Modell Gemini 2.5 Flash | - | $2.50 / 1M Tokens |
| Modell DeepSeek V3.2 | - | $0.42 / 1M Tokens |
| Latenz | 10-50ms | <50ms |
| Bezahlung | Nur Krypto | WeChat, Alipay, Krypto |
| Wechselkurs | Marktkurs | ¥1=$1 (85%+ Ersparnis) |
Warum HolySheep wählen
Du fragst dich vielleicht: "Was hat HolySheep mit meiner Bybit-API zu tun?" – Eine ganze Menge!
Die HolySheep AI API kann deine Trading-Strategien auf ein neues Level heben:
- Sentiment-Analyse: Analysiere Nachrichten und Social Media zu Kryptowährungen mit Claude oder GPT-4.1
- Prädiktive Modelle: Nutze Machine Learning für Kursvorhersagen mit DeepSeek V3.2 ($0.42/1M Tokens!)
- Automatisierte Berichte: Generiere tägliche Performance-Reports mit KI
- Risikoanalyse: Bewerte Portfolios automatisch mit Gemini 2.5 Flash ($2.50/1M Tokens)
Meine Praxiserfahrung
Ich habe selbst über 2 Jahre mit der Bybit API gearbeitet. Das größte Problem? Die Datenanalyse neben dem Trading. Während ich meine Strategien manuell auswertete, verpasste ich oft die besten Einstiegszeitpunkte.
Seit ich HolySheep integriert habe, läuft ein GPT-4.1 basierter Bot, der:
- Kontinuierlich Twitter und Reddit nach Bitcoin-Sentiment scannt
- Meine Positionsdaten via Bybit API abruft
- Automatisch Alerts generiert, wenn Kauf-/Verkaufsignale entstehen
Der ROI? Meine manuelle Analysezeit sank um 70%, während die Signalqualität durch KI-Unterstützung stieg.
Kaufempfehlung und Call-to-Action
Die Bybit Unified Trading Account API ist ein mächtiges Werkzeug, das jedoch allein nicht die volle Kraft entfaltet. Für Trader, die:
- Smarte, KI-gestützte Analysen wünschen
- Geld bei API-Kosten sparen wollen (85%+ Ersparnis bei HolySheep)
- Bequem mit WeChat/Alipay bezahlen möchten
ist die Kombination aus Bybit API + HolySheep AI die optimale Lösung.
Starte noch heute – mit kostenlosem Startguthaben bei HolySheep:
👉 Registrieren Sie sich bei HolySheep AI — Startguthaben inklusive
Haftungsausschluss: Dieser Artikel dient ausschließlich Bildungszwecken. Handel mit Kryptowährungen birgt erhebliche Risiken. Investiere nur Geld, das du bereit bist zu verlieren. Die genannten Preise können variieren.