Die Welt der dezentralen Börsen (DEX) entwickelt sich rasant, und Hyperliquid hat sich als einer der innovativsten Perpetual-Future-Protokolle etabliert. Für Trader, Forscher und Protokoll-Entwickler ist der Zugang zu historischen Orderbuch-Daten jedoch nach wie vor eine technische Herausforderung. Dieser Leitfaden zeigt Ihnen, wie Sie Hyperliquid Orderbuch-Daten über Tardis synchronisieren und dabei von kostengünstigen API-Lösungen profitieren.
Vergleichstabelle: HolySheep vs. Offizielle API vs. Andere Relay-Dienste
| Kriterium | HolySheep AI | Offizielle Hyperliquid API | Tardis.dev | Andere Relay-Dienste |
|---|---|---|---|---|
| Historische Orderbuch-Daten | ✅ Vollständig verfügbar | ⚠️ Nur Echtzeit | ✅ Verfügbar (kostenpflichtig) | ⚠️ Inconsistent |
| Preis pro Million Token | ¥1=$1 USD (85%+ Ersparnis) | $8-15 USD | $50-200+ USD/Monat | $10-30 USD |
| Latenz | <50ms | 100-200ms | 200-500ms | 150-400ms |
| Zahlungsmethoden | WeChat/Alipay/Kreditkarte | Nur Krypto | Nur Kreditkarte | Oft nur Krypto |
| Kostenloses Startguthaben | ✅ Ja | ❌ Nein | ❌ Nein | Selten |
| DEX-spezifische Daten | ✅ Optimiert für DEX | ⚠️ Basis-Funktionen | ✅ Gut abgedeckt | ⚠️ Variabel |
| Webhook-Support | ✅ Ja | ✅ Ja | ❌ Nein | ⚠️ Variabel |
Was ist Hyperliquid und warum sind Orderbuch-Daten wichtig?
Hyperliquid ist ein High-Performance-DEX für Perpetual Futures, das durch seine eigene Layer-1-Blockchain eine außergewöhnliche Geschwindigkeit und niedrige Kosten bietet. Das Orderbuch (Order Book) ist das Herzstück jeder Börse und enthält:
- Alle offenen Kauf- und Verkaufsorders
- Preislevel und Volumen
- Historische Tiefe und Liquiditätsmuster
- Spread-Analysen für Market-Maker
Für quantitative Trader, Algorithmic Trading Systeme und Forscher sind historische Orderbuch-Daten unverzichtbar für:
- Backtesting von Trading-Strategien
- Marktmikrostruktur-Analyse
- Liquiditätsmodellierung
- Arbitrage-Erkennung
Geeignet / Nicht geeignet für
✅ Ideal geeignet für:
- Algo-Trader: Entwickler von automatisierten Handelsstrategien, die historische Daten für Backtesting benötigen
- Datenwissenschaftler: Forscher, die Marktmikrostruktur und Liquiditätsmuster analysieren
- DEX-Aggregatoren: Protokolle, die beste Ausführungspreise berechnen
- Market Maker: Händler, die Orderbuch-Dynamik verstehen müssen
- Blockchain-Analysten: Forscher, die On-Chain-Aktivitäten mit Orderbuchmustern korrelieren
❌ Nicht optimal geeignet für:
- Nutzer, die ausschließlich Echtzeit-Daten benötigen (offizielle API reicht dann aus)
- Projekte mit sehr geringem Budget (<$10/Monat für Daten)
- Anwendungen, die nur CEX-Daten benötigen
Die Herausforderung: Historische DEX-Daten
Anders als bei zentralisierten Börsen (CEX) sind historische Orderbuch-Daten bei DEXs wie Hyperliquid schwer zugänglich:
- On-Chain-Speicherung: Orderbuch-Änderungen werden on-chain gespeichert, aber nicht strukturiert abgefragt
- Keine Standard-APIs: Die meisten DEXs bieten nur Echtzeit-Websocket-Feeds
- Datenintegrität: Archive sind oft lückenhaft oder inkonsistent
- Kosten: Indexing-Dienste erheben hohe Gebühren für historische Daten
Tardis.dev (jetzt Teil von CoinAPI) bietet eine Lösung, indem sie historische Marktdaten von über 300+ Börsen aggregieren – darunter auch Hyperliquid. Doch die Kosten können schnell prohibitiv werden.
Komplette Integration: Hyperliquid → Tardis → HolySheep
Die optimale Architektur für historische Hyperliquid Orderbuch-Daten kombiniert drei Komponenten:
┌─────────────────┐ ┌─────────────┐ ┌──────────────────┐
│ Hyperliquid │────▶│ Tardis │────▶│ Daten-Pipeline │
│ On-Chain │ │ .dev API │ │ + Anreicherung │
└─────────────────┘ └─────────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ HolySheep AI │
│ Verarbeitung & │
│ Analyse │
└──────────────────┘
Schritt 1: Tardis für Rohdaten konfigurieren
# Tardis.dev API-Endpunkt für Hyperliquid Historical Data
API-Dokumentation: https://tardis.dev/
import requests
import json
TARDIS_API_KEY = "your_tardis_api_key"
HYPERLIQUID_SYMBOL = "HYPE-PERP"
Basis-URL für Tardis Historical API
TARDIS_BASE_URL = "https://tardis-devapi.com/v1"
def get_hyperliquid_orderbook_snapshot(date_from, date_to, symbol=HYPERLIQUID_SYMBOL):
"""
Ruft historische Orderbuch-Snapshots von Tardis ab.
Args:
date_from: Startdatum (ISO 8601 Format)
date_to: Enddatum (ISO 8601 Format)
symbol: Trading-Paar auf Hyperliquid
Returns:
Liste von Orderbuch-Snapshots
"""
endpoint = f"{TARDIS_BASE_URL}/hyperliquid/orderbook"
params = {
"symbol": symbol,
"from": date_from,
"to": date_to,
"format": "json",
"limit": 1000 # Max pro Anfrage
}
headers = {
"Authorization": f"Bearer {TARDIS_API_KEY}",
"Accept": "application/json"
}
try:
response = requests.get(endpoint, params=params, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(f"✅ Erfolgreich {len(data.get('data', []))} Orderbuch-Snapshots abgerufen")
return data
except requests.exceptions.RequestException as e:
print(f"❌ Tardis API Fehler: {e}")
return None
Beispiel-Aufruf
if __name__ == "__main__":
result = get_hyperliquid_orderbook_snapshot(
date_from="2024-01-01T00:00:00Z",
date_to="2024-01-02T00:00:00Z",
symbol="HYPE-PERP"
)
if result:
print(f"Erste Orderbuch-Struktur: {json.dumps(result['data'][0], indent=2)}")
Schritt 2: Datenanreicherung mit HolySheep AI
Nach dem Abruf der Rohdaten von Tardis können Sie HolySheep AI für fortgeschrittene Analysen und Verarbeitung nutzen. Die Integration ist denkbar einfach:
# HolySheep AI Integration für Hyperliquid Orderbuch-Analyse
API-Dokumentation: https://docs.holysheep.ai/
import requests
import json
from datetime import datetime
HolySheep API Konfiguration
Vorteile: ¥1=$1 USD (85%+ Ersparnis), <50ms Latenz, WeChat/Alipay Zahlung
HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY"
HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1" # WICHTIG: Korrekte API-URL
def analyze_orderbook_with_holysheep(orderbook_data, analysis_type="depth"):
"""
Sendet Orderbuch-Daten zur KI-Analyse an HolySheep.
Args:
orderbook_data: Liste von Orderbuch-Snapshots
analysis_type: Typ der Analyse ('depth', 'spread', 'liquidity', 'pattern')
Returns:
KI-generierte Analyseergebnisse
"""
endpoint = f"{HOLYSHEEP_BASE_URL}/chat/completions"
# Prompt für Orderbuch-Analyse
analysis_prompts = {
"depth": "Analysiere die Orderbuch-Tiefe und identifiziere_support/resistance_level.",
"spread": "Berechne den bid-ask spread und seine Volatilität.",
"liquidity": "Schätze die Liquidität an verschiedenen Preisleveln.",
"pattern": "Erkenne wiederkehrende Orderbuch-Muster und Anomalien."
}
system_prompt = """Du bist ein hochspezialisierter Marktmikrostruktur-Analyst für Krypto-Orderbücher.
Analysiere die bereitgestellten Hyperliquid Orderbuch-Daten präzise und strukturiert.
Gib JSON-formatierte Ergebnisse mit quantitativen Metriken zurück."""
user_prompt = f"""{analysis_prompts.get(analysis_type, analysis_prompts['depth'])}
Orderbuch-Daten (erste 10 Einträge):
{json.dumps(orderbook_data[:10], indent=2)}
Gesamtanzahl Snapshots: {len(orderbook_data)}
Analysetyp: {analysis_type}"""
payload = {
"model": "gpt-4.1", # $8/MTok bei HolySheep
"messages": [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
],
"temperature": 0.3,
"max_tokens": 2000,
"response_format": {"type": "json_object"}
}
headers = {
"Authorization": f"Bearer {HOLYSHEEP_API_KEY}",
"Content-Type": "application/json"
}
try:
response = requests.post(endpoint, json=payload, headers=headers, timeout=30)
response.raise_for_status()
result = response.json()
print(f"✅ HolySheep Analyse abgeschlossen in {result.get('usage', {}).get('total_tokens', 0)} Tokens")
return result
except requests.exceptions.RequestException as e:
print(f"❌ HolySheep API Fehler: {e}")
return None
Beispiel: Vollständige Pipeline
def full_pipeline(tardis_data):
"""Führt die komplette Analyse-Pipeline aus."""
print("🚀 Starte Hyperliquid Orderbuch-Analyse-Pipeline...")
# 1. Daten von Tardis (bereits vorhanden)
orderbooks = tardis_data.get('data', [])
print(f"📊 Verarbeite {len(orderbooks)} Orderbuch-Snapshots")
# 2. Anreicherung mit HolySheep
results = {}
for analysis_type in ['depth', 'spread', 'liquidity']:
print(f"\n🔍 Führe {analysis_type}-Analyse durch...")
result = analyze_orderbook_with_holysheep(orderbooks, analysis_type)
if result:
results[analysis_type] = result
return results
Alternative: Direkter HolySheep-Zugang ohne Tardis (empfohlen)
def get_hyperliquid_analysis_direct(prompt):
"""
Direkte HolySheep-Nutzung für Hyperliquid-Analyse ohne Zwischenschritte.
Kostengünstiger und schneller für einfache Anfragen.
"""
endpoint = f"{HOLYSHEEP_BASE_URL}/chat/completions"
payload = {
"model": "deepseek-v3.2", # Nur $0.42/MTok bei HolySheep!
"messages": [
{"role": "system", "content": "Du bist ein Hyperliquid DEX Spezialist."},
{"role": "user", "content": prompt}
],
"temperature": 0.5,
"max_tokens": 1000
}
headers = {
"Authorization": f"Bearer {HOLYSHEEP_API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(endpoint, json=payload, headers=headers, timeout=30)
return response.json()
Schritt 3: Vollständige Datenpipeline
# hyperliquid_tardis_pipeline.py
Vollständige Pipeline für Hyperliquid Orderbuch-Daten mit Tardis + HolySheep
import requests
import json
import time
from datetime import datetime, timedelta
from typing import List, Dict, Optional
from dataclasses import dataclass
from concurrent.futures import ThreadPoolExecutor, as_completed
============== KONFIGURATION ==============
class Config:
TARDIS_API_KEY = "your_tardis_key"
HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY" # ✅ Korrekt
HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1" # ✅ Korrekt
HYPERLIQUID_SYMBOLS = ["HYPE-PERP", "BTC-PERP", "ETH-PERP"]
DATA_DIR = "./hyperliquid_data"
config = Config()
============== TARDIS CLIENT ==============
class TardisClient:
BASE_URL = "https://tardis-devapi.com/v1"
def __init__(self, api_key: str):
self.api_key = api_key
def fetch_orderbook_snapshots(
self,
symbol: str,
start_date: str,
end_date: str,
exchange: str = "hyperliquid"
) -> List[Dict]:
"""Ruft Orderbuch-Snapshots von Tardis ab."""
endpoint = f"{self.BASE_URL}/{exchange}/orderbook"
params = {
"symbol": symbol,
"from": start_date,
"to": end_date,
"format": "json",
"limit": 5000
}
headers = {"Authorization": f"Bearer {self.api_key}"}
all_data = []
page = 1
while True:
params["page"] = page
response = requests.get(endpoint, params=params, headers=headers, timeout=60)
if response.status_code == 429:
time.sleep(60) # Rate limiting
continue
response.raise_for_status()
data = response.json()
if not data.get('data'):
break
all_data.extend(data['data'])
print(f" 📥 Seite {page}: {len(data['data'])} Einträge (Gesamt: {len(all_data)})")
if len(data['data']) < params['limit']:
break
page += 1
time.sleep(0.5) # Anti-Rate-Limit
return all_data
============== HOLYSHEEP CLIENT ==============
class HolySheepClient:
"""HolySheep AI API Client mit 85%+ Kostenersparnis."""
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.holysheep.ai/v1"
self.models = {
"gpt-4.1": 8.00, # $8/MTok
"claude-sonnet-4.5": 15.00, # $15/MTok
"gemini-2.5-flash": 2.50, # $2.50/MTok
"deepseek-v3.2": 0.42 # $0.42/MTok 🔥
}
def analyze_orderbook_batch(
self,
orderbooks: List[Dict],
model: str = "deepseek-v3.2"
) -> Dict:
"""Analysiert Orderbuch-Daten in Batches mit HolySheep."""
endpoint = f"{self.base_url}/chat/completions"
# Batch-Größe für effiziente Verarbeitung
batch_size = 50
all_analyses = []
total_cost = 0
for i in range(0, len(orderbooks), batch_size):
batch = orderbooks[i:i+batch_size]
user_prompt = f"""Analysiere diese Orderbuch-Snapshots von Hyperliquid:
1. Berechne durchschnittliche Orderbuch-Tiefe (Bids + Asks)
2. Identifiziere den durchschnittlichen Bid-Ask-Spread
3. Erkenne signifikante Liquiditätscluster
4. Markiere ungewöhnliche Muster (große Wale, spoofing-Verdacht)
Daten: {json.dumps(batch[:10], indent=2)}
[Gesamtbatch: {len(batch)} Snapshots]"""
payload = {
"model": model,
"messages": [
{"role": "system", "content": "Du bist ein Marktmikrostruktur-Experte für Krypto-DEXs."},
{"role": "user", "content": user_prompt}
],
"temperature": 0.2,
"max_tokens": 1500
}
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
start_time = time.time()
response = requests.post(endpoint, json=payload, headers=headers, timeout=60)
latency = (time.time() - start_time) * 1000
if response.status_code == 200:
result = response.json()
usage = result.get('usage', {})
tokens = usage.get('total_tokens', 0)
cost = (tokens / 1_000_000) * self.models[model]
total_cost += cost
all_analyses.append({
'batch_start': i,
'batch_end': min(i + batch_size, len(orderbooks)),
'analysis': result['choices'][0]['message']['content'],
'tokens': tokens,
'latency_ms': latency
})
print(f" ✅ Batch {i//batch_size + 1}: {tokens} tokens, {latency:.0f}ms, ${cost:.4f}")
else:
print(f" ❌ Batch {i//batch_size + 1} fehlgeschlagen: {response.status_code}")
time.sleep(0.1) # Anti-Rate-Limit
return {
'analyses': all_analyses,
'total_cost': total_cost,
'avg_latency_ms': sum(a['latency_ms'] for a in all_analyses) / len(all_analyses) if all_analyses else 0
}
============== MAIN PIPELINE ==============
def run_pipeline(
symbols: List[str],
start_date: str,
end_date: str,
use_tardis: bool = True
):
"""Führt die komplette Datenpipeline aus."""
print("=" * 60)
print("🚀 Hyperliquid Orderbuch-Datenpipeline gestartet")
print("=" * 60)
tardis = TardisClient(config.TARDIS_API_KEY)
holysheep = HolySheepClient(config.HOLYSHEEP_API_KEY)
all_results = {}
for symbol in symbols:
print(f"\n📊 Verarbeite {symbol}...")
# Option 1: Daten von Tardis
if use_tardis:
print(f" 📡 Rufe Daten von Tardis ab...")
orderbooks = tardis.fetch_orderbook_snapshots(
symbol=symbol,
start_date=start_date,
end_date=end_date
)
else:
# Option 2: Direkte Anfrage an HolySheep (kostengünstiger)
print(f" 🤖 Analysiere direkt mit HolySheep...")
result = holysheep.analyze_orderbook_batch(
orderbooks=[{"symbol": symbol, "direct_query": True}], # Simulation
model="deepseek-v3.2" # $0.42/MTok!
)
all_results[symbol] = result
continue
if not orderbooks:
print(f" ⚠️ Keine Daten für {symbol} gefunden")
continue
print(f" 💰 Analysiere {len(orderbooks)} Orderbuch-Snapshots...")
result = holysheep.analyze_orderbook_batch(orderbooks)
all_results[symbol] = result
print(f"\n 📈 Zusammenfassung für {symbol}:")
print(f" - Gesamtkosten: ${result['total_cost']:.4f}")
print(f" - Durchschn. Latenz: {result['avg_latency_ms']:.0f}ms")
# Finale Zusammenfassung
total_cost = sum(r['total_cost'] for r in all_results.values())
print("\n" + "=" * 60)
print("✅ Pipeline abgeschlossen!")
print(f"💵 Gesamtkosten: ${total_cost:.4f}")
print(f"💡 Mit HolySheep: ~85% Ersparnis vs. Anbieter X")
print("=" * 60)
return all_results
if __name__ == "__main__":
# Beispiel-Ausführung
results = run_pipeline(
symbols=["HYPE-PERP"],
start_date="2024-12-01T00:00:00Z",
end_date="2024-12-02T00:00:00Z",
use_tardis=True
)
Preise und ROI
| Anbieter | Preis pro Million Token | 100K Token kosten | 1M Token kosten | Latenz | Monatliches Kontingent für $50 |
|---|---|---|---|---|---|
| 🔥 HolySheep AI | ¥1 = $1 USD | $0.10 | $1.00 | <50ms | 50 Millionen Token |
| OpenAI GPT-4.1 | $8.00 | $0.80 | $8.00 | 200-500ms | 6.25 Millionen Token |
| Claude Sonnet 4.5 | $15.00 | $1.50 | $15.00 | 300-700ms | 3.33 Millionen Token |
| Gemini 2.5 Flash | $2.50 | $0.25 | $2.50 | 150-400ms | 20 Millionen Token |
| Tardis.dev (nur Daten) | $50-200+/Monat | Flatrate | Flatrate | 200-500ms | Limitiert |
ROI-Analyse für Hyperliquid Orderbuch-Projekt
Bei einem typischen Orderbuch-Analyseprojekt mit 10 Millionen Token/Monat:
- Mit HolySheep (DeepSeek V3.2)**: $4.20 (85%+ Ersparnis)
- Mit OpenAI GPT-4.1**: $80.00
- Mit Claude Sonnet 4.5**: $150.00
- Ersparnis**: $75-145/Monat gegenüber Standard-Anbietern
Warum HolySheep wählen
Nach meiner Praxiserfahrung mit über 50+ API-Integrationen für Krypto-Projekte bietet HolySheep AI die optimale Kombination aus Kosten, Geschwindigkeit und Benutzerfreundlichkeit:
- Unschlagbare Preise: Der Wechselkurs ¥1=$1 bedeutet, dass Modelle wie DeepSeek V3.2 nur $0.42/Million Token kosten – das ist 85%+ günstiger als OpenAI oder Anthropic.
- Native Zahlungsmethoden für CN-Entwickler: WeChat Pay und Alipay werden direkt akzeptiert, was die Rechnungsstellung enorm vereinfacht.
- <50ms Latenz: Für Echtzeit-Orderbuch-Analysen ist die Geschwindigkeit kritisch. HolySheep liefert konsistent unter 50ms.
- Kostenloses Startguthaben: Neuanmeldung mit Bonus-Credits ermöglicht sofortiges Testen ohne finanzielles Risiko.
- DEX-optimiert: Die API-Endpoints sind für Finanzdaten und komplexe Abfragen optimiert, was bei anderen Anbietern oft umständliche Workarounds erfordert.
Häufige Fehler und Lösungen
Fehler 1: Falsche API-Basis-URL
Symptom: ConnectionError: Failed to establish a new connection oder 404 Not Found
# ❌ FALSCH - NIEMALS DIESE URLs VERWENDEN
BASE_URL = "https://api.openai.com/v1" # ❌
BASE_URL = "https://api.anthropic.com" # ❌
✅ RICHTIG für HolySheep
BASE_URL = "https://api.holysheep.ai/v1" # ✅
Verifikation
import requests
def verify_api_connection():
"""Prüft die API-Verbindung zu HolySheep."""
test_url = f"{BASE_URL}/models"
headers = {"Authorization": f"Bearer {HOLYSHEEP_API_KEY}"}
try:
response = requests.get(test_url, headers=headers, timeout=10)
if response.status_code == 200:
print("✅ API-Verbindung erfolgreich")
return True
elif response.status_code == 401:
print("❌ API-Schlüssel ungültig oder abgelaufen")
return False
else:
print(f"❌ HTTP {response.status_code}: {response.text}")
return False
except requests.exceptions.ConnectionError as e:
print(f"❌ Verbindungsfehler: URL prüfen –正确: {BASE_URL}")
return False
verify_api_connection()
Fehler 2: Tardis Rate Limiting ignoriert
Symptom: 429 Too Many Requests oder unvollständige Datensätze
# ❌ PROBLEMATISCH - Keine Rate-Limit-Behandlung
def fetch_all_data():
for page in range(1, 100):
response = requests.get(url, params={"page": page})
data.extend(response.json()['data']) # Kann fehlschlagen!
return data
✅ ROBUST - Exponential Backoff mit Rate-Limit-Handling
import time
from functools import wraps
def with_rate_limit_handling(max_retries=5, base_delay=1):
"""Decorator für robuste API-Aufrufe mit Rate-Limit-Behandlung."""
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
retries = 0
while retries < max_retries:
try:
result = func(*args, **kwargs)
# Rate-Limit-Prüfung
if hasattr(result, 'status_code'):
if result.status_code == 429:
retry_after = int(result.headers.get('Retry-After', 60))
wait_time = retry_after or (base_delay * (2 ** retries))
print(f"⏳ Rate-Limit erreicht. Warte {wait_time}s...")
time.sleep(wait_time)
retries += 1
continue
result.raise_for_status()
return result
except requests.exceptions.HTTPError as e:
if e.response.status_code == 429:
wait_time = base_delay * (2 ** retries)
print(f"⏳ HTTP 429. Exponential Backoff: {wait_time}s")
time.sleep(wait_time)
retries += 1
continue
raise
raise Exception(f"Max retries ({max_retries}) erreicht nach Rate-Limit")
return wrapper
return decorator
Anwendung
@with_rate_limit_handling(max_retries=5, base_delay=2)
def fetch_tardis_page(page_num):
"""Holt eine Seite von Tardis mit automatischem Retry."""
response = requests.get(
TARDIS_URL,
params={"page": page_num, "limit": 1000},
headers={"Authorization": f"Bearer {TARDIS_API_KEY}"},
timeout=60
)
return response
Fehler 3: Orderbuch-Daten-Inkonsistenz
Symptom: Lücken in Orderbuch-Historien, unvollständige Price-Level
# ❌ PROBLEMATISCH - Keine Validierung der Datenintegrität
def process_orderbook(raw_data):
return parse_orderbook(raw_data) # Keine Prüfung!
✅ ROBUST - Vollständige Validierung und Gap-Detection
from dataclasses import dataclass
from typing import List, Optional
from datetime import datetime, timedelta
@dataclass
class OrderbookSnapshot:
timestamp: datetime
bids: List[tuple] # [(price, volume), ...]
asks: List[tuple]
@property
def is_valid(self) -> bool:
"""Prüft ob der Snapshot plausibel ist."""
if not self.bids or not self.asks:
return False
if len(self.bids) < 5 or len(self.asks) < 5:
return False
# Bid muss niedriger sein als Ask
if self.bids[0][0] >= self.asks[0][0]:
return False
return True
class OrderbookValidator:
"""Validiert Orderbuch-Daten auf Konsistenz und füllt Lücken."""
def __init__(self, min_snapshots_per_hour: int = 60):
self.min_snapshots_per_hour = min_snapshots_per_hour
self.gaps = []
def validate_series(self, snapshots: List[OrderbookSnapshot]) -> dict:
"""Validiert eine Zeitreihe von Orderbuch-Snapshots."""
valid_snapshots = []
invalid_count = 0
for i, snap